- Published on
AI探秘-MCP我懂你!
- Authors

- Name
- noodles
- 每个人的花期不同,不必在乎别人比你提前拥有
目录
本文由浅入深介绍MCP的基本概念和使用方式。
MCP
MCP(Model Context Protocol)是由Anthropic发布了一种大模型与外部数据源工具的集成标准。它定义了大模型如何安全、高效地访问和利用外部资源。
为什么需要MCP
- 模型幻觉 大模型回答不了解的问题时可能产生虚假信息
- 信息过时 训练数据可能过时,无法提供最新信息
- 功能局限 大模型只能对话,无法执行实际任务
一句话:MCP 是“插座标准”,负责把外设接进来。
MCP Host(宿主应用)
通常是LLM的宿主应用。主要负责
- 创建和管理MCP Client
- 与大模型LLM交互
- 实现安全策略和权限控制
- 协调整个MCP系统
MCP Client(客户端)
MCP Client是与大模型直接交互的组件
- 与MCP Server交互获取可用工具
- 接收大模型的工具调用请求
- 执行对MCP Server的工具调用
- 将结果返回给大模型
MCP Server(服务器)
MCP Server提供具体工具和服务的组件
- 提供各种工具和服务
- 处理来自Client的工具调用
- 执行具体的业务逻辑
- 返回执行结果

MCP实现
使用已有的MCP Server
- 在cursor中可以直接查找已有的MCP Server列表,然后直接使用.
- MCP.so提供了丰富的MCP Server列表,可以参考使用.
实现一个MCP Server
实现MCP Server需要实现MCP的交互协议.在Model Context Protocol主页上提供了不同语言SDK实现MCP Server的SDK. 以下以javascript SDK为例实现一个MCP Server.
| 概念 | 作用说明 |
|---|---|
| 传输方式 | Streamable HTTP:远程服务交互;stdio:本地进程交互 |
registerTool | 注册工具,定义 MCP Server 提供的可调用工具(带输入输出 schema 和逻辑) |
registerResource | 注册资源,定义 MCP Server 暴露的只读数据或文档 |
registerPrompt | 在 MCP Server 上注册可复用的提示词模板,供客户端/人类选择和填写参数 |
createMessage | 在工具/服务内部发起一次对大模型的调用,使用宿主提供的 sampling 能力 |
MCP使用
在cursor中使用MCP
在上面的代码中实现了一个简单的echo server.在cursor中通过简单配置就可以使用了. 可以打开cursor的设置,配置mcp.json文件添加mcp server的配置.
{
"mcpServers": {
"echo-server": {
"command": "npx",
"transport": "stdio",
"args": ["tsx", "/Users/noodles/learn/learnLLM/test.ts"]
}
}
}
本地使用stdio方式,command + args是执行的命令和参数.里面需要的指令需要本地安装好. 


在自建agent中使用MCP
这部分可以参考AI探秘-LangChain使用不完全指南