Articles

Model Context Protocol (MCP) in 2026: The Standard for AI Tool Use

MCP became the de facto AI tool-use standard in 2025-2026: Anthropic, OpenAI, and Google all adopted it. Architecture, SDKs, security, gateway options.

·
Updated
·
5 min read
mcp model-context-protocol ai-agents tool-use gateway integrations llms 2026
Model Context Protocol (MCP): Unlocking the Future of AI Integration
Table of Contents

TL;DR: MCP in 2026

QuestionAnswer
What is it?An open standard for AI tool use, introduced by Anthropic November 2024
Spec locationmodelcontextprotocol.io
Adopted byAnthropic Claude, OpenAI Agents SDK, Google Gemini, Cursor, Zed, many others
TransportsSTDIO (local), Streamable HTTP (remote); SSE deprecated in spec rev 2025-03
Wire protocolJSON-RPC 2.0
SDKsPython, TypeScript (official); other languages vary or community-maintained
Primary primitivesTools (callable), Resources (read-only), Prompts (templates)
Need a gateway?Yes for enterprise: auth, audit, guardrails. FAGI Agent Command Center is the FAGI option.

Why MCP Won in 2025 and 2026

Before MCP, every AI agent needed bespoke connector code for every tool. Claude integrated with GitHub differently from how gpt-4 integrated with GitHub, which was different from how Gemini integrated with GitHub. The same Postgres connector got rewritten three times.

Anthropic released the Model Context Protocol on November 25, 2024. The spec defines tools, resources, and prompts over JSON-RPC 2.0 with two transports (STDIO and HTTP). Within a year, OpenAI added native MCP support to its Agents SDK (announced March 2025), Google integrated MCP into the Gemini agent stack later in 2025, and the registry at modelcontextprotocol.io grew to hundreds of servers covering GitHub, Slack, Postgres, Google Drive, Stripe, Cloudflare, Linear, Notion, Sentry, and more.

What MCP solved: a single tool implementation runs against any compatible LLM. You write a GitHub MCP server once and it works with Claude, gpt-4o, Gemini, and any agent stack that speaks MCP. That cross-LLM portability is the entire reason MCP took off.

MCP Architecture: Hosts, Clients, Servers

MCP has three roles:

  • Host: the user-facing application. Claude Desktop, Cursor, Zed, a custom Python agent. The host decides which servers to connect to and shows tool-call confirmations to the user.
  • Client: a connection that lives inside the host. One client per server, one server per client. The client speaks JSON-RPC over the configured transport.
  • Server: a process that exposes capabilities. A server advertises a set of tools (callable functions), resources (read-only blobs the LLM can read), and prompts (reusable templates the user can invoke).
+----------------+         +----------------+         +----------------+
|   MCP Host     |  <----> |   MCP Client   |  <----> |   MCP Server   |
| (Claude, IDE)  |  many   | (one per srv)  |  one    | (github, db,   |
|                |         |                |  to one |  fs, slack)    |
+----------------+         +----------------+         +----------------+
                                JSON-RPC 2.0
                            STDIO or Streamable HTTP

A single host typically connects to many servers. Each (client, server) pair is its own session; the host orchestrates them.

MCP Transports: STDIO vs Streamable HTTP

Two transports in the current spec:

  1. STDIO. The host launches the server as a subprocess and exchanges JSON-RPC messages over stdin/stdout. This is the default for local servers; it has zero network surface, the host controls lifecycle, and credentials stay on disk. Used for filesystem, local Postgres, local git, and tooling like Puppeteer.
  2. Streamable HTTP. The server listens on an HTTP endpoint; the client sends POSTs and reads the streamed response. This is the default for remote servers. The original SSE-only transport was deprecated in favor of Streamable HTTP in the 2025-03 spec revision.

OAuth 2.0 is the recommended auth scheme for remote servers. Bearer tokens, mTLS, and API keys are all possible depending on the host’s policy.

A Minimal MCP Server in Python

The official Python SDK (pip install mcp) makes a server about 30 lines. This server exposes one tool that fetches a URL:

