为什么你需要了解 MCP?

说实话,一年前我听到 MCP 这个词的时候,第一反应是——又来了个新协议。但当我真正上手搭建了一个 MCP 服务器,把内部工具都接上去之后,我真香了。

MCP(Model Context Protocol)是 Anthropic 在 2024 年底提出的开放协议,目的是让 AI 模型能标准化地调用外部工具和数据。说白了,它解决了一个最根本的问题:大模型再强,也碰不到你的数据库、文件系统和 API。

MCP 架构示意图

MCP 的核心概念

MCP 的架构其实很简单,就三层:

  1. Host — 运行 AI 模型的主机(比如 Claude Desktop、VS Code 里的 AI 插件)
  2. Client — 和 MCP 服务器建立一对一连接的客户端
  3. Server — 提供工具、资源、提示的轻量服务程序

每个 Server 只连一个 Client,但一个 Host 可以连多个 Server。这就好比你电脑上装了一个 IDE,IDE 里装了各种插件——每个插件就是一个 MCP Server。

MCP 三层架构图

环境准备

开始之前,你需要准备好:

  • Node.js 18+(推荐 20 LTS)
  • Python 3.10+(可选,如果你更熟悉 Python)
  • Claude Desktop 或其他支持 MCP 的客户端
  • 一个简单的 API Key(比如用 OpenClaw 的本地服务)

第一步:搭建一个最简单的 MCP Server

我们先用 Python 搭一个最简的「天气查询」工具服务器:

from mcp.server import FastMCPServer, Tool

app = FastMCPServer("weather-server", "1.0.0")

@app.tool()
async def get_weather(city: str) -> str:
    """查询指定城市的天气信息"""
    # 这里简化处理,实际可以调用天气API
    return f"{city} 当前温度 26°C,多云,空气质量良好"

if __name__ == "__main__":
    app.run()

保存为 weather_server.py,然后运行:

pip install mcp-python-sdk
python weather_server.py

第二步:配置 Claude Desktop

在 Claude Desktop 的配置文件中添加:

{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": ["path/to/weather_server.py"]
    }
  }
}

重启 Claude Desktop,你就能在对话中使用 get_weather 工具了。

第三步:接入实际数据库

光查天气没啥意思,真正的价值在于让 AI 操作你的业务数据。来个 PostgreSQL 查询工具:

import asyncpg
from mcp.server import FastMCPServer, Tool

app = FastMCPServer("db-query", "1.0.0")
pool = None

@app.tool()
async def query_database(sql: str) -> list:
    """执行 SQL 查询并返回结果"""
    async with pool.acquire() as conn:
        rows = await conn.fetch(sql)
        return [dict(row) for row in rows]

@app.on_startup()
async def init():
    global pool
    pool = await asyncpg.create_pool(dsn="postgresql://user:pass@localhost/db")

app.run()

常见问题 Q&A

Q:MCP 和 Function Calling 有什么区别?
A:Function Calling 是每个模型各自定义的接口规范,而 MCP 是一个开放标准。你用 MCP 写的工具,可以在 Claude、GPT 甚至本地的开源模型之间复用。

Q:安全怎么保证?
A:MCP Server 运行在你的本地机器上,数据不会经过第三方。你可以控制每个工具能做什么、不能做什么。权限控制在 Server 端,模型只是调用接口。

Q:性能怎么样?
A:MCP 走的是 JSON-RPC 协议,每次调用开销在几毫秒级别。对于大多数业务场景完全够用。如果你需要高吞吐,可以考虑连接池和异步处理。

总结

MCP 不是那种「必须学的技术」,但它确实是那种「学了之后效率提升一大截」的技术。

我自己的感受是:

  • 原来需要手动查询数据 → 现在跟 Claude 说一句就行
  • 原来要写脚本批量处理 → 现在直接对话式操作
  • 原来工具和服务散落一地 → 现在统一通过 MCP 暴露给 AI

下一步你可以试试:把你的常用 API 封装成 MCP 工具,接入 CI/CD 流程,或者做个文件操作服务器。路子给你铺好了,动手试一下吧。

MCP 生态概览

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