1. 新建项目
项目名称:my-server3
2. 安装 typescript sdk
npm install @modelcontextprotocol/sdk
3. 开发加法运算 mcpserver 程序
大模型对数学运算存在精度问题,这里通过示例自定义一个 mcp server 来解决这个问题。
示例代码放到将 demo.js 文件中。
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";import { z } from "zod";// Create an MCP serverconst server = new McpServer({ name: "Demo", version: "1.0.0"});// Add an addition toolserver.tool("add", { a: z.number(), b: z.number() }, async ({ a, b }) => ({ content: [{ type: "text", text: String(a + b) }] }));// Add a dynamic greeting resourceserver.resource( "greeting", new ResourceTemplate("greeting://{name}", { list: undefined }), async (uri, { name }) => ({ contents: [{ uri: uri.href, text: `Hello, ${name}!` }] }));// Start receiving messages on stdin and sending messages on stdoutconst transport = new StdioServerTransport();await server.connect(transport);
4. cline 配置 mcp 服务
配置如下:
{ "mcpServers": { "my-add-server": { "command": "node", "args": [ "D:\project\AI\MCP\mcpserver\my-server3\demo.js" ], "disabled": true, "autoApprove": [] } }}
demo.js 保存后,出现在了左边列表上, 启用该 MCP server,如果是红灯,即点【Restart Server】重启下,变绿后, 然后点【Done】
5. 测试 mcp 服务
如果是比较小的数值运算,大模型能正常处理,没误差的话,可能就不会调用工具。这种情况下,可以在提示词指定工具。
提问如下:
2342342423423432 + 2342342342343等于多少
示例如下: