What is an MCP tool? Definition, with real examples | MCP Hunter

tool

A tool is a single callable function an MCP server exposes to a client. Each one is described by a name, a JSON Schema for its arguments, and usually a description written for a model rather than a human reader. Tools are the most used MCP capability and the unit a client hands to a model.

Updated

What is a tool in MCP?

A tool is one function a server offers. It has a name the client calls it by, an inputSchema describing its arguments, and normally a description explaining what it does.

The description is written for a model. It is the text an assistant reads when deciding whether this is the right function for what the user asked, which makes it closer to documentation than to a code comment.

Which fields can you rely on?

Two, in practice. Across 288 tools returned by 14 servers on 5 August 2026, name and inputSchema each appeared on 100% of them, and description did too.

Everything else was patchy. annotations appeared on 91%, title on 10.1%, outputSchema on 5.6%, and _meta on 2.4%. A client that requires title to render a tool will render nothing useful nine times out of ten.

How many tools should a server expose?

Fewer than most people assume. The median server in that sample exposed 4.5 tools, and 11 of the 14 exposed 10 or fewer.

The total of 288 is misleading on its own, because a single game server accounted for 213 of them. Tool count is a shape, not a score: a focused server with 3 well-described tools is easier for a model to use correctly than one with 200 that overlap.

Examples of real MCP tools

Here is one tool exactly as DeepWiki's server (https://mcp.deepwiki.com/mcp) returned it to us on 13 August 2026, trimmed only of its outputSchema and _meta:

{
  "name": "read_wiki_structure",
  "description": "Get a list of documentation topics for a GitHub repository.",
  "inputSchema": {
    "properties": {
      "repoName": {
        "description": "GitHub repository in owner/repo format (e.g. \"facebook/react\").",
        "type": "string"
      }
    },
    "required": ["repoName"],
    "type": "object"
  }
}

That is everything a client needs: a name to call, a sentence telling the model when to use it, and a schema saying it takes one required string. To run it, the client sends tools/call with that name and arguments matching the schema:

{"jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": {"name": "read_wiki_structure", "arguments": {"repoName": "facebook/react"}}}

The server answers with a content array, usually one text block, plus isError: false. We do not call tools, only list them, so we have no response of DeepWiki's to show; that is the shape the spec defines for every tool result.

More tools real servers returned to us on 13 August 2026:

  • Microsoft Learn (https://learn.microsoft.com/api/mcp): microsoft_docs_search, microsoft_code_sample_search, microsoft_docs_fetch
  • Exa (https://mcp.exa.ai/mcp): web_search_exa, web_fetch_exa
  • Hugging Face (https://huggingface.co/mcp): hf_whoami, hub_repo_search, hub_repo_details, hf_fs
  • Context7 (https://mcp.context7.com/mcp): resolve-library-id, query-docs
  • Cloudflare docs (https://docs.mcp.cloudflare.com/mcp): search_cloudflare_documentation, migrate_pages_to_workers_guide

Most are a verb and an object, and most servers expose a handful. To see every field a tool object can carry, and how often real servers fill each one, read the tools/list guide.

Go deeper

Related terms