import asyncio
import httpx
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("fetch")

@mcp.tool()
async def fetch(url: str) -> str:
    """Fetch a URL and return the response text."""
    async with httpx.AsyncClient(timeout=30) as client:
        response = await client.get(url)
        response.raise_for_status()
        return response.text

if __name__ == "__main__":
    asyncio.run(mcp.run_stdio_async())

Wire it into Claude Desktop by adding to claude_desktop_config.json:

{
  "mcpServers": {
    "fetch": {
      "command": "python",
      "args": ["/abs/path/to/fetch_server.py"]
    }
  }
}

Restart Claude Desktop and the fetch tool appears in the tool menu. For the full reference see the MCP Python SDK README.

A Minimal MCP Client in Python

import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main() -> None:
    params = StdioServerParameters(
        command="python",
        args=["fetch_server.py"],
    )
    async with stdio_client(params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            tools = await session.list_tools()
            print("Tools:", [t.name for t in tools.tools])
            result = await session.call_tool(
                "fetch",
                {"url": "https://example.com"},
            )
            print("Result:", result)

if __name__ == "__main__":
    asyncio.run(main())

This is the same pattern any host uses internally. The difference between an embeddable client and Claude Desktop is mostly UI plus credential storage.

Security: What MCP Solves, What It Doesn’t

MCP solves the integration sprawl problem. It does not solve:

  • Prompt injection through tool descriptions and resource content. A malicious MCP server can ship a tool description that tries to manipulate the LLM. A malicious file fetched as a resource can carry injection payloads. The host has to defend against this.
  • Capability creep. Hosts can expose broad tool sets unless users or administrators scope the available servers and tools. In a production agent you want to restrict the tool set per task.
  • Audit and policy. The protocol gives you structured tool-call events; turning them into auditable traces, retention policies, and rate limits is the host or gateway’s responsibility.

This is where an MCP gateway helps. The gateway sits between the agent and the MCP servers, applies policy (which tools, which users, which arguments), records traces, and enforces guardrails on the inputs and outputs.

MCP Gateways, Hosts, and Clients in 2026

Distinguish two roles. A gateway is a router that sits between the agent and one or more MCP servers, centralizing auth, audit, and policy. A host is the user-facing app, and a client is the in-process connection.

Gateway and control-plane options for MCP in 2026:

  1. FAGI Agent Command Center (/platform/monitor/command-center). BYOK gateway with guardrails, traceAI observability, and policy on MCP tool calls. Designed for enterprise agents where you need to centralize key custody, audit every tool call, and screen tool inputs and outputs for prompt injection or PII leakage before they reach the LLM or the external API. The FAGI Protect guardrails library (turing_flash, turing_small, turing_large) can be wired into the gateway’s call path.
  2. Custom in-process routers built on the official Python or TypeScript SDK. Many teams start here for a single agent before standardizing on a managed gateway.

MCP hosts and clients commonly used in 2026:

  • Anthropic Claude Desktop. A widely used MCP host with mcp.json local server configuration and tool-call confirmation prompts. Single-user.
  • Cursor. MCP client built into the editor with mcp.json config; popular for developer agents.
  • Cline and Continue.dev. Open source IDE agents with first-class MCP client support.
  • OpenAI Agents SDK. Added native MCP client support in 2025; works with any spec-compliant MCP server.

For multi-agent backends, putting policy at the gateway layer (rather than in every agent) is the same architectural choice as API gateways for microservices.

Where Future AGI Fits in an MCP Stack

Two surfaces:

  • Agent Command Center at /platform/monitor/command-center: BYOK gateway for MCP servers and LLM providers with guardrails, key custody, audit logs, and the option to route through FAGI Protect (turing_flash ~1-2s cloud, turing_small ~2-3s, turing_large ~3-5s) before the tool call leaves the agent. The official FAGI MCP server is at docs.futureagi.com/docs/quickstart/setup-mcp-server.
  • traceAI (github.com/future-agi/traceAI, Apache 2.0): OpenTelemetry instrumentation for the agent’s LLM calls and tool calls. Pair it with the gateway to get end-to-end spans on every MCP exchange.

Further Reading

For wider agent-stack context see Top 5 LLM Observability Tools 2025, Open Source Stack for AI Agents in 2025, and Building Multi-Agent AI with Future AGI.

Frequently asked questions

What is the Model Context Protocol (MCP)?
MCP is an open standard introduced by Anthropic in November 2024 (modelcontextprotocol.io) that defines how AI applications expose tools, resources, and prompts to LLMs. It uses JSON-RPC 2.0 over STDIO or HTTP transports. Instead of writing a custom integration for every LLM and every tool, a developer ships one MCP server (for example, a GitHub server or a Postgres server) and any MCP-compatible client (Claude Desktop, OpenAI Agents SDK, Gemini, Cursor, Zed, and many others) can use it.
Who adopted MCP in 2025 and 2026?
Anthropic introduced the spec in November 2024. OpenAI announced MCP support in its Agents SDK in March 2025. Google adopted MCP in its Gemini agent stack later in 2025. By 2026 MCP is the lingua franca for tool-use in serious agent stacks; the registry at modelcontextprotocol.io lists hundreds of community and vendor servers.
How is MCP different from OpenAI function calling?
Function calling is a runtime convention inside a single LLM API. MCP is a transport-level protocol that lives outside the LLM API and lets you reuse the same tool across different LLMs. With function calling you ship the same tool definition in every LLM call; with MCP you stand up an MCP server once and any compatible client (Claude, gpt-4o, Gemini, Cursor) consumes it. In 2026 most agent stacks compose: the LLM does function calling underneath, and MCP is the cross-LLM tool layer.
What are MCP servers, MCP clients, and MCP hosts?
An MCP host is the application the user runs (Claude Desktop, Cursor, Zed, a custom agent). The MCP client is a connection living inside the host that maintains a 1:1 session with an MCP server. An MCP server is a process that exposes tools (callable functions), resources (read-only blobs), and prompts (reusable templates). The official Python and TypeScript SDKs (github.com/modelcontextprotocol) ship both server and client primitives.
What transports does MCP support?
Two: STDIO (for local servers that the host launches as a subprocess) and Streamable HTTP (for remote servers). The original SSE transport was deprecated in favor of Streamable HTTP in the 2025-03 spec revision. STDIO is the default for local-only servers; Streamable HTTP is the default for remote enterprise servers behind OAuth.
How secure is MCP?
MCP itself is a protocol; security depends on the host and the server. Well-designed hosts commonly require user approval before sensitive tool calls, and the spec recommends OAuth 2.0 for remote servers. The serious risk in 2025-2026 was prompt-injection through tool descriptions and resource content; mature hosts (Claude Desktop, Cursor) show tool-call confirmations and isolate untrusted resources. A gateway sitting between the agent and untrusted MCP servers (such as FAGI Agent Command Center) adds policy, audit, and key custody on top of the protocol.
What is an MCP gateway and why do I need one?
An MCP gateway is a router that sits between your agent and one or more MCP servers, centralizing authentication, rate limiting, audit logging, and guardrails. It is the same architectural role as an API gateway. In an enterprise stack a gateway gives you a single chokepoint to enforce which tools an agent can call, attach traces for observability, and rotate credentials without redeploying the agent. The FAGI Agent Command Center at /platform/monitor/command-center is a BYOK MCP-aware gateway with guardrails built in.
How do I get started with MCP in 2026?
Install the official Python or TypeScript SDK (pip install mcp or npm install @modelcontextprotocol/sdk), pick an existing server from the registry (github, postgres, filesystem, slack, gdrive, fetch), wire it into Claude Desktop or your agent via mcp.json, and call a tool. From there you can write your own server in 50 to 100 lines. The official tutorials at modelcontextprotocol.io walk through both server and client paths.
Related Articles
View all
Stay updated on AI observability

Get weekly insights on building reliable AI systems. No spam.