MCP: 什么是MCP
介绍
MCP是Model Context Protocol的缩写,直译就是模型上下文协议,也就是连接大语言模型上下文的协议。 详细介绍请看官方文档:https://anthropic.com/news/model-context-protocol 以及:https://modelcontextprotocol.io/docs/getting-started/intro MCP协议由anthropic公司(Claude的公司)提出。
为什么需要MCP
大语言模型虽然学习了大量的通用数据,但是对于用户自己的数据是一无所知的。 因为大模型在业务应用中,是浮于表面的,没法深入到用户业务内部,也无法和其他的系统打通。
MCP就是为解决这个问题而生,通过将AI助手连接到数据所在系统(包括内容存储库、业务工具和开发环境),解决模型与数据隔绝的问题。
这个连接的协议就是MCP。
也就是说,MCP是用来连接大模型和数据的。
一些MCP
下面从MCP store摘抄几个MCP的说明,有助于理解MCP的作用:
- Memory 让大模型可以在聊天中记住有关用户的信息
- Puppeteer 该服务器使llm能够在真实的浏览器环境中与网页交互,截取屏幕截图和执行JavaScript
- Fetch Web内容获取和转换,以有效地使用LLM
- PostgreSQL 提供对PostgreSQL数据库的只读访问。该服务器使llm能够检查数据库模式并执行只读查询
- Slack 使Claude能够与Slack工作区进行交互
- Google Maps 位置服务,方向和地点细节
- Notion 和Notion的工作区、页面、数据库和注释进行交互
- SonarQube 用于代码质量和安全分析
工作原理
通过这一张图就看能懂MCP的工作原理了:本地的IDE,例如cursor,充当客户端,连接本地的MCP服务器,MCP服务器连接数据库实现功能。本地的MCP服务器用户无需操心,由IDE通过npx或者docker自动启动。
如下图:
graph LR
subgraph "Your Computer"
A["Host with MCP Client: Claude, IDEs, Tools"] -- "MCP Protocol" --> B("MCP Server A")
A -- "MCP Protocol" --> C("MCP Server B")
A -- "MCP Protocol" --> D("MCP Server C")
B --> E["Local Data Source A"]
C --> F["Local Data Source B"]
end
subgraph "Internet"
D -- "Web APIs" --> H["Remote Service C"]
end
下面就来实操一下。
在哪里可以找到MCP
- 各AI IDE自带的MCP store
- https://mcp.so/ 第三方的MCP市场,有上万个MCP服务
总结
MCP是模型上下文协议,用来连接大语言模型和数据,实现通过自然语言进行数据交互。