TypeScript MCP 服务器
生成一个为大型语言模型(LLM)提供上下文的 TypeScript 模型上下文协议(MCP) 服务器。
什么是 MCP?
Section titled “什么是 MCP?”模型上下文协议(MCP) 是一个开放标准,允许 AI 助手与外部工具和资源交互。它为 LLM 提供了一致的方式来:
- 执行执行操作或检索信息的工具(函数)
- 访问提供上下文或数据的资源
生成 MCP 服务器
Section titled “生成 MCP 服务器”您可以通过两种方式生成 TypeScript MCP 服务器:
- 安装 Nx Console VSCode Plugin 如果您尚未安装
- 在VSCode中打开Nx控制台
- 点击
Generate (UI)
在"Common Nx Commands"部分 - 搜索
@aws/nx-plugin - ts#mcp-server
- 填写必需参数
- 点击
Generate
pnpm nx g @aws/nx-plugin:ts#mcp-server
yarn nx g @aws/nx-plugin:ts#mcp-server
npx nx g @aws/nx-plugin:ts#mcp-server
bunx nx g @aws/nx-plugin:ts#mcp-server
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
project 必需 | string | - | The project to add an MCP server to |
name | string | - | The name of your MCP server (default: mcp-server) |
生成器将在现有 TypeScript 项目中添加以下文件:
文件夹your-project/
文件夹src/
文件夹mcp-server/ (或自定义名称)
- index.ts MCP 服务器入口文件
- server.ts 主服务器定义
文件夹tools/
- add.ts 示例工具
文件夹resources/
- sample-guidance.ts 示例资源
- package.json 更新了 bin 入口和 MCP 依赖
- project.json 更新了 MCP 服务器运行目标
使用 MCP 服务器
Section titled “使用 MCP 服务器”工具是 AI 助手可以调用的功能函数。在 server.ts
文件中添加新工具:
server.tool("工具名称", "工具描述", { 参数1: z.string(), 参数2: z.number() }, // 使用 Zod 的输入模式 async ({ 参数1, 参数2 }) => { // 工具实现 return { content: [{ type: "text", text: "结果" }] }; });
资源为 AI 助手提供上下文。可以添加静态文件资源或动态资源:
const 示例上下文 = '要返回的上下文内容';
server.resource('资源名称', 'example://resource', async (uri) => ({ contents: [{ uri: uri.href, text: 示例上下文 }],}));
// 动态资源server.resource('动态资源', 'dynamic://resource', async (uri) => { const 数据 = await 获取数据(); return { contents: [{ uri: uri.href, text: 数据 }], };});
配置 AI 助手
Section titled “配置 AI 助手”大多数支持 MCP 的 AI 助手都采用相似的配置方式。您需要创建或更新包含 MCP 服务器详细信息的配置文件:
{ "mcpServers": { "your-mcp-server": { "command": "npx", "args": ["tsx", "/path/to/your-mcp-server/index.ts"] } }}
在开发 MCP 服务器时,可配置 --watch
参数使 AI 助手始终获取工具/资源的最新版本:
{ "mcpServers": { "your-mcp-server": { "command": "npx", "args": ["tsx", "--watch", "/path/to/your-mcp-server/index.ts"] } }}
助手专属配置
Section titled “助手专属配置”请参考以下文档配置特定 AI 助手的 MCP 功能:
运行 MCP 服务器
Section titled “运行 MCP 服务器”测试和使用 MCP 服务器最简单的方式是通过 AI 助手配置(如上所述)。您也可以使用 <your-server-name>-serve
目标运行服务器,这在从 STDIO 传输 切换到 可流式 HTTP 传输 时非常有用。
pnpm nx run your-project:your-server-name-serve
yarn nx run your-project:your-server-name-serve
npx nx run your-project:your-server-name-serve
bunx nx run your-project:your-server-name-serve
该命令使用 tsx --watch
在文件更改时自动重启服务器。