Protocols & Standards

Tool Manifest

A tool manifest is the structured description of a tool — its name, what it does, and what arguments it expects — that gets included in a model's context so it knows the tool exists and how to call it.

A model can't call a tool it doesn't know about, and it can't call one correctly without knowing what arguments it needs. A tool manifest is what closes that gap: a structured entry, usually JSON, listing the tool's name, a natural-language description of what it does (and often when to use it), and a schema for its parameters.

The description field matters more than it might seem — since the model is deciding whether a tool is relevant to the current request based on that text, a vague or misleading description leads to the tool being picked at the wrong times, or ignored when it would actually help.

Manifests show up at different scales: a single function definition passed alongside a model API call, or a whole list of tools a server advertises during MCP capability negotiation. Either way, the shape is the same — name, description, parameter schema — because that's what a model needs to decide whether and how to call something.

Example

{
  "name": "get_weather",
  "description": "Get current weather conditions for a given location.",
  "parameters": {
    "type": "object",
    "properties": {
      "location": {
        "type": "string",
        "description": "City name, e.g. 'Tokyo'"
      }
    },
    "required": ["location"]
  }
}

Common misconceptions

Often assumed: The tool manifest's description field is just documentation for humans.
Actually: It's primarily read by the model to decide whether the tool is relevant to a given request, so a vague description directly hurts how reliably the tool gets used.
Often assumed: A tool manifest has to be written in a vendor-specific format.
Actually: The core shape — name, description, parameter schema — is consistent across most tool-calling and MCP implementations, even if the exact JSON structure varies slightly.

FAQ

What is a tool manifest?
It's the structured description of a tool — its name, what it does, and its expected parameters — that gets included in a model's context so it can decide whether and how to call it.
Why does the tool description matter so much?
Because the model uses that text, not just the tool's name, to judge whether the tool applies to the current request; an unclear description leads to the tool being missed or misused.
Is a tool manifest the same as an MCP server's tool list?
They're closely related — an MCP server's tools are each described using essentially the same manifest shape (name, description, parameter schema) during capability negotiation.

Last checked: 2026-08-28

Related terms