MCP 协议从入门到实战:手把手搭建你的第一个 AI 工具服务器

📅 2026/7/9 17:12:08
MCP 协议从入门到实战:手把手搭建你的第一个 AI 工具服务器
为什么你需要了解 MCP说实话一年前我听到 MCP 这个词的时候第一反应是——又来了个新协议。但当我真正上手搭建了一个 MCP 服务器把内部工具都接上去之后我真香了。MCPModel Context Protocol是 Anthropic 在 2024 年底提出的开放协议目的是让 AI 模型能标准化地调用外部工具和数据。说白了它解决了一个最根本的问题大模型再强也碰不到你的数据库、文件系统和 API。MCP 的核心概念MCP 的架构其实很简单就三层Host— 运行 AI 模型的主机比如 Claude Desktop、VS Code 里的 AI 插件Client— 和 MCP 服务器建立一对一连接的客户端Server— 提供工具、资源、提示的轻量服务程序每个 Server 只连一个 Client但一个 Host 可以连多个 Server。这就好比你电脑上装了一个 IDEIDE 里装了各种插件——每个插件就是一个 MCP Server。环境准备开始之前你需要准备好Node.js 18推荐 20 LTSPython 3.10可选如果你更熟悉 PythonClaude Desktop 或其他支持 MCP 的客户端一个简单的 API Key比如用 OpenClaw 的本地服务第一步搭建一个最简单的 MCP Server我们先用 Python 搭一个最简的「天气查询」工具服务器frommcp.serverimportFastMCPServer,Tool appFastMCPServer(weather-server,1.0.0)app.tool()asyncdefget_weather(city:str)-str:查询指定城市的天气信息# 这里简化处理实际可以调用天气APIreturnf{city}当前温度 26°C多云空气质量良好if__name____main__:app.run()保存为weather_server.py然后运行pipinstallmcp-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 查询工具importasyncpgfrommcp.serverimportFastMCPServer,Tool appFastMCPServer(db-query,1.0.0)poolNoneapp.tool()asyncdefquery_database(sql:str)-list:执行 SQL 查询并返回结果asyncwithpool.acquire()asconn:rowsawaitconn.fetch(sql)return[dict(row)forrowinrows]app.on_startup()asyncdefinit():globalpool poolawaitasyncpg.create_pool(dsnpostgresql://user:passlocalhost/db)app.run()常见问题 QAQMCP 和 Function Calling 有什么区别AFunction Calling 是每个模型各自定义的接口规范而 MCP 是一个开放标准。你用 MCP 写的工具可以在 Claude、GPT 甚至本地的开源模型之间复用。Q安全怎么保证AMCP Server 运行在你的本地机器上数据不会经过第三方。你可以控制每个工具能做什么、不能做什么。权限控制在 Server 端模型只是调用接口。Q性能怎么样AMCP 走的是 JSON-RPC 协议每次调用开销在几毫秒级别。对于大多数业务场景完全够用。如果你需要高吞吐可以考虑连接池和异步处理。总结MCP 不是那种「必须学的技术」但它确实是那种「学了之后效率提升一大截」的技术。我自己的感受是原来需要手动查询数据 → 现在跟 Claude 说一句就行原来要写脚本批量处理 → 现在直接对话式操作原来工具和服务散落一地 → 现在统一通过 MCP 暴露给 AI下一步你可以试试把你的常用 API 封装成 MCP 工具接入 CI/CD 流程或者做个文件操作服务器。路子给你铺好了动手试一下吧。