What Just Happened§

The Model Context Protocol (MCP) emerged as an open standard for connecting AI agents to external tools and data sources. Announced by Anthropic in late 2024, MCP defines a unified interface that allows any MCP-compliant agent to seamlessly integrate with thousands of tools—from databases to APIs—without custom glue code. This is a paradigm shift from fragmented integrations to a shared protocol ecosystem.

Why This Matters for AI Practitioners§

As a practitioner who has built and deployed agentic systems across multiple platforms, I’ve seen the fragmentation firsthand. Every tool integration required bespoke connectors—OpenAI function calling for ChatGPT, custom plugins for LangChain, proprietary SDKs for each agent framework. The result: a combinatorial explosion of code that’s hard to maintain and impossible to scale. MCP changes that by introducing a standardized protocol: a set of JSON-RPC messages that define how agents discover, invoke, and receive responses from tools.

The core value is interoperability. With MCP, a tool written once works with Claude, DeepSeek, Cursor, and any other MCP-compliant agent. This is not just a developer convenience; it’s a strategic shift. It means we can build tool ecosystems that outlive any single model or vendor. The protocol is transport-agnostic (works over stdio, HTTP, WebSocket) and supports both client-initiated and server-initiated interactions. For enterprise deployments where compliance and data sovereignty are critical, this decoupling is a game-changer.

[Loading prompt card for DeepSeek Chat...]
[Loading prompt card for Claude...]

Under the hood, MCP defines a clear lifecycle: tool discovery (list tools), tool invocation (call tool), and occasional notifications (e.g., for tool updates). It also supports progress reporting and cancellation, which is essential for long-running operations like database queries or API calls that might time out. I’ve used these features to build a real-time search tool that streams results back to Claude without blocking the conversation.

Who Is Affected§

MCP affects everyone building or using AI agent systems. Agent developers now must learn MCP to make their agents compatible. Tool authors (e.g., creators of search engines, databases, or custom APIs) gain a single integration target. End users benefit from richer, more capable agents that can use the best tools regardless of the agent’s origin.

Specifically, if you’re using Claude (Anthropic’s agent) today, MCP is how you give it real-time data or actions. If you’re building with DeepSeek, you can write MCP servers to extend its capabilities. Cursor uses MCP for its coding agent to interact with file systems and databases. Even **Perplexity** is exploring MCP for live tool integrations. I’ve spoken to teams at major tech firms who are migrating from custom tool connectors to MCP to reduce maintenance overhead by 80%. One team I consulted replaced 12 different plugin adapters with a single MCP server that exposed all internal APIs—and they now support any agent without new code.

[Loading prompt card for Perplexity AI...]

How to Use This Right Now§

Let’s get hands-on. I’ll walk through building a simple MCP server in Node.js that exposes a weather lookup tool. Then we’ll connect it to a Claude agent.

First, install the MCP SDK:

npm install @anthropic-ai/mcp-sdk

Now create a server file weather-server.js:

import { Server } from "@anthropic-ai/mcp-sdk/server";
import { StdioServerTransport } from "@anthropic-ai/mcp-sdk/server/stdio";
import { CallToolRequestSchema, ListToolsRequestSchema } from "@anthropic-ai/mcp-sdk/types";

const server = new Server({
  name: "weather-server",
  version: "1.0.0",
});

server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [{
    name: "get_weather",
    description: "Get current weather for a city",
    inputSchema: {
      type: "object",
      properties: {
        city: { type: "string" },
      },
      required: ["city"],
    },
  }],
}));

server.setRequestHandler(CallToolRequestSchema, async (request) => {
  if (request.params.name !== "get_weather") {
    throw new Error("Unknown tool");
  }
  const { city } = request.params.arguments;
  // In production, call a real API
  const weather = await mockWeatherAPI(city);
  return {
    content: [{ type: "text", text: JSON.stringify(weather) }],
  };
});

async function mockWeatherAPI(city) {
  return { temperature: 72, condition: "sunny", city };
}

const transport = new StdioServerTransport();
await server.connect(transport);

Run it:

node weather-server.js

Now, in Claude Desktop, add a MCP server pointing to this process. Claude will discover the get_weather tool and use it when asked "What's the weather in Tokyo?" Here’s a prompt example: > User: "What's the weather in Tokyo?" > Agent: Calls get_weather(city=\"Tokyo\") and responds with "The current weather in Tokyo is 72°F and sunny."

This same server works with any MCP-compliant agent. You can test it with DeepSeek’s agent SDK or Cursor’s tool integration—no code changes needed. For production, consider using HTTP transport to allow remote connections, adding authentication via the protocol’s capability negotiation, and implementing streaming for large results. I’ve also used the MCP Inspector (a dev tool from Anthropic) to debug server responses and validate the schema.

  • DeepSeek: Open-source model with MCP support in its agent sandbox; great for testing servers locally.
  • Claude Desktop: Anthropic’s primary MCP client; the reference implementation for MCP.
  • Cursor: AI code editor that uses MCP for its agent to manage files, run commands, and query databases.
  • Perplexity Pro: Adding MCP integrations for real-time data retrieval, currently in beta.

For building MCP servers, also check:

  • LangChain: Their MCP adapter tool allows wrapping existing LangChain tools as MCP servers.
  • MCP Inspector: Dev tool to debug and test MCP servers interactively.

The ecosystem is growing fast. By adopting MCP now, you position your tools and agents for the future of interoperable AI.