使用说明
项目简介
本项目是一个演示如何使用 Model Context Protocol (MCP) 构建服务器的示例,主题为宝可梦。它包含一个 MCP 服务器,提供宝可梦数据查询和攻击能力,以及相应的 MCP 客户端和 HTTP 服务器,展示如何将 MCP 服务器的功能通过 HTTP 接口暴露给 LLM 使用。
主要功能点
- 资源管理: 提供宝可梦基础信息和能力信息等数据资源,允许客户端通过 URI 访问。
- 工具注册: 注册宝可梦攻击工具,客户端可以调用此工具模拟宝可梦的攻击行为。
- MCP 客户端示例: 演示如何编写 MCP 客户端来连接和使用 MCP 服务器提供的资源和工具。
- HTTP 服务器桥接: 通过 HTTP 服务器封装 MCP 服务器的功能,提供 '/tools' 和 '/attack' 等 HTTP 接口,方便 LLM 通过 HTTP 调用 MCP 工具。
- LLM 集成示例: 展示如何使用 OpenAI 的模型和 OpenRouter 平台,结合 MCP 服务器提供的工具,实现 LLM 驱动的宝可梦攻击应用。
安装步骤
- 确保已安装 Bun JavaScript 运行时环境。
- 克隆或下载该 GitHub 仓库到本地。
- 在项目根目录下,运行以下命令安装项目依赖:
bun install
服务器配置
本项目中的 MCP 服务器由客户端程序('mcp_client.ts' 和 'http_server.ts')自动启动,无需手动配置服务器启动命令。MCP 客户端通过以下配置信息与 MCP 服务器建立连接。以下是在 'mcp_client.ts' 和 'http_server.ts' 中配置的服务器启动信息示例:
{ "server name": "Pokemon MCP Server", "command": "bun", "args": ["mcp_server.ts"] }
- 'server name': 指定 MCP 服务器的名称,用于标识服务器实例。
- 'command': 指定用于启动 MCP 服务器的可执行命令,这里使用 'bun' 运行器。
- 'args': 传递给 'bun' 命令的参数列表,指定要执行的 MCP 服务器脚本为 'mcp_server.ts'。
基本使用方法
-
运行 MCP 客户端和服务器演示: 在项目根目录下,运行以下命令启动 'mcp_client.ts'。该客户端会自动启动 'mcp_server.ts',并演示资源列表、工具列表的获取,以及资源读取和工具调用的过程。
bun mcp_client.ts运行结果会在控制台输出,包括资源和工具信息,以及宝可梦能力查询和攻击工具的调用结果。
-
运行 HTTP 服务器 (集成 LLM): 首先,你需要获取 OpenRouter 的 API Key,并将其设置为环境变量 'OPENROUTER_API_KEY'。
export OPENROUTER_API_KEY=YOUR_OPENROUTER_API_KEY然后,在项目根目录下,运行以下命令启动 'http_server.ts'。该服务器会自动启动 'mcp_server.ts',并提供 HTTP 接口供外部访问。
bun http_server.ts启动成功后,可以通过浏览器或 HTTP 客户端访问以下 URL:
- 'http://localhost:3005/tools': 查看 MCP 服务器提供的工具列表 (JSON 格式)。
- 'http://localhost:3005/attack': 调用宝可梦攻击工具,由 LLM 随机选择宝可梦和招式进行攻击,返回攻击结果 (JSON 格式)。这个接口可以集成到 LLM 应用中,让 LLM 通过 HTTP 调用 MCP 服务器的功能。
信息
分类
网页与API