项目简介 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 提供全面的框架信息和使用模式。
安装步骤
- 安装 Node.js: 确保您的系统安装了 Node.js (推荐版本 >= 16.0.0)。您可以从 Node.js 官方网站下载安装包。
- 安装 Easy MCP Server CLI: 打开命令行工具,运行以下命令全局安装 Easy MCP Server 的命令行工具:
npm install -g easy-mcp-server - 创建新项目: 使用 CLI 工具初始化一个新的项目:
easy-mcp-server init my-mcp-project cd my-mcp-project npm install - 启动服务器: 进入项目目录后,运行以下命令启动服务器:
服务器启动后,您将在命令行中看到 REST API 和 MCP 服务器的访问地址。easy-mcp-server
服务器配置 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与计算