项目简介 Easy MCP Server 是一个创新的应用后端框架,旨在简化大型语言模型 (LLM) 与外部系统和数据的交互。它通过实现 Model Context Protocol (MCP) 标准,自动将您的传统 RESTful API 转换成 LLM 可以理解和调用的“工具”,并提供了灵活的 Prompt 模板管理和上下文资源访问能力。开发者只需编写普通的服务端逻辑,Easy MCP Server 即可自动生成 AI 模型所需的各种接口和文档,极大地加速了 LLM 应用的开发和集成。

主要功能点

  • API自动转换:您的传统 API (GET/POST/PUT/DELETE等)会自动转换为 LLM 可以调用的“工具”,无需额外配置。
  • Prompt模板:定义可定制的 Prompt 模板,支持参数化,让 LLM 交互更加灵活。
  • 资源管理:托管和管理文档、配置、数据等上下文信息,供 LLM 访问。
  • 多种通信协议:支持 WebSocket、Server-Sent Events (SSE) 和 Streamable HTTP 等多种协议与 MCP 客户端通信。
  • 实时热更新:开发过程中修改 API 文件,服务器自动实时重载,无需重启。
  • 自动生成文档:自动生成符合 OpenAPI 规范的 API 文档和交互式 Swagger UI。
  • LLM上下文支持:提供专门的 '/LLM.txt' 和 '/Agent.md' 文件,为 LLM 提供全面的框架信息和使用模式。

安装步骤

  1. 安装 Node.js: 确保您的系统安装了 Node.js (推荐版本 >= 16.0.0)。您可以从 Node.js 官方网站下载安装包。
  2. 安装 Easy MCP Server CLI: 打开命令行工具,运行以下命令全局安装 Easy MCP Server 的命令行工具:
    npm install -g easy-mcp-server
  3. 创建新项目: 使用 CLI 工具初始化一个新的项目:
    easy-mcp-server init my-mcp-project
    cd my-mcp-project
    npm install
  4. 启动服务器: 进入项目目录后,运行以下命令启动服务器:
    easy-mcp-server
    服务器启动后,您将在命令行中看到 REST API 和 MCP 服务器的访问地址。

服务器配置 MCP 客户端需要配置 MCP 服务器的连接信息。以下是一个典型的 JSON 配置示例,您可以在 MCP 客户端中参照配置:

{
  "name": "My Easy MCP Server",
  "command": "easy-mcp-server",
  "args": [],
  "host": "localhost",
  "mcp_port": 3001,
  "api_port": 3000,
  "description": "本地运行的 Easy MCP 服务器,提供MCP Tools, Prompts, Resources。",
  "info": {
    "protocolVersion": "2024-11-05",
    "capabilities": {
      "tools": {},
      "prompts": {},
      "resources": {}
    }
  }
}
  • 'name': MCP 服务器的名称,用于标识。
  • 'command': 启动 MCP 服务器的命令行命令。此项目会默认启动 'easy-mcp-server'。
  • 'args': 启动命令的参数列表。此仓库默认启动不需要额外参数。
  • 'host': MCP 服务器监听的 IP 地址,通常为 'localhost' 或 '0.0.0.0'。
  • 'mcp_port': MCP 服务器用于 AI 模型通信的端口,默认为 '3001'。
  • 'api_port': RESTful API 和文档访问的端口,默认为 '3000'。
  • 'description': 对 MCP 服务器功能的简要说明。
  • 'info': MCP 协议相关信息,包括协议版本和支持的能力。

基本使用方法

1. 访问 RESTful API 和文档

  • REST API: 'http://localhost:3000'
  • API 文档 (Swagger UI): 'http://localhost:3000/docs'
  • OpenAPI 规范 (JSON): 'http://localhost:3000/openapi.json'
  • LLM 上下文信息: 'http://localhost:3000/LLM.txt'
  • Agent 上下文信息: 'http://localhost:3000/Agent.md'

2. 将 API 暴露给 AI 模型 (MCP)

  • MCP 服务器通常在 'http://localhost:3001' (或您配置的 'MCP_PORT') 上运行。
  • AI 模型可以通过 JSON-RPC 协议与此 MCP 服务器通信,使用以下命令:
    • 列出所有可用工具: 向 MCP 服务器发送 '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }' 请求。
    • 调用特定工具: 向 MCP 服务器发送 '{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "post_users", "arguments": { "body": { "name": "John", "email": "[email protected]" } } } }' 请求。
    • 获取 Prompt 模板: 向 MCP 服务器发送 '{ "jsonrpc": "2.0", "id": 3, "method": "prompts/get", "params": { "name": "code_review", "arguments": { "language": "javascript", "code": "console.log('hello');" } } }' 请求。

3. 添加您的自定义 API 在您项目根目录的 'api/' 文件夹中创建 '.js' 文件来定义新的 API。每个文件应导出一个继承自 'BaseAPI' 的类,并实现 'process(req, res)' 方法。文件名决定 HTTP 方法,文件路径决定 API 路径。

例如,创建 'api/users/profile/get.js':

const BaseAPI = require('easy-mcp-server/base-api');

class UserProfileGet extends BaseAPI {
  // 添加JSDoc注释来丰富OpenAPI和MCP文档
  /**
   * @description 获取当前用户的个人资料
   * @summary 用户资料查询
   * @tags users, profile
   * @responseSchema {
   *   "type": "object",
   *   "properties": {
   *     "id": { "type": "string" },
   *     "name": { "type": "string" },
   *     "email": { "type": "string", "format": "email" }
   *   }
   * }
   */
  process(req, res) {
    // 实际业务逻辑,例如从数据库获取用户资料
    res.json({ id: 'user-123', name: '张三', email: '[email protected]' });
  }
}

module.exports = UserProfileGet;

保存文件后,由于热更新机制,新的 API 将立即可用,并通过 MCP 自动暴露给 AI 模型。

信息

分类

AI与计算