使用说明

项目简介

本项目 'mcp-host' 仓库包含一个 MCP 客户端 ('MCPClientCLI') 和一个简单的 MCP 服务器示例 ('mcp-server-example.ts')。此服务器示例旨在演示如何使用 '@modelcontextprotocol/sdk' 构建 MCP 服务器,对外提供基础的算术运算工具(加、乘、除)和一个简单的问候语资源。你可以使用仓库中提供的客户端连接到此服务器,体验 MCP 协议的工作流程。

注意: 仓库的主要目的是演示 MCP 客户端的实现,但同时也提供了一个可运行的 MCP 服务器示例用于测试和学习。

主要功能点

  • 工具 (Tools):
    • 'add': 两个数相加。
    • 'multiply': 两个数相乘。
    • 'divide': 两个数相除。
  • 资源 (Resources):
    • 'greeting': 根据提供的名称返回个性化问候语。

安装步骤

  1. 克隆仓库
    git clone https://github.com/LeadFarmer-ai/mcp-host.git
    cd mcp-host
  2. 安装依赖
    npm install
  3. 配置环境变量
    • 复制 '.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' 构造函数的配置参数。

基本使用方法

  1. 启动客户端 在项目根目录下运行以下命令启动客户端:

    npm start

    客户端启动后,将连接到默认配置的 'mcp-server-example.js' 服务器。

  2. 与 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...
  3. 退出客户端 在提示符下输入 'exit' 并回车即可退出客户端。

通过以上步骤,你可以体验使用 MCP 客户端连接和使用 MCP 服务器提供的工具和资源。

信息

分类

AI与计算