Model Context Protocol (MCP): The Open Standard for Connected AI

15 Oct 20254 minute
Tony Chang

Tony Chang

CTO & Co-Founder

Model Context Protocol: Connecting AI Systems

The Problem: Smart Tools, Disconnected Worlds

AI tools are everywhere. They write emails, analyze data, plan trips, and even help us code. But each one still operates in isolation.

Your note-taker doesn't update your project tracker. Your email assistant doesn't know your calendar. Your travel bot can't tell your expense tracker about new flights.

Every tool works well on its own, but none of them work together.

That's what the Model Context Protocol (MCP) was built to fix.

What Is MCP?

The Model Context Protocol is an open standard created by Anthropic that allows AI models and external tools to communicate through a shared framework.

It acts as a bridge between intelligent systems, defining how they discover, describe, and call each other's capabilities in a structured and secure way.

Instead of building one-off integrations, MCP gives developers and models a consistent way to:

  • Discover available tools
  • Understand what inputs they expect
  • Exchange data safely
  • Return results in a predictable format

MCP is not a framework or a plugin system. It is the communication layer that makes AI systems interoperable.

How MCP Works

MCP follows a simple client–server model built around three core components:

ComponentDescriptionExample
ClientThe AI model or application that initiates requests. The client doesn't directly access data or perform actions. It communicates through MCP.Claude, Cursor, ChatGPT
ServerThe backend service that exposes tools, data, or other capabilities to the client.Calendar, CRM, or database connector
ToolAn endpoint exposed by the server. Tools describe schemas, allowing AI clients to call them predictably.get_weather, create_event

MCP Flow

Under the Hood: JSON-RPC

MCP uses JSON-RPC as its communication layer between clients and servers. It's a lightweight, language-independent protocol for sending structured requests and receiving responses over HTTP or WebSocket.

Each message follows a strict format that specifies a method, parameters, and a request ID, ensuring reliable and machine-readable communication.

json
{
  "jsonrpc": "2.0",
  "method": "get_weather",
  "params": { "city": "San Francisco" },
  "id": 1
}
json
{
  "jsonrpc": "2.0",
  "result": { "temperature": "18°C", "condition": "Cloudy" },
  "id": 1
}

The MCP SDK builds on JSON-RPC, handling serialization, routing, and schema validation. It lets developers register tools and process requests without dealing with raw JSON messages.

Transport Options

MCP supports two transport layers for connecting clients and servers, each suited to different environments:

  • stdio – Exchanges JSON-RPC messages over standard input and output (stdin / stdout). It's fast, lightweight, and ideal for local tools, CLI agents, or embedded integrations where both client and server run in the same process or environment.

  • Streamable HTTP – Extends HTTP with streaming via Server-Sent Events (SSE), allowing long-running, bidirectional communication over a single secure connection. Best for networked or cloud-based deployments, where clients and servers need to communicate over HTTPS.

While both use the same JSON-RPC protocol, they serve different purposes:

  • Use stdio for local development, testing, or sandboxed agents.
  • Use Streamable HTTP for scalable, multi-agent, or production systems that require persistent remote connectivity.

Example: Booking a Trip

Here's what MCP could look like in everyday use:

  1. You ask your AI travel planner to book a flight.
  2. The travel AI uses MCP to talk to your calendar and find a time when you're free.
  3. It checks with your expense tracker to confirm the trip fits your budget.
  4. Once booked, your note-taker automatically adds the flight details to your meeting notes.

Each tool stays separate and secure, but they can share just enough information through MCP to make the whole process seamless.

The diagram below shows how information flows when MCP connects your tools.

MCP Diagram

Why MCP Matters

Before MCP, developers had to build custom integrations for every tool or API. Each service used its own authentication, data format, and request logic which means every connection had to be hand-crafted.

Example: Before MCP

To let an AI assistant book a flight, you'd need to integrate multiple APIs manually:

javascript
// Custom API calls (before MCP)
const calendar = await fetch("https://api.calendar.com/events", {
  method: "POST",
  headers: { Authorization: `Bearer ${CALENDAR_KEY}` },
  body: JSON.stringify({ time: "2025-10-15T10:00Z" }),
});

const budget = await fetch("https://api.expense.com/check", {
  method: "POST",
  headers: { Authorization: `Bearer ${EXPENSE_KEY}` },
  body: JSON.stringify({ amount: 900 }),
});

if (budget.approved) {
  await fetch("https://api.notes.com/entries", {
    method: "POST",
    headers: { Authorization: `Bearer ${NOTES_KEY}` },
    body: JSON.stringify({ note: `Flight booked at ${calendar.time}` }),
  });
}

Each endpoint behaves differently, so the AI must understand all of them, making scaling or reuse almost impossible.

With MCP

With MCP, all tools follow the same protocol and schema format. Developers only define tool names, inputs, and outputs, while the SDK automatically handles transport, routing, and validation.

javascript
// Unified MCP calls
const { slot } = await client.call("calendar.find_free_time", {});
const { approved } = await client.call("expense.check_budget", { amount: 900 });
if (approved) {
  await client.call("notes.add_entry", { details: `Flight booked for ${slot}` });
}

In short, MCP does for AI-tool communication what HTTP did for the web. It gives everyone a common language to connect and collaborate.

Remaining Gaps in MCP

MCP has standardized how AI connects to tools, but the ecosystem is still evolving. Several challenges remain before it reaches full maturity:

Context Overload

As more MCP servers and tools come online, AI clients risk being flooded with too many options, making accurate tool selection harder.

Orchestration and Coordination

MCP defines how tools connect but not how they collaborate. There's still no standard for chaining or prioritizing multiple tools intelligently.

Lack of Governance

There's no unified registry or naming convention for tools, leading to duplicates, inconsistent schemas, and version drift.