curiosity

Article · Model Context Protocol

What is the Model Context Protocol?

The Model Context Protocol (MCP) is an open standard for connecting AI applications to tools and data. An application connects to MCP servers, each of which describes the tools, resources and prompts it offers, in one shared format. MCP standardizes that connection. Who may use it, and what a model may do through it, is left to you.

Topic Model Context Protocol Reading time 8 min References 7 Updated October 2026

In short

The Model Context Protocol is an open protocol that lets an AI application call tools and read data on any server that speaks it. Write a server for your ticket system once, and every application that supports MCP can use it.

It is not a model, an agent framework or an API for one product. It is closer to a plug standard. A model’s own tool calling says how the model asks for a tool inside one application. MCP says how that application finds the tool on another system and calls it there.

Anthropic introduced MCP in 2024. In December 2025 it donated the protocol to the Agentic AI Foundation, a fund under the Linux Foundation. The specification is versioned by date, and the current version is 2026-07-28.

Hosts, clients and servers

MCP has three participants. The architecture overview names them:

  • The host: the AI application a person uses, such as a chat assistant or a code editor.
  • A client: a connection the host opens to one server. A host with three servers runs three clients.
  • A server: a program that offers tools and data. It can run on the same machine, over standard input and output, or remotely over HTTP.

Messages are JSON-RPC 2.0. A client asks a server what it offers with a list request, and calls a tool with tools/call. Since the 2026-07-28 version every request carries its own protocol version and capabilities, so a server can answer each one on its own.

How it works

One host, three servers

A host opens a client for each server, learns what each offers, and calls one tool. Pick a step to stop the drawing and read it.

One MCP host, three servers An MCP host holds a model. It opens one client for each of three MCP servers: tickets, files and part records. Each server lists its tools: search, read_file and get_part. The model calls search on the tickets server, and the result returns into its context. MCP HOST · AN ASSISTANTMODELHas a task3 tools listedCalls searchReads 3 ticketsClient 1MCP SERVERTicketssearchClient 2MCP SERVERFilesread_fileClient 3MCP SERVERPart recordsget_parttools/callresult
One MCP host, three servers An MCP host holds a model and opens one client for each of three MCP servers: tickets, files and parts. Each lists its tools. The model calls search on the tickets server, and the result returns into its context. MCP HOSTMODELHas a task3 tools listedCalls searchReads 3 ticketsClient 1MCP SERVERTicketssearchClient 2MCP SERVERFilesread_fileClient 3MCP SERVERPartsget_parttools/callresult
  1. 01

    A host and its model

    An AI application, the host, has a model and a task: has pump P-7 failed this way before?

  2. 02

    One client per server

    The host opens a client for each MCP server it is set up to use: tickets, files and part records.

  3. 03

    Discover the tools

    Each client asks its server what it offers. The answers are tools, with names, descriptions and argument schemas.

  4. 04

    Call one

    The model picks search. Its client sends tools/call to the tickets server, with the arguments.

  5. 05

    Back into context

    The server answers with three tickets. The result goes into the model’s context for its next step.

Tools, resources and prompts

A server offers three kinds of things. The specification sorts them by who decides when they are used:

  • Tools are functions the model decides to call: search tickets, read a part record, update a work order. Each has a name, a description and a schema for its arguments.
  • Resources are data the application attaches as context: a file, a record, the schema of a database.
  • Prompts are templates a person chooses, often shown as slash commands.

Tools get most of the attention, because they are how a model acts. They are also where most of the risk sits.

What MCP standardizes

MCP fixes the parts every integration used to reinvent: how a client learns what a server offers, the shape of a tool’s description and arguments, the message format and the two transports. For remote servers it also defines an authorization flow based on OAuth 2.1.

That is the value. A team that wrote one connector per assistant writes one server, and each new assistant that supports MCP can use it.

What it leaves to you

The protocol carries tools and data. It does not decide what flows through it. The architecture overview says MCP “does not dictate how AI applications use LLMs or manage the provided context.” Four decisions stay with whoever builds the host and the server:

  • Who may connect. The authorization specification is plain: “Authorization is OPTIONAL for MCP implementations.” When it is used, it tells the server who connected, not what that person may see.
  • Which tools a user is offered. A server answers a list request with the tools available to that client. Which ones those are is the server’s decision.
  • Which calls run. The specification asks hosts to get a person’s consent before invoking a tool. How a host asks, and whether it asks every time, is up to the host.
  • Which records come back. A tool that reads tickets returns whatever its code returns. Whether it checks the asking person’s access, record by record, is up to the tool.

The specification says so itself: “MCP itself cannot enforce these security principles at the protocol level”.

Who decides

Four checks MCP leaves to you

One call passes four decisions on its way to the model. MCP carries the messages between them; your host, your server and your tools make them.

Four checks MCP leaves to you A call passes four checks on its way to the model: who connects, decided by an optional OAuth flow in the specification; which tools are listed, decided by your server; which calls run, decided by your host; and which records come back, decided by your tool. What passes all four reaches the model’s context. MCP is the format of the messages between them. 01 · CONNECTWho connectsSpec · optional02 · LISTWhich toolsYour server03 · CALLWhich callsYour host04 · READWhich recordsYour toolTHE MODEL’S CONTEXTNothing yetTHE MODEL’S CONTEXTWhat passed all four checksMCP · THE FORMAT OF EVERY MESSAGE BETWEEN THEM
Four checks MCP leaves to you A call passes four checks: who connects, an optional OAuth flow; which tools are listed, decided by your server; which calls run, decided by your host; which records come back, decided by your tool. What passes reaches the model’s context. MCP is the format of the messages between them. 01 · CONNECTWho connectsSpec · optional02 · LISTWhich toolsYour server03 · CALLWhich callsYour host04 · READWhich recordsYour toolTHE MODEL’S CONTEXTNothing yetTHE MODEL’S CONTEXTWhat passed all four checksMCP · EVERY MESSAGE
  1. 01

    Who may connect

    The client presents a token. For remote servers the specification defines an OAuth flow, and it is optional.

  2. 02

    Which tools are listed

    The server decides which tools this user is offered.

  3. 03

    Which calls run

    The model asks to call a tool. The host decides whether a person approves it first.

  4. 04

    Which records come back

    The tool reads as the user, or as one account for everyone. That choice is in the tool’s code.

  5. 05

    Into the model’s context

    What passed all four checks reaches the model. MCP carried each message; the four decisions were yours.

How it goes wrong

  • A service account behind the server. The server reaches the ticket system with one broad account, so everyone who can connect reads what that account reads.
  • Too many tools. Every connected server adds its tool descriptions to the model’s context on every call. See what is context engineering?
  • Tool results read as orders. A ticket a tool returns can carry text that reads like an instruction. That is prompt injection, and MCP passes the text through like any other.
  • Descriptions taken on trust. The specification treats tool descriptions as untrusted unless they come from a trusted server, and a tool as arbitrary code. A local server runs on your machine, with your access.
  • Writes with no approval. A tool that updates a work order runs as soon as the model calls it, unless the host stops to ask.

How to evaluate an MCP server

Before you connect one, six questions:

  1. Who runs it, and where? Local over standard input and output, or remote over HTTP, and on whose infrastructure?
  2. How does a client authenticate, and as whom does the server act: the person, or one account for everyone?
  3. Does each tool check the person’s access per record, or return whatever its query finds?
  4. Which tools change something, and who approves those calls before they run?
  5. How large are its tool results, and do they cite the records they came from?
  6. Is every call logged with its arguments and its result?

How Curiosity uses it

Curiosity Studio can act as an MCP server. Since July 2025 a workspace can host its AI tools over MCP, so external MCP clients can discover and call them, as the changelog records. A coding assistant or another AI application can then search and read the records Studio connects, through Studio’s AI tools.

Access control comes from Studio, not from the protocol. The documentation of the built in read tool says access control is its only boundary, over MCP as in a chat: it reads what the calling user can see. Records come from more than 70 systems, with the access rights of their source, checked per record at query time. In tools you write, the reach is yours to set: use the query scoped to the current user. The AI agents page has the developer view.

The documentation describes Studio as a server, not as a client of other MCP servers. To bring another system’s records into Studio, you connect it with a connector, or write one with the connector SDK.

FAQ

Questions people ask

What is an MCP server?

A program that offers tools, resources and prompts to AI applications over the Model Context Protocol. It can run on the same machine as the application or remotely over HTTP. An application connects to it, lists what it offers and calls its tools.

What is the difference between MCP and function calling?

Function calling is how a model asks its own application to run a tool. MCP is how that application finds tools on other systems and calls them there, in one format any MCP server understands. The two work together.

Does MCP handle authorization?

Partly. For remote servers the specification defines an OAuth 2.1 flow, and it is optional. It says who connected. Which tools that person is offered, which calls run and which records come back are decided by the host, the server and each tool.

Does Curiosity Studio support MCP?

Yes, as a server. A Studio workspace can host its AI tools over MCP, so external MCP clients can discover and call them. Its built in read tool reads only what the calling user can see. To bring another system’s data into Studio, you use a connector.

Your data. Your infrastructure.

Your permissions, inherited.