Glossary
MCP Tools (Model Context Protocol tools)
The action primitive of the Model Context Protocol. A server publishes tools, the model chooses which to call, and annotations tell the client which calls are safe to run without asking.
General definition
MCP Tools (Model Context Protocol tools) are the part of the Model Context Protocol that lets a language model take actions: query a database, call an API, create a record, send a message. A server publishes a list of tools, the client hands that list to the model, and the model decides which tool to call and with what arguments. The specification describes tools as model-controlled, in contrast to resources (application-controlled context) and prompts (user-controlled templates).
Each tool definition carries:
name: the unique identifier the model callstitle: an optional human-readable name for displaydescription: what the tool does and when to use it, written for the modelinputSchema: a JSON Schema describing the argumentsoutputSchema: an optional JSON Schema for structured resultsannotations: optional hints about how the tool behaves
The annotations are what make a large tool set usable. readOnlyHint says the tool changes nothing, destructiveHint says it may make irreversible changes, idempotentHint says repeating a call with the same arguments has no extra effect, and openWorldHint says the tool reaches systems outside the server. Clients use them to auto-approve reads and to ask the user before a destructive call. The specification is explicit that clients must treat annotations as untrusted unless the server is trusted, so a confirmation step should never rely on them alone.
On the wire, a client sends tools/list (paginated with a cursor) to discover tools and tools/call with a name and arguments to run one. Results come back as content blocks (text, images, audio, resource links or embedded resources) plus optional structuredContent, with isError set for execution failures. A server that declares the listChanged capability sends notifications/tools/list_changed when its tool set changes and the client lists again. The whole exchange is JSON-RPC 2.0, identical over stdio and Streamable HTTP.
In the Ethora ecosystem
The Ethora MCP server exposes 90 tools on its hosted endpoint, grouped by job: session and help, accounts and API keys, apps, rooms and messages, AI agents, the website widget, RAG sources, users and files, and B2B provisioning. Every tool has a human title and explicit readOnlyHint, destructiveHint and openWorldHint values (plus idempotentHint where it applies), so Claude, ChatGPT, Cursor and Claude Code auto-approve the reads and confirm the twelve destructive ones. No hosted tool moves money or tokens. The full list is on the tools reference.
A typical first session touches a handful of them: register or log in, create an app, create a room, create an agent, invite it to the room, post a message and read the reply. ethora-help returns that recipe with the calls filled in for the current state. Because 90 tools is more than most clients handle comfortably, alias tools stay off by default and assistants are pointed at the canonical set.