全球7000种编程语言,AI工具集成的标准却只有一个刚出炉的MCP。这个周末我掉进了这个兔子洞,发现它正在解决一个让开发者头疼多年的老问题。
这是我从零开始学习Model Context Protocol(模型上下文协议)系列的第一篇。之前读了不少资料,概念上感觉懂了,但一直没动手。现在终于开始实操,把从入门到能跑通的过程记下来,给同样在摸索的人参考。
我的学习来源很杂:几本书、一些YouTube教程、跟做类似事情的开发者关系同事聊天,还有大量AI辅助理解概念。话不多说,开始。
MCP解决什么问题
Srinivasan Sekar在《MCP Standard》这本书里有个绝妙的类比。想象你有M个AI模型,N个想接入的工具。
老办法:没有标准的话,每个组合都要单独做集成。M乘N个连接,维护起来是噩梦。
MCP方案:它充当万能插头。工具按MCP标准写一次,任何支持该协议的模型都能直接用。
这个场景是不是很熟悉?容器化时代Kubernetes就是这么干的——定个标准,大家按标准来。MCP正在对AI工具做同样的事。
三个核心角色
动手之前,得先理解三个角色:
Host(宿主):用户直接交互的应用。决定调用哪些工具、维护对话上下文、管理客户端。比如Claude Desktop、Goose、VS Code、Cursor。
Client(客户端):住在宿主内部,负责跟具体的MCP Server保持连接。
Server(服务器):响应客户端请求,通过MCP协议暴露工具、资源和提示词。
MCP之前,AI代理什么都干——取数据、格式化、调模型、返回答案,一大坨逻辑,难测试难扩展。MCP之后,代理只做一件事:推理。
从计算器开始
不花哨,但最适合理解基础。我用MCP Python SDK搭了个计算器。
不用从零实现协议。Anthropic在GitHub的modelcontextprotocol组织下维护了官方开源SDK,MIT许可证。没有SDK的话,你得手动处理host和server之间通过stdin/stdout传输的JSON-RPC消息、实现握手、路由请求、序列化响应等等。SDK把这些全抽象掉了。
SDK里我选了FastMCP。代码很简洁:导入FastMCP,实例化,用装饰器注册工具函数。比如乘法就是接收两个float,返回乘积。加减除同理。
下一步是把它接到宿主上跑起来。这是下篇的内容——怎么让Claude Desktop真正用上这个计算器。
热门跟贴