
从零搭建 MCP Server让 AI 助手调用你的本地工具说实话今年 AI 圈最火的概念之一就是 MCP。如果你还没搞懂它是啥或者想动手搭一个但不知道从哪下手这篇文章就是为你准备的。什么是 MCP一句话说清楚MCPModel Context Protocol是 Anthropic 推的一个开放协议说白了就是给 AI 模型开了个后门让它能跟外部工具对话。想象一下以前你问 ChatGPT帮我查一下本地文件它只能摊手说我做不到。有了 MCP它可以直接调用你的文件系统、数据库、甚至控制你的浏览器。核心概念三个角色MCP 架构里就三个角色好记得很Host宿主程序比如 Claude Desktop、Cursor 这些Client和 Server 建立一对一连接的客户端Server你的工具暴露给 AI 调用的接口动手从零搭建一个天气查询 MCP Server接下来咱们实战用 Python 搭一个简单的 MCP Server让 AI 能查天气。环境准备# 安装 mcp 库pipinstallmcp httpx# 创建项目目录mkdirmy-mcp-servercdmy-mcp-server写 Server 代码frommcp.serverimportServerfrommcp.server.stdioimportstdio_serverfrommcp.typesimportTool,TextContentimporthttpximportjson# 初始化 ServerserverServer(weather-server)# 注册工具server.list_tools()asyncdeflist_tools()-list[Tool]:return[Tool(nameget_weather,description查询指定城市的当前天气,inputSchema{type:object,properties:{city:{type:string,description:城市名如 北京、上海}},required:[city]})]# 实现工具逻辑server.call_tool()asyncdefcall_tool(name:str,arguments:dict)-list[TextContent]:ifnameget_weather:cityarguments[city]# 这里用 wttr.in 的公开 APIasyncwithhttpx.AsyncClient()asclient:respawaitclient.get(fhttps://wttr.in/{city}?format%C%t)return[TextContent(typetext,textf{city}天气{resp.text})]raiseValueError(fUnknown tool:{name})if__name____main__:importasyncio asyncio.run(stdio_server(server))配置 Claude Desktop 连接在 Claude Desktop 的配置文件中添加{mcpServers:{weather-server:{command:python,args:[path/to/weather_server.py]}}}配置完重启 Claude Desktop就能看到你的 MCP 工具了进阶用 MCP 连接数据库上面只是开胃菜真正的威力在于连接数据库、文件系统这些重型工具。server.list_tools()asyncdeflist_tools()-list[Tool]:return[Tool(namequery_database,description执行 SQL 查询返回结果,inputSchema{type:object,properties:{sql:{type:string,description:SQL 查询语句}},required:[sql]})]server.call_tool()asyncdefcall_tool(name:str,arguments:dict)-list[TextContent]:ifnamequery_database:importsqlite3 connsqlite3.connect(mydb.db)cursorconn.cursor()cursor.execute(arguments[sql])resultscursor.fetchall()conn.close()return[TextContent(typetext,textjson.dumps(results,ensure_asciiFalse))]raiseValueError(fUnknown tool:{name})常见问题 QAQMCP 和 Function Calling 有啥区别AFunction Calling 是各家模型自己搞的私有协议MCP 是开放标准。用了 MCP你的工具能在所有支持 MCP 的客户端上跑不用改代码。QMCP Server 一定要用 Python 吗A不官方 SDK 支持 Python、TypeScript、Java、Go。选你熟悉的语言就行。Q安全方面怎么考虑AMCP Server 跑在本地权限由你控制。建议不要暴露敏感操作或者加上鉴权逻辑。总结MCP 说白了就是一个让 AI 用工具的标准化接口。花一两个小时搭一个 MCP Server你就能让 AI 真正帮你干活了而不是只会在那聊天。下一步可以试试搭一个文件搜索 MCP Server、一个代码执行 MCP Server、或者一个浏览器控制 MCP Server。玩起来你就知道 MCP 有多香了。如果你喜欢这篇文章点个赞收藏一下以后还有更多 AI 实战教程