Skip to content

Servers

An MCPServer exposes three primitives to a connected client. They differ by who decides to use them:

  • A tool is an action the model picks and calls. This is the page most people want first, and Structured Output is its reference companion: everything about the shape of what a tool returns.
  • A resource is read-only data the application chooses to read. URI templates is its reference companion: the full addressing syntax and the path-safety rules.
  • A prompt is a message template a person invokes by name, from a menu or a slash command.

Around the three primitives, the rest of what a server declares:

  • Completions is server-side autocomplete for prompt and resource-template arguments.
  • Images, audio & icons covers everything a tool can return besides text, and the icons a client shows next to your server.
  • Handling errors explains the difference between an error the model can recover from and one it must never see.

Every page here stands on its own; jump straight to the one you need. If you haven't built a server yet, start with First steps instead.

What happens inside the functions you register (the Context, dependency injection, asking the user for more input mid-call) is the next section, Inside your handler.