使用说明

项目简介

本项目是一个基础的MCP服务器示例,演示了如何构建一个能够向LLM提供工具的后端服务。它实现了一个简单的石头剪刀布游戏工具,允许LLM客户端通过MCP协议调用该工具进行游戏。

主要功能点

  • 提供工具 (Tools): 注册并提供了一个名为 'do_game' 的石头剪刀布游戏工具。
  • 工具调用 (Tool Calling): 接收并处理来自客户端的工具调用请求,执行石头剪刀布游戏逻辑。
  • 标准MCP协议: 使用 '@modelcontextprotocol/sdk' 库构建,遵循 MCP 协议规范,通过 JSON-RPC 协议与客户端通信。
  • Stdio传输: 使用标准输入输出 (Stdio) 作为传输协议,方便本地部署和测试。

安装步骤

  1. 安装 Node.js: 确保您的系统已安装 Node.js 运行环境。
  2. 获取项目代码: 从 GitHub 仓库 https://github.com/yusukebe/my-first-mcp-server 下载或克隆代码。
  3. 安装依赖: 虽然仓库内容没有 'package.json' 文件,但根据代码结构,您可能需要在项目根目录下执行 'npm install @modelcontextprotocol/sdk' 安装 MCP SDK 依赖 (如果需要)。

服务器配置

对于 MCP 客户端(例如 Claude),您需要配置 MCP 服务器的连接信息。配置信息通常在客户端的配置文件中设置(如 'claude_desktop_config.json')。根据 'README.md' 提供的示例,配置信息如下:

{
  "mcpServers": {
    "game": {  // 服务器名称,客户端用此名称引用
      "command": "node", // 启动服务器的命令,这里使用 node 运行 JavaScript 文件
      "args": ["/path-to/build/index.js"] // 命令参数,指向服务器入口文件 index.js 的路径。请将 "/path-to/build/index.js" 替换为实际的 index.js 文件路径。例如,如果 index.js 文件在项目根目录的 src 目录下,并且您直接运行 src/index.ts 文件(需要先编译成 index.js),则可能需要修改为 ["/path/to/your/project/src/index.js"] 或 ["./src/index.js"] (取决于您的运行环境和客户端如何解析路径)
    }
  }
}

注意: '/path-to/build/index.js' 需要替换为 'index.js' 文件在您本地文件系统中的绝对路径。如果您直接运行 'src/index.ts' 文件(通过 'ts-node' 或其他方式),则 'args' 可能需要指向 'src/index.ts' 文件本身,并确保执行命令能正确运行 TypeScript 文件。但更常见的做法是先将 TypeScript 编译成 JavaScript ('index.js') 再运行。

基本使用方法

  1. 启动 MCP 服务器: 在项目根目录下,打开终端并执行命令 'node /path-to/build/index.js' (将 '/path-to/build/index.js' 替换为实际路径) 启动服务器。服务器将通过 Stdio 监听客户端请求。
  2. 配置 MCP 客户端: 修改 MCP 客户端的配置文件(如 'claude_desktop_config.json'),添加上面提供的服务器配置信息,确保 'command' 和 'args' 配置正确指向您启动的服务器。
  3. 在 MCP 客户端中使用: 在支持 MCP 协议的 LLM 客户端中,客户端应该能够检测到名为 "game" 的 MCP 服务器及其提供的 "do_game" 工具。您可以在客户端中指示 LLM 调用 "do_game" 工具,并提供 'choice' 参数("rock", "paper", 或 "scissors")进行石头剪刀布游戏。服务器会将游戏结果返回给客户端。

例如,在 Claude 中,您可以提示词中指示 Claude 使用 "game" 服务器的 "do_game" 工具,并指定您的选择。Claude 可能会调用该工具并显示游戏结果。

信息

分类

AI与计算