Before MCP, connecting an AI model to an external tool required custom integration work for every combination of model and tool. Claude querying your database required one integration; GPT-5.5 querying the same database required another.
Model Context Protocol (MCP) solves this by defining a universal standard. An MCP server exposes tools and resources in a standardized format. Any MCP-compatible AI client — Claude, GPT, Gemini, or a local model — can discover and use those tools without model-specific code.
The USB-C analogy is apt: one cable, every device.
MCP defines a client-server architecture with three core primitives:
Functions the AI can call to perform actions — querying a database, sending an email, reading a file, calling an API:
{
"name": "search_database",
"description": "Search the product database by keyword",
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string" },
"limit": { "type": "number", "default": 10 }
}
}
}
Read-only data sources — documents, files, database records, API responses — identified by URIs.
Pre-built prompt templates the server exposes, packaging best-practice interaction patterns alongside tool definitions.
What started as an Anthropic internal standard has become the de facto industry protocol:
| MCP Server | What It Connects |
|---|---|
| mcp-server-postgres | PostgreSQL databases |
| mcp-server-github | GitHub repos, PRs, issues |
| mcp-server-slack | Slack channels and messages |
| mcp-server-filesystem | Local file system |
| mcp-server-notion | Notion pages and databases |
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "my-api-server", version: "1.0.0" });
server.tool(
"get_weather",
"Get current weather for a city",
{ city: z.string().describe("City name") },
async ({ city }) => {
const data = await fetchWeather(city);
return { content: [{ type: "text", text: JSON.stringify(data) }] };
}
);
const transport = new StdioServerTransport();
await server.connect(transport);
With this running, any MCP-compatible AI client discovers and calls get_weather without model-specific configuration.
MCP's design makes three important decisions:
Model-agnostic by design — the protocol assumes nothing about the underlying AI.
Transport-agnostic — runs over stdio (local), HTTP with SSE (remote), or WebSockets (real-time).
Discovery before execution — clients ask what tools are available, then call them, enabling dynamic tool ecosystems.
MCP fundamentally changes AI product architecture. Instead of model-specific integrations, teams build MCP servers once and gain compatibility with the entire ecosystem of MCP-capable clients.
More MCP servers make AI clients more capable. More capable clients drive adoption. More adoption incentivizes more server development. By the end of 2026, MCP may be as fundamental to the AI ecosystem as REST APIs are to the web.
Originally Published On
Anthropic MCP Documentation
Curated content disclaimer: The views and opinions expressed in this article are those of the original author and do not necessarily reflect the official policy or position of CURATED. This material has been selected for its contribution to ongoing discussions in digital design.
Source: 2pixelblogs team · 9 min read
Source: 2pixelblogs team · 9 min read
Source: 2pixelblogs team · 8 min read