elephant.ai MCP 服务器
使用说明
-
项目简介 elephant.ai 提供一个基于 MCP(Model Context Protocol)的服务端实现,用来向 LLM 客户端标准化提供上下文信息、工具执行能力、以及可渲染的提示模板等。通过 JSON-RPC 与客户端交互,支持将外部工具接入到代理工作流中,并实现会话管理和能力声明。
-
主要功能点
- 处理 MCP JSON-RPC 请求与响应:按照 MCP 规范接收 initialize、tools/list、tools/call 等请求,返回相应的 JSON-RPC 响应。
- 会话与上下文管理:能够创建、加载和管理会话,维护会话状态与工具执行上下文。
- 外部工具注册与执行:支持通过 MCP 服务器接入外部工具,注册、调用并传递参数与结果。
- Prompt 与模板支持:定义与渲染 Prompts,以便 LLM 客户端能够获取预置的对话模板与上下文信息。
- 多传输协议支持:提供 STDIO 与 HTTP SSE 等传输途径,确保 MCP 客户端在不同环境下都能通信。
- 事件通知机制:服务器端通过传输通道向客户端发送更新/通知,保持交互的实时性。
-
安装与运行
- 依赖与语言环境:Go 语言环境
- 构建运行方式(示例,按项目实际入口执行):编译并启动 ACP/MCP 相关服务相关的命令后端,例如通过 ACP 服务器入口启动 STDIO 或 HTTP/SSE 服务。
- 运行注意:MCP 客户端需要知道服务器的启动命令和连接地址,才能与 MCP 服务器建立连接。
-
服务器配置(MCP 客户端需要的连接信息) 服务器配置信息用于 MCP 客户端与服务器之间建立连接,包含服务器名称、启动命令与参数等。以下为示例配置,表示一个本地文件中配置的 MCP 服务器集合(键名为服务器名称): { "mcpServers": { "filesystem": { "command": "mcp-server-filesystem", "args": ["/workspace"] }, "github": { "command": "mcp-server-github", "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" } } } } 注释说明:
- filesystem: 基于标准 I/O 的 MCP 服务器,用于提供本地文件系统相关的资源/操作。
- command: 服务器启动的可执行文件名或脚本。
- args: 启动参数数组,按需传递给服务器进程。
- github: 通过环境变量传递凭证等配置信息的 MCP 服务器示例。
- env: 运行时所需的环境变量,值可从环境变量注入。
-
基本使用方法
- 启动 MCP/ACP 服务器
- 在命令行启动 ACP/服务器端接入点,选择 STDIO 或 HTTP SSE 传输方式(取决于部署场景)。
- 例如使用 HTTP SSE 形式对外暴露服务端口与地址,供 MCP 客户端连接。
- 配置 MCP 客户端
- 将上面的配置示例(包含服务器名称、启动命令和参数)写入 MCP 客户端需要的配置文件(如 .mcp.json 等)。MCP 客户端通过该文件知道如何启动并连接到对应的 MCP 服务器。
- 建立连接和交互
- MCP 客户端发送 initialize 请求,服务器返回协议版本、服务器信息与能力声明。
- 通过 tools/list、tools/call、session/new、session/load、session/prompt 等方法,完成工具调用、会话管理和提示渲染等工作。
- 观察与调试
- 服务器端输出日志与传输通道的通知(如 session/update),便于追踪状态与权限流。
- 启动 MCP/ACP 服务器
-
运行后可观测的能力
- 支持多服务器并行接入,按名称区分不同服务器实例。
- 支持对外部工具的注册、重启与工具清单查询。 具备基本的错误处理和能力声明(如 tools/list、initialize 的响应内容)。
-
其他说明
- MCP 相关实现已经在仓库中以 acpServer/acpHTTP 等形式提供,包含初始化、会话创建/加载、提示处理、工具状态更新等完整流程。
- 客户端在实际使用中需要根据上述示例配置进行连接与交互,服务器侧实现已经覆盖核心 MCP 行为。