{
  "name": "GripCentral",
  "description": "GripCentral's grip sport agent: the wiki (training, technique, equipment), the contest calendar, records and results from GSI, IronMind, Armlifting USA and organisers, and benchmark feats. Read-only and deterministic (no language model): send a data part {\"skill\": \"<skill id>\", \"arguments\": {...}} to run a skill directly, or plain text, which is routed by fixed rules: a gripcentral.com wiki or feats link reads that page; \"list wiki articles\" / \"list feats\" list them; a feat name with who/how many reads that feat's roll; record, ranking or athlete questions go to query_records; event words or a contest's name go to find_events; anything else searches the wiki. Every reply is a completed task with a Markdown text part and a JSON data part, and credits each record's owner.",
  "supportedInterfaces": [
    {
      "url": "https://gripcentral.com/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://gripcentral.com/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "0.3"
    }
  ],
  "provider": {
    "organization": "GripCentral",
    "url": "https://gripcentral.com"
  },
  "version": "1.0.0",
  "documentationUrl": "https://gripcentral.com/llms.txt",
  "iconUrl": "https://gripcentral.com/icon.svg",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/markdown",
    "application/json"
  ],
  "skills": [
    {
      "id": "search_wiki",
      "name": "Search the GripCentral wiki",
      "description": "Search GripCentral's grip sport wiki (training, technique, equipment such as grippers and pinch blocks, competition rules, history, vendors). Returns the best-matching passages with their article title, section and URL. Use get_wiki_article to read a whole article.\n\nCall it directly with a data part {\"skill\":\"search_wiki\",\"arguments\":{...}}; arguments: query: string (required), limit: integer 1-10. As plain text: Any text message that isn't routed elsewhere goes here, with the text as the query. Replies are a completed task whose artifact holds a Markdown text part and a JSON data part with the structured result.",
      "tags": [
        "wiki",
        "training",
        "technique",
        "equipment",
        "grip sport",
        "gripcentral",
        "read-only"
      ],
      "examples": [
        "How do I train for the Captains of Crush No. 3?",
        "{\"skill\":\"search_wiki\",\"arguments\":{\"query\":\"thick bar training\",\"limit\":4}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/markdown",
        "application/json"
      ]
    },
    {
      "id": "get_wiki_article",
      "name": "Read a GripCentral wiki article",
      "description": "Read one GripCentral wiki article by slug (the last part of its URL, e.g. \"captains-of-crush\" for https://gripcentral.com/wiki/captains-of-crush). Returns the article's text section by section as Markdown. Find slugs with search_wiki or list_wiki_articles.\n\nCall it directly with a data part {\"skill\":\"get_wiki_article\",\"arguments\":{...}}; arguments: slug: string (required). As plain text: Text containing a gripcentral.com/wiki/<slug> link, or \"read <article title>\". Replies are a completed task whose artifact holds a Markdown text part and a JSON data part with the structured result.",
      "tags": [
        "wiki",
        "article",
        "gripcentral",
        "read-only"
      ],
      "examples": [
        "read https://gripcentral.com/wiki/hand-grippers",
        "{\"skill\":\"get_wiki_article\",\"arguments\":{\"slug\":\"hand-grippers\"}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/markdown",
        "application/json"
      ]
    },
    {
      "id": "list_wiki_articles",
      "name": "List GripCentral wiki articles",
      "description": "List every GripCentral wiki article with its slug, URL, one-line summary and section headings.\n\nCall it directly with a data part {\"skill\":\"list_wiki_articles\",\"arguments\":{...}}; arguments: none. As plain text: Text such as \"list wiki articles\". Replies are a completed task whose artifact holds a Markdown text part and a JSON data part with the structured result.",
      "tags": [
        "wiki",
        "index",
        "gripcentral",
        "read-only"
      ],
      "examples": [
        "list wiki articles",
        "{\"skill\":\"list_wiki_articles\",\"arguments\":{}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/markdown",
        "application/json"
      ]
    },
    {
      "id": "find_events",
      "name": "Find grip sport events",
      "description": "Find grip sport contests on GripCentral's calendar (GSI, Armlifting USA and other organisers): by name (\"King Kong\", \"Napalm\"), recurring contest, or place (city, state/province, country). Upcoming events by default, soonest first; set upcoming=false to search past events, newest first. With no query, lists the next events.\n\nCall it directly with a data part {\"skill\":\"find_events\",\"arguments\":{...}}; arguments: query: string, upcoming: boolean, limit: integer 1-20. As plain text: Text with event words (event, contest, competition, meet, calendar, upcoming, when is ...) or an upcoming contest's name; add \"past\" or \"previous\" for past events. Replies are a completed task whose artifact holds a Markdown text part and a JSON data part with the structured result.",
      "tags": [
        "events",
        "contests",
        "calendar",
        "gripcentral",
        "read-only"
      ],
      "examples": [
        "upcoming grip contests in Ohio",
        "{\"skill\":\"find_events\",\"arguments\":{\"query\":\"King Kong\",\"upcoming\":true,\"limit\":5}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/markdown",
        "application/json"
      ]
    },
    {
      "id": "query_records",
      "name": "Query grip sport records",
      "description": "Ask about grip sport records and contest results in plain English, answered from every record source on GripCentral (Grip Sport International, Armlifting USA, IronMind's Captains of Crush certifications, GripBoard feats, organiser-posted results). Examples: \"top 5 men 120k+ on the wrist wrench\", \"Rolling Thunder record\", \"women's Saxon bar records\", \"what has Joe Larson lifted\". Returns Markdown with ranked rows, gripcentral.com record and athlete page links, and each owner's attribution. Each owner's list is kept separate: rules and weight classes differ.\n\nCall it directly with a data part {\"skill\":\"query_records\",\"arguments\":{...}}; arguments: question: string (required). As plain text: Text that asks about records, rankings, top lifts or an athlete by name. Replies are a completed task whose artifact holds a Markdown text part and a JSON data part with the structured result.",
      "tags": [
        "records",
        "results",
        "rankings",
        "athletes",
        "gripcentral",
        "read-only"
      ],
      "examples": [
        "top 5 men on the Rolling Thunder",
        "{\"skill\":\"query_records\",\"arguments\":{\"question\":\"women's Saxon bar records\"}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/markdown",
        "application/json"
      ]
    },
    {
      "id": "list_feats",
      "name": "List grip feats",
      "description": "List the benchmark grip feats GripCentral tracks (Captains of Crush No. 3, 3.5 and 4, Rolling Thunder, Inch dumbbell and others) with how each is judged, its certifying body, and how many people in the records have done it.\n\nCall it directly with a data part {\"skill\":\"list_feats\",\"arguments\":{...}}; arguments: none. As plain text: Text such as \"list feats\" or \"which feats are tracked\". Replies are a completed task whose artifact holds a Markdown text part and a JSON data part with the structured result.",
      "tags": [
        "feats",
        "certifications",
        "gripcentral",
        "read-only"
      ],
      "examples": [
        "list feats",
        "{\"skill\":\"list_feats\",\"arguments\":{}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/markdown",
        "application/json"
      ]
    },
    {
      "id": "get_feat",
      "name": "Who has done a grip feat",
      "description": "Everyone in GripCentral's records who has done one benchmark feat (e.g. \"captains-of-crush-no-3\"), earliest first: name, athlete page, country, best qualifying lift, date and sources. For feats with a certifying body (IronMind), certified people are listed apart from uncertified claims. Find slugs with list_feats.\n\nCall it directly with a data part {\"skill\":\"get_feat\",\"arguments\":{...}}; arguments: slug: string (required), limit: integer 1-200. As plain text: Text naming a feat (e.g. \"who has closed the Captains of Crush No. 3\", \"inch dumbbell\") or a gripcentral.com/feats/<slug> link. Replies are a completed task whose artifact holds a Markdown text part and a JSON data part with the structured result.",
      "tags": [
        "feats",
        "certifications",
        "athletes",
        "gripcentral",
        "read-only"
      ],
      "examples": [
        "who has closed the Captains of Crush No. 3.5",
        "{\"skill\":\"get_feat\",\"arguments\":{\"slug\":\"captains-of-crush-no-3\",\"limit\":20}}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "text/markdown",
        "application/json"
      ]
    }
  ]
}