本页目录
我将展示搭建 MCP Server 最简单的方法。
我们会创建一个 MCP Server,把它连接到 Claude Code,再通过它运行任意脚本。
整个过程只使用一个 TypeScript 文件,而且不需要构建步骤。
开始吧。
Server
首先创建一个 main.ts 文件。
接下来初始化一个 McpServer:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";const server = new McpServer({name: "Weather Service",version: "1.0.0",});
这个 MCP Server 来自 @modelcontextprotocol/sdk 包。
滚动式代码讲解
接下来可以向 Server 添加工具。首先定义工具名称: getWeather.
然后定义工具运行时需要接收的参数。这里仅需要 city,它是一个字符串,并使用 Zod 进行定义。
最后添加一个仅在工具被调用时运行的回调函数。它返回内容对象数组;在本例中,返回的是文本,并说明该地点天气晴朗。
如果要真正实现这个功能,就应该在该函数中调用天气 API。
server.tool("getWeather");
至此 Server 已经完成,但还需要一种方式让 Claude Code 与它通信。
Claude Code 会运行这个文件,并通过 stdin 与其通信。
为了实现这一点,可以使用 StdioServerTransport from @modelcontextprotocol/sdk.
先定义 Transport,再把 Server 连接到该 Transport。
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";const transport = new StdioServerTransport();await server.connect(transport);
想继续深入: 加入“面向真正工程师的 AI 编码”候补名单
连接 Claude Code
现在可以在 Claude Code 中运行 claude mcp add。这会启动交互式对话,让你选择想要连接的 Server。
目前 Claude Code 只支持 stdio Transport,而这正是我们使用的方式。
上方视频演示了交互式操作步骤,不过也可以通过一条命令完成:
claude mcp add "weather-example" npx tsx "/path-to-the-file.ts"
这会告诉 Claude:要运行该文件,应调用 npx tsx /path-to-the-file.ts.
npx ,它允许我们直接运行 npm. tsx 是无需构建步骤即可运行 TypeScript 文件的绝佳方式。随后传入文件路径即可。
这样就可以运行 claude 并与 MCP Server 通信。可以查看上方视频中的演示。
它为什么很酷?
这项能力非常棒,因为它让我们无需配置构建步骤或服务器,就能把任意 TypeScript 函数连接到 Claude Code。
这是自定义 Claude Code 实例的强大方式,也适用于 Cursor、Windsurf 等其他 MCP Host。
随着越来越多桌面应用开始集成 MCP,这将成为使用自定义能力扩展这些应用的强大方式。