AI & MCP
What MCP is: the protocol that connects agents to tools
MCP is an open protocol that lets an agent discover and call tools on a server. Here is how it works and where its responsibility ends.
Key points
- MCP is JSON-RPC 2.0 over stdio or Streamable HTTP, with tools, resources and prompts as primitives.
- A server exposes capabilities the client negotiates; the model decides whether and how to use them.
- The protocol does not solve trust: descriptions and results stay untrusted data.
MCP (Model Context Protocol) is an open protocol that lets an agent discover and call tools exposed by a server, instead of receiving them pasted into the prompt. It defines messages, capabilities and transport, not the model's reasoning.
What the protocol defines
MCP uses JSON-RPC 2.0. A client opens a session, negotiates version and capabilities, then calls methods such as tools/list and tools/call. The standard transports are stdio, for a local process, and Streamable HTTP, for a remote server; the older HTTP+SSE transport is deprecated. The revision cited here is 2025-06-18, published on modelcontextprotocol.io. The specification repository is moving from MIT to Apache-2.0.
The three primitives
- Tool: a function the model can call with JSON arguments, which returns content.
- Resource: a document readable by URI, for example a design system in Markdown.
- Prompt: a reusable message template, chosen by the user or the client.
How to query a server
curl -s https://ui.eneawork.it/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
The response lists the name, description and input schema of every tool. A client such as Claude Code or Cursor makes the same call and turns the result into a model choice. The protocol imposes no output format: the server decides, and the client reads it as text.
What a catalogue exposes
The EneUI server is read-only. search_components searches by text, category or library; get_component returns description, licence, URL and install command; compose_page proposes a sequence of real blocks with dependencies; get_page turns a site page into Markdown. That is 9 tools in total, listed in backend/mcp.js and checked on 1 November 2026.
The line between protocol and model
MCP standardises discovery and calls, not the decision. The model reads a tool description and chooses whether to use it; the server does not know why it was called and does not see the rest of the conversation. That is the strength, because one server can serve different clients, and it is also the risk.
The EneUI catalogue
EneUI exposes 111,985 components and 1,556 blocks over MCP; a sample record is Magic UI rainbow button, MIT licence and 2,130 stars declared upstream. The /mcp page holds the endpoint and configuration, and /agents explains the flow for an agent. The endpoint answers with protocolVersion 2025-06-18.
The limitation
MCP does not solve trust. A server can return text that contains instructions, and a client that follows them turns a tool description into prompt injection. The specification requires neither authentication nor a sandbox: the client must treat results and descriptions as untrusted data.
Where to continue
Configuration for Claude Code, Cursor and VS Code is in shadcn MCP in three editors; the connection failure is in MCP will not connect in Cursor. To see what really lands in the repository read what a registry is, and for the comparison between shipping code and shipping a package read copy-paste or headless.
Frequently asked questions
Is MCP an Anthropic protocol?
It started at Anthropic, but it is an open protocol with project governance. The specification is public, the repository is moving from MIT to Apache-2.0, and any client or server can implement it.
Do I need an account to use an MCP server?
It depends on the server. The protocol does not require authentication; a server may ask for a token, as the EneUI registry does for installation. Tool discovery can stay anonymous.
Does MCP replace REST APIs?
No. MCP is a discovery and call layer for a model; underneath there can be a REST API, a database or a static catalogue. It does not prescribe the data schema.
Which transports does MCP support?
Two: stdio, for a local server started by the client, and Streamable HTTP, for a remote endpoint. The older HTTP+SSE transport is deprecated in the 2025-06-18 revision.
Does the model see my code when it uses MCP?
No, not automatically. The client decides what to send; the server sees only the call arguments and returns its own content.