项目简介
这是一个使用TypeScript开发的MCP (Model Context Protocol) 服务器模板。它提供了一个快速搭建MCP服务器的基础框架,帮助开发者轻松地为LLM(大型语言模型)应用提供结构化的上下文数据和功能。通过资源 (Resources)、工具 (Tools) 和 Prompt 模板 (Prompts) 三大核心概念,该模板使得LLM应用能够安全、可扩展地访问外部数据、调用外部功能,并支持定制化的交互模式。
主要功能点
- 资源 (Resources): 以标准化的URI提供静态数据访问,例如示例中的 'sample-text' 资源,可以向LLM应用提供预定义的文本内容。
- 工具 (Tools): 允许LLM应用调用外部功能,执行特定操作。模板中包含了 'add-numbers' (简单的加法计算)、'exa-search' (使用Exa API进行网页搜索) 和 'meeting-agenda-generator' (生成会议议程Prompt) 等示例工具,展示了如何扩展LLM的能力。
- Prompt 模板 (Prompts): 定义可复用的Prompt结构,允许开发者预设与LLM交互的模式。'story-idea-generator' Prompt 模板展示了如何根据用户参数动态生成用于故事创意生成的Prompt。
- 易于扩展: 模板结构清晰,易于添加新的资源、工具和Prompt模板,满足不同的应用场景需求。
- 使用 MCP SDK: 集成了官方的MCP TypeScript SDK,确保与MCP协议的兼容性和最佳实践。
安装步骤
-
克隆仓库
git clone https://github.com/d-gangz/mcp-template my-mcp-server cd my-mcp-server -
安装依赖
npm install -
构建项目
npm run build
服务器配置
要将此MCP服务器添加到MCP客户端(例如 Claude Desktop),您需要配置服务器的启动命令。以下是一个示例 JSON 配置,您需要根据实际情况进行调整。
{ "mcpServers": { "my-server": { "command": "node", "args": ["path/to/build/index.js"], "env": { "EXA_API_KEY": "YOUR_EXA_API_KEY" // 可选: 如果您想使用 exa-search 工具,请在此处配置 Exa API Key }, "disabled": false, "autoApprove": [] } } }
配置参数说明:
- 'server name': 服务器名称,例如 "my-server",可以自定义。
- 'command': 启动服务器的命令,这里使用 'node'。
- 'args': 启动命令的参数,指向编译后的 'index.js' 文件路径 'path/to/build/index.js',这里使用相对路径 'path/to/build/index.js',实际使用时请根据 'index.js' 文件相对于配置文件的路径进行调整。
- 'env': 环境变量配置,例如 'EXA_API_KEY' 用于 'exa-search' 工具的API密钥 (可选,如果不需要 'exa-search' 工具可以不配置)。
请将以上 JSON 配置添加到您的 MCP 客户端的服务器配置中。
基本使用方法
-
启动服务器: 在项目根目录下,运行以下命令启动服务器:
node build/index.js -
连接客户端: 在MCP客户端中配置并连接到该服务器。客户端将能够发现并使用服务器提供的资源、工具和Prompt模板。
-
使用资源: 客户端可以使用 'sample://text' URI 访问 'sample-text' 资源,获取示例文本内容。
-
调用工具: 客户端可以调用 'add-numbers', 'exa-search', 'meeting-agenda-generator' 等工具,并传递相应的参数以执行特定功能。
-
使用 Prompt 模板: 客户端可以使用 'story-idea-generator' Prompt 模板,并根据需要提供 'topics', 'genre', 'mood' 等参数,生成故事创意。
请参考 MCP 客户端和 MCP 协议的文档,了解如何更详细地与 MCP 服务器进行交互。
信息
分类
AI与计算