curiosity

Article · Tools, agents and MCP

MCP, AI tools and agents: what is the difference?

A tool is one function a model may call: a name, a description and the parameters it takes. An agent is a loop in which a model decides which tools to call, step by step, toward a goal. The Model Context Protocol is a standard way for a server to offer tools, resources and prompts to any AI application.

Topic Tools, agents and MCP Reading time 7 min References 7 Updated October 2026

In short

A tool is a function a model can call, an agent is a model choosing its next call, and MCP is a standard way to offer tools. The three are not alternatives. They sit at different layers of the same system, and most production systems that call tools use two of them or all three.

The confusion is understandable, because the words overlap in product names. A chat app may call its tools “agents”, and a vendor may sell an “MCP agent”. The test is simple: a tool runs once when called, an agent decides which calls to make, and MCP only carries the offer and the call.

How the three fit together

The tool. A tool is a definition the model reads: a name, a description and a schema for its parameters. The model never runs it. In the words of Anthropic’s tool use documentation, “Claude determines when to call a tool based on the user’s request and the tool’s description.” It then returns a structured call, and your application runs it and sends the result back. OpenAI’s function calling guide describes the same round trip in five steps.

The agent. An agent puts that round trip in a loop. The model reads each result and picks the next call, until the task is done or a limit stops it. Anthropic’s Building effective agents says agents “are typically just LLMs using tools based on environmental feedback in a loop.” The AI agent article walks through that loop in detail.

The protocol. MCP standardizes where the tools come from. The specification defines hosts (the AI applications), the clients inside them, and servers that offer tools, resources and prompts over JSON-RPC 2.0. A host lists a server’s tools, hands them to the model as tool definitions, and forwards each call to the server. What is the Model Context Protocol? covers the protocol itself.

How they stack

One request, three layers

A tool is the unit, the agent loop runs around it, and an MCP server is one place the tools can come from. Pick a step to stop the drawing and read it.

A tool, an agent loop and an MCP server around one request Inside your application a model reads three tool definitions and writes a call to search_tickets, which the application runs. The agent loop takes the result back to the model, which calls read_record on a second turn. The same tools are then offered by an MCP server instead of your own code. The run ends with an answer citing two records. YOUR APPLICATIONMODELReads the toolsWrites a callNext stepAnswersTOOL CALLNone yetTOOL CALLsearch_ticketsquery: pump sealread_recordid: SN-2231AGENT LOOP · TURN 2ANSWERNot yetANSWERTwo records citedTOOLS · YOUR CODEMCP SERVERsearch_ticketsFind ticketsQUERYread_recordRead one recordIDdraft_replyDraft a replyTICKET · TEXTOVER JSON-RPC
A tool, an agent loop and an MCP server around one request A model reads three tool definitions and writes a call to search_tickets, which the application runs. The agent loop takes the result back to the model, which calls read_record on a second turn. The same tools are then offered by an MCP server. The run ends with an answer citing two records. YOUR APPLICATIONMODELReads the toolsWrites a callNext stepAnswersLOOPTOOL CALLNone yetTOOL CALLsearch_tickets · pump sealread_record · SN-2231TOOLS · YOUR CODEMCP SERVERsearch_ticketsFIND TICKETSread_recordREAD ONE RECORDdraft_replyDRAFT A REPLYANSWERNot yetANSWERTwo records cited
  1. 01

    A tool is a definition

    A name, a description and its parameters. The model reads them and never sees the code.

  2. 02

    The model writes a call

    It picks search_tickets and fills in the query. Your application runs it and returns the result.

  3. 03

    An agent loops

    The model reads the result and calls the next tool. The loop runs until the task is done or a limit stops it.

  4. 04

    MCP offers the tools

    The same tools now come from an MCP server. The application lists them and calls them over one protocol.

  5. 05

    The run ends

    The model answers with the two records it read. The tools did not change, only where they were offered.

Four questions that separate them

When a product or a design calls something a tool, an agent or an MCP server, four questions say which layer it is really at:

  • Who decides? The model decides when to call a tool. In an agent it also decides the order of steps. In MCP the host decides which servers to connect. The specification lets the model choose tools, the application choose resources and the user choose prompts.
  • What is standardized? A tool definition is a JSON Schema in each model vendor’s own request format. MCP standardizes how tools are listed and called across applications. The agent loop is not standardized at all: it is your code or your framework.
  • Where are permissions checked? In the code that runs the tool, as the person who asked. The MCP specification says so plainly: “MCP itself cannot enforce these security principles at the protocol level.” A server may return fewer tools to a caller with fewer rights, but the check is the server’s own.
  • What do you build, and what do you configure? You build a tool: a function and the description the model reads. You configure an agent: a prompt, a set of tools, a model and a limit. You build an MCP server once, around tools you already have, or you configure a client to use someone else’s.

Side by side

Where each one decides

The same four questions, answered for a tool, an agent and an MCP server. The last one is where an enterprise system holds or fails. Pick a step to stop the drawing and read it.

