MCP (Model Context Protocol),也就是模型上下文协议,是一个让模型访问外部资源的规范,由 Claude 的开发商 Anthropic 提出。
开发者可以根据 MCP 规范实现一些服务 (server),然后模型可以通过这些服务获取额外的能力和上下文,比如使用网络搜索、操控外部浏览器等等。
模型可以通过两种方式访问到这些 MCP 服务:
更完整的介绍可以参考官方文档 https://modelcontextprotocol.io/docs/concepts/transports
类似 ChatGPT app,ChatWise 是我开发的大模型聊天应用,可以通过你自己的 API Key 接入 ChatGPT/Claude/DeepSeek/Gemini 等模型的 API 来使用。
同时它是一个支持 MCP 服务的客户端。
MCP 的支持在各个客户端中都不同,Claude 官方客户端当然只有 Claude,而在 ChatWise 里理论上所有模型都支持 MCP,只是模型使用工具的能力强弱不同,模型的上下文最好在 16K 以上才能更好地调用工具。
在我的使用中免费的 Gemini 2.0 Flash,价格很便宜的 DeepSeek V3,还有 Doubao Pro 128K 都能比较好地调用工具。
如果是基于命令行的 MCP 服务,往往是用 python 和 node.js 写的:
uvx
使用npx
pnpx
bunx
使用根据你要是用的 MCP 来决定要安装哪个。
uvx
是 uv
这个程序自带的命令,安装 uv
:
# windowspowershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOScurl -LsSf https://astral.sh/uv/install.sh | sh
npx
是 Node.js 自带的命令,访问 Node.js官方下载。
在 ChatWise 的工具设置里,可以点击左下角的+
号添加 MCP 服务:
以这个 mcp-server-fetch 为例,可以用来获取网页内容的,可以通过 uvx mcp-server-fetch
这个命令运行,当这个命令运行时 uvx
这个程序就会自动下载 mcp-server-fetch
并运行它。
在这里可以勾选「自动执行工具」,因为获取网页这个操作一般是安全的,不需要用户确认。
然后你就可以添加 MCP 服务到你的助手里:
输入框下面这些按钮都是作用于整个助手,比如在这里启用了相应的 MCP 服务之后,新建一个对话也会使用这些 MCP 服务(过去的对话不受影响)。
示例,用 fetch 来总结一篇文章:
通过组合搜索+获取网页内容的 MCP 服务你就可以配合系统提示词实现一个类似深度搜索的功能,也就是在搜索之后让模型依次分析每个网页,直到获取足够的信息。比如这些方案:
除了官方的 MCP 服务可以使用外,mcp.so 上还收录了大量优质 MCP 服务可供选择。