我们之前介绍过大模型的相关知识,本篇我们介绍一下MCP
什么是MCP
MCP(Model Context protocol)一种开放、标准化的通信协议,定义了AI模型与外部数据源、工具之间的连接规范,官方文档 
怎么做
我们知道大模型在算数上存在一定问题,比如下面的例子是当我用chatgpt-4o测试的效果,现在可能不存在问题了哈,此处只是为了一个场景而已。

- 先来个没有使用自定义的mcp的执行效果:
2. 我们写个方法提供给LLM让它可以按照我们的逻辑来处理
TypeScript
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "my-mcp",
version: "0.0.1"
});
// 定义一个 tool
server.registerTool("compare", {
inputSchema: {
a: z.number(),
b: z.number()
}
}, async ({ a, b }) => ({
content: [{
type: "text",
text: String(a > b)
}]
}));
// 启动服务器
const transport = new StdioServerTransport();
await server.connect(transport);
执行结果:
通过CoT我们可以看到llm使用了我自定义的mcp工具my-server,这个server是在配置文件里面配置的,最终运行的是我们的代码逻辑。
怎么用
上面我们通过实例也看到了mcp的运行效果,接下来介绍一下怎么用。此处以claude code cli为例,
- 在项目下新建
.mcp.json文件,将我们的工具注册到这个文件里面
json
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["./dist/index.js"]
}
}
}
- 终端执行
claude启动claude code以后输出/mcp list就能看到我们的工具了。
注意状态是否是connected,如果是则说明启动正常,否则需要排查一下问题

- 确认启动以后就可以直接在终端里面进行提问,然后让它
一步步执行并将过程打印出来,这样就可以复现我们上面的效果了。
当前市面上已经有很多的mcp可供选择了,例如:阿里的魔塔社区modelscope.cn/mcp 