A tool, an agent and an MCP server side by side Four questions answered for each. Who decides: the model calls a tool and picks an agent’s steps, the host picks MCP servers. What is standardized: JSON Schema per vendor for a tool, nothing for the loop, listing and calling for MCP. What you build: a function, a configuration, a server. Where permissions are checked: in the tool’s code as the user, in each tool an agent calls, and at the server rather than in the protocol. QUESTIONTOOLAGENTMCP SERVERWHO DECIDESThe model calls it,your code runs itThe model pickseach next stepThe host pickswhich serversSTANDARDIZEDJSON Schema, ineach vendor’s APINothing: the loopis your codeHow tools arelisted and calledYOU BUILDA function andits descriptionA prompt, tools,a model, a limitA server, or aclient settingPERMISSIONSIn the tool’s codeas the userIn each toolit callsAt the server,not the protocol
A tool, an agent and an MCP server side by side Four questions answered for each. Who decides, what is standardized, what you build, and where permissions are checked: in the tool’s code as the user, in each tool an agent calls, and at the server rather than in the protocol. WHO DECIDESTOOLThe model calls, your code runsAGENTThe model picks each next stepMCPThe host picks which serversSTANDARDIZEDTOOLJSON Schema, per vendor APIAGENTNothing: the loop is your codeMCPHow tools are listed and calledYOU BUILDTOOLA function and its descriptionAGENTPrompt, tools, model and limitMCPA server, or a client settingPERMISSIONSTOOLIn the tool’s code, as the userAGENTIn each tool it callsMCPAt the server, not the protocol
  1. 01

    Who decides

    The model calls a tool and picks an agent’s next step. The application picks which MCP servers to connect.

  2. 02

    What is standardized

    A tool is JSON Schema in each vendor’s format. MCP standardizes listing and calling. The loop is your code.

  3. 03

    What you build

    A tool is a function. An agent is a configuration. An MCP server publishes tools you already have.

  4. 04

    Where permissions are checked

    In the code that runs the tool, as the user who asked. The protocol carries the call and cannot check it for you.

When to write a tool, and when to build an agent

Write a tool when the model needs one capability it does not have: find tickets by symptom, read a part record, draft a reply. Keep it narrow, so its description says exactly when to call it. A good description is most of the work, since it is all the model sees.

Build an agent when the steps cannot be known in advance. A question like “has this pump failed this way before, and why?” may need two searches or five. If the steps are always the same, write them as code that calls the model at fixed points. Anthropic’s guide recommends the simplest system that works, and a fixed workflow when the task is well defined.

When to expose or consume an MCP server

Expose an MCP server when tools you already have should be usable from more than one AI application. A team that owns a system can publish its tools once. A coding assistant, a chat app and another team’s agent can then all call them. The tools stay where the data and its owners are.

Consume an MCP server when someone already offers the tools you need, and you trust them. Three questions come first. Who wrote the server? As whom do its tools run? What can its tools change? The specification treats descriptions of tool behavior as untrusted unless they come from a trusted server, and asks that a person can deny tool calls. A description is text the model reads, so it is also a way in for prompt injection.

You do not need MCP to give a model tools. A tool your own application defines and runs needs no protocol at all. MCP pays off when the same tools serve several hosts.

Common confusions

  • An MCP server is not an agent. It offers tools and runs them when called. Some servers call a model inside a tool, but to the host that is still one tool call.
  • MCP does not replace tool calling. The model still writes the same structured call. MCP decides where the definition came from and where the call goes.
  • More tools is not better. Every definition takes room in the context window on every turn, and overlapping tools make the model unsure which to call. OpenAI’s guide suggests fewer than 20 functions at the start of a turn, as a soft limit. Our documentation suggests fewer than about 10 per agent. Choosing what the model sees is the subject of context engineering.
  • A protocol is not an access policy. Connecting a server over MCP says nothing about whose rights its tools use. A server that runs every call under one service account gives every caller that account’s reach.

How Curiosity Studio uses all three

In Curiosity Studio, an AI tool is a C# class whose methods carry a description and described parameters. The model gets only those, never the code. Each call receives the user whose chat invoked it, and the built in tools search and read as that user, record by record.

An agent is a saved configuration: a system prompt, a set of tools and a chat model. Each run is stored as a record, and times out after 5 minutes by default. One agent can hand work to another through a tool that wraps it. A third piece, the skill, is a short Markdown document the assistant reads when it needs it. A skill changes what the model knows, a tool what it can do.

Studio also serves its AI tools over MCP, so an outside MCP client can list and call them. The client connects with an MCP token from Manage → Access → Tokens. The token acts as one user, so the client sees only the tools that user may call. New tools and agents are written in C#, or drafted by Sudo. He stages each change as a diff in his sandbox for a person to approve. The AI agents page has the developer view.

FAQ

Questions people ask

Is an MCP server an AI agent?

No. An MCP server offers tools, resources and prompts, and runs a tool when a host calls it. Deciding which tool to call, and what to do with the result, is the model’s job in the host. A server may call a model inside one of its tools, but to the host that is still a single tool call.

Do I need MCP to give a model tools?

No. Every major model API takes tool definitions directly, and your application runs the calls. MCP helps when the same tools should serve several AI applications, because it standardizes how they are listed and called.

Can Curiosity Studio act as an MCP server?

Yes. Studio serves its AI tools over MCP, so an outside MCP client can list and call them. The client uses an MCP token minted under Manage → Access → Tokens. The token acts as one user, so the client sees only the tools that user may call.

What is the difference between an AI tool and a skill in Curiosity Studio?

A tool is a C# function the model can call to do something: search, read or write. A skill is a short Markdown document the model reads when it needs to know how a task is done. A tool changes what the model can do, a skill what it knows.

Your data. Your infrastructure.

Your tools, your agents, your permissions.