使用说明

项目简介

本项目是一个 MCP(Model Context Protocol)意图驱动的演示服务器,展示了如何使用声明式配置方法创建和管理灵活的服务器环境。它基于 'agentico/mcp-intent-based' 库构建,旨在帮助开发者理解和实践 MCP 协议在服务器端的应用。

主要功能点

  • 声明式配置:通过 'server.yaml' 文件定义服务器的元数据、能力和工具,实现意图驱动的配置方式。
  • 工具管理:支持注册和管理工具(Tools),例如示例中提供的 'echo'、'reverse' 和 'uppercase' 工具,允许 LLM 客户端调用这些工具扩展功能。
  • 标准 I/O 传输:使用标准输入/输出 (stdio) 作为默认的传输协议,方便服务器与客户端进行通信。
  • 日志记录能力:服务器具备基础的日志记录能力,启动时会发送 "Server started!" 日志消息。

安装步骤

  1. 克隆仓库:将 GitHub 仓库 'https://github.com/agentico-dev/mcp' 克隆到本地。

    git clone https://github.com/agentico-dev/mcp
    cd mcp/mcp-intent-based-demo
  2. 安装依赖:使用 npm 或 yarn 安装项目依赖。

    npm install
    # 或
    yarn install
  3. 构建项目:构建 TypeScript 代码到 JavaScript。

    npm run build
    # 或
    yarn build
  4. 设置 TOOLS_PATH 环境变量:确保 'TOOLS_PATH' 环境变量指向构建后的 'tools' 目录,以便服务器能够找到工具。

    export TOOLS_PATH=$PWD/build/tools

    或者在运行命令时直接设置:

    TOOLS_PATH=$PWD/build/tools

服务器配置

MCP 客户端需要配置以下信息以连接到此 MCP 服务器:

{
  "serverName": "demo-mcp",
  "command": "./build/index.js",
  "args": [],
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': 服务器名称,对应 'server.yaml' 中 'metadata.name' 字段,这里是 "demo-mcp"。
  • 'command': 服务器启动命令,指向构建后的 'index.js' 文件。由于是相对路径,请确保 MCP 客户端的当前工作目录在 'mcp-intent-based-demo' 目录下,或者使用绝对路径。
  • 'args': 启动参数,本示例服务器无需额外参数,所以为空数组 '[]'。
  • 'transport': 传输协议,本示例服务器使用标准输入/输出,设置为 "stdio"。

注意: 请确保 MCP 客户端能够执行 'build/index.js' 文件,必要时可能需要添加执行权限 'chmod +x build/index.js'。

基本使用方法

  1. 启动服务器:在设置好 'TOOLS_PATH' 环境变量后,运行以下命令启动服务器。

    npm run inspector
    # 或
    yarn inspector

    或者,如果已经设置了 'TOOLS_PATH' 环境变量,可以直接运行构建后的 'index.js' 文件:

    node build/index.js

    服务器启动后,会在控制台输出日志信息 "Server started!"。

  2. 客户端交互:使用 MCP 客户端,根据上述 服务器配置 连接到该服务器。客户端可以发送 MCP 请求,例如:

    • 获取服务器能力声明 (Server Capabilities)
    • 调用已注册的工具,如 'echo', 'reverse', 'uppercase'
    • (本项目未明确展示资源和 Prompt 模板功能,但 MCP 服务器通常应支持)

    具体的客户端请求格式和交互方式需要参考 MCP 协议文档和客户端工具的使用说明。

示例工具调用:

假设 MCP 客户端发送请求调用 'echo' 工具,并传入参数 "hello"。服务器将会执行 'echo' 工具,并将 "hello" 作为结果返回给客户端。类似地,可以调用 'reverse' 和 'uppercase' 工具进行文本处理。

信息

分类

开发者工具