使用说明

项目简介

本项目 'AEP MCP Server' 是一个基于 Model Context Protocol (MCP) 的服务器实现,它利用 OpenAPI (Swagger) 规范来定义和管理资源 (Resources) 和工具 (Tools)。该服务器旨在为大型语言模型 (LLM) 应用提供结构化的上下文信息和功能调用能力。通过标准输入输出 (stdio) 与 MCP 客户端进行通信,实现了简单而有效的集成方式。

主要功能点

  • 资源管理 (Resources): 通过解析 OpenAPI 规范,自动将 API 接口转换为 MCP 资源。服务器可以托管和管理这些资源,并提供数据访问能力。
  • 工具注册 (Tools): 将 OpenAPI 规范中的 API 操作注册为 MCP 工具。允许 LLM 客户端调用这些工具来执行外部功能。
  • 基于 OpenAPI: 使用广泛采用的 OpenAPI 规范作为资源和工具的定义标准,易于理解和扩展。
  • 标准输入输出 (Stdio) 通信: 采用 Stdio 作为 MCP 服务器的传输协议,简化了部署和集成过程。
  • 动态 Schema: 利用 Zod 库根据 OpenAPI Schema 动态生成数据验证和处理逻辑。

安装步骤

  1. 克隆仓库
    git clone https://github.com/aep-dev/aep-mcp-server
    cd aep-mcp-server
  2. 安装依赖
    npm install

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 'AEP MCP Server'。请注意,本服务器默认通过标准输入输出进行通信,并使用预定义的 OpenAPI 规范文件。

{
  "serverName": "Demo",
  "command": "node",
  "args": [
    "src/server.js"
  ],
  "transport": "stdio",
  "capabilities": [
    "resources",
    "tools",
    "prompts"
  ],
  "description": "Demo MCP Server based on OpenAPI"
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,这里设置为 "Demo",与代码中 'McpServer' 初始化时的 'name' 保持一致。
  • 'command': 启动 MCP 服务器的命令,这里使用 'node' 命令来执行 JavaScript 文件。
  • 'args': 传递给启动命令的参数,这里指定了服务器入口文件 'src/server.js'。
  • 'transport': 指定 MCP 服务器使用的传输协议,这里设置为 'stdio',表示使用标准输入输出进行通信。
  • 'capabilities': 声明服务器支持的 MCP 功能,包括 'resources'(资源管理), 'tools'(工具注册), 和 'prompts'(Prompt 模板,虽然代码中未显式实现 Prompt 模板功能,但 capability 声明包含在内)。
  • 'description': 对 MCP 服务器的简要描述,方便客户端用户理解其用途。

基本使用方法

  1. 启动 MCP 服务器 在克隆仓库的根目录下,执行以下命令启动服务器:

    npm start

    或者直接运行:

    node src/server.js

    服务器将通过标准输出开始运行,并等待 MCP 客户端的连接和请求。

  2. 配置并连接 MCP 客户端 在 MCP 客户端应用中,根据上述 服务器配置 部分提供的 JSON 信息配置你的 MCP 客户端,确保客户端能够通过 Stdio 与服务器建立连接。

  3. 通过客户端与服务器交互 客户端连接成功后,即可向 'AEP MCP Server' 发送 MCP 请求,例如:

    • 请求获取资源列表
    • 调用已注册的工具 (Tools)
    • (如果 Prompt 模板功能已实现) 请求获取 Prompt 模板

    服务器会根据请求处理并返回 MCP 响应。具体的交互方式和请求格式需要参考 MCP 协议文档以及客户端的具体实现。

注意:

  • 本示例服务器默认加载预定义的 OpenAPI 规范文件 (Roblox Cloud API)。你可以修改 'src/server.ts' 中的 'openapiUrl' 变量来加载不同的 OpenAPI 规范文件,以管理不同的资源和工具。
  • 服务器工具的实际功能实现较为简单 (默认返回 "Success"),你需要根据实际需求修改 'src/server.ts' 中 'server.tool()' 方法的回调函数,来实现工具的具体业务逻辑。

信息

分类

开发者工具