使用说明
项目简介
本项目 'mcp-host' 仓库包含一个 MCP 客户端 ('MCPClientCLI') 和一个简单的 MCP 服务器示例 ('mcp-server-example.ts')。此服务器示例旨在演示如何使用 '@modelcontextprotocol/sdk' 构建 MCP 服务器,对外提供基础的算术运算工具(加、乘、除)和一个简单的问候语资源。你可以使用仓库中提供的客户端连接到此服务器,体验 MCP 协议的工作流程。
注意: 仓库的主要目的是演示 MCP 客户端的实现,但同时也提供了一个可运行的 MCP 服务器示例用于测试和学习。
主要功能点
- 工具 (Tools):
- 'add': 两个数相加。
- 'multiply': 两个数相乘。
- 'divide': 两个数相除。
- 资源 (Resources):
- 'greeting': 根据提供的名称返回个性化问候语。
安装步骤
- 克隆仓库
git clone https://github.com/LeadFarmer-ai/mcp-host.git cd mcp-host - 安装依赖
npm install - 配置环境变量
- 复制 '.env.example' 文件并重命名为 '.env'。
- 在 '.env' 文件中填入你的 Anthropic API Key,用于客户端与 Claude 模型交互。
ANTHROPIC_API_KEY=your_anthropic_api_key_here
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令才能连接和使用服务器提供的功能。在本仓库中,客户端默认配置已指向示例服务器 'mcp-server-example.js'。
以下是客户端连接到示例 MCP 服务器所需的配置信息(JSON 格式,已在 'cli.ts' 中配置):
{ "command": "node", // 启动服务器的命令,这里使用 Node.js 运行时 "args": [ "dist/mcp-server-example.js" // 服务器入口文件路径,如果直接运行 'cli.ts' 需要先构建 'mcp-server-example.ts' // 如果不进行构建,直接运行 'cli.ts' 连接 'mcp-server-example.ts' 源文件,则应配置为 "args": ["mcp-server-example.js"],并确保在项目根目录下运行 ], "cwd": "./" // 可选的工作目录,默认为客户端启动目录,示例服务器在此目录下即可 }
说明:
- 'command': 指定用于启动 MCP 服务器的命令。对于 Node.js 服务器,通常使用 'node'。
- 'args': 一个字符串数组,包含传递给启动命令的参数。这里指向 'mcp-server-example.js' 或其编译后的 'dist/mcp-server-example.js' 文件。
- 'cwd': 可选参数,指定服务器进程的工作目录。如果服务器依赖于特定的工作目录或配置文件,可以在这里设置。
如何修改服务器配置: 如果你需要连接到不同的 MCP 服务器,可以修改 'cli.ts' 文件中 'MCPClientCLI' 构造函数的配置参数。
基本使用方法
-
启动客户端 在项目根目录下运行以下命令启动客户端:
npm start客户端启动后,将连接到默认配置的 'mcp-server-example.js' 服务器。
-
与 Claude 模型交互 在终端提示符下输入你的问题,客户端会将问题发送给 Claude 模型。Claude 模型可以调用 MCP 服务器提供的工具来辅助回答问题。
示例对话:
> You: What tools do you have available? [Assistant will list available tools from the connected MCP server, e.g., add, multiply, divide, greeting] > You: What is 123 plus 456? [Assistant will use the 'add' tool to calculate the sum] [Tool Call] add {"a": 123, "b": 456} [Tool Result] {"result": "579"} [Assistant will respond with the answer based on the tool result, e.g., "123 plus 456 is 579."] > You: Greet me as John [Assistant might use the 'greeting' resource] [Tool Call] greeting {"name": "John"} or similar depending on actual tool definition [Tool Result] {"result": "Hello, John!"} [Assistant will respond with the greeting, e.g., "Hello, John!"] > You: exit Closing connections... -
退出客户端 在提示符下输入 'exit' 并回车即可退出客户端。
通过以上步骤,你可以体验使用 MCP 客户端连接和使用 MCP 服务器提供的工具和资源。
信息
分类
AI与计算