MCP 服务器
MCP(Model Context Protocol,模型上下文协议)是一种开放标准,允许 AI Agent 与外部工具服务器进行通信。通过 MCP,你可以将文件系统访问、网络搜索、数据库查询、代码仓库浏览等各种能力以标准化的方式接入 Elftia,让 Agent 在对话中直接调用这些外部工具。
为什么需要 MCP
Agent 的内置能力是有限的。通过 MCP,你可以:
- 扩展工具集 — 将任意外部服务的能力注册为 Agent 可调用的工具
- 标准化接口 — 不同来源的工具使用统一的协议通信,无需为每个工具编写专属适配
- 按需连接 — 只启用当前任务需要的服务器,避免工具列表过于臃肿
- 跨项目复用 — 同一套 MCP 服务器配置可以在多个 Agent 之间共享
三种传输协议
Elftia 支持三种 MCP 传输方式,你可以根据使用场景选择:
| 传输类型 | 连接方式 | 适用场景 | 示例 |
|---|---|---|---|
| Stdio | 本地启动子进程,通过标准输入/输出通信 | 本地工具、CLI 封装、npm/pip 包 | npx @modelcontextprotocol/server-filesystem |
| SSE | 通过 HTTP Server-Sent Events 长连接 | 远程服务、需要实时推送的场景 | https://api.example.com/mcp/sse |
| HTTP | 基于 Streamable HTTP 的请求/响应 | 远程 REST 风格的 MCP 服务 | https://api.example.com/mcp |
:::tip 如何选择
- 大多数场景选 Stdio — npm 或 pip 安装的 MCP 服务器包通常使用 Stdio
- 远程托管服务选 SSE 或 HTTP — 如第三方提供的云端 MCP 服务
- SSE 与 HTTP 的区别 — SSE 基于旧版 MCP 规范,HTTP 基于 MCP 2025-03-26 新规范(Streamable HTTP),新服务优先选 HTTP :::
工具发现与使用流程
当你配置好一个 MCP 服务器后,Elftia 会自动完成以下流程:
MCP 服务器启动/连接
↓
Elftia 自动发现服务器提供的工具列表
↓
工具注册到 Agent 的可用工具集
↓
Agent 在对话中根据需要调用工具
↓
工具返回结果,Agent 整合到回复中
工具命名格式:每个 MCP 工具会被注册为 mcp__服务器名__工具名 的格式。例如,名为 filesystem 的服务器提供的 read_file 工具,在 Agent 中的标识为 mcp__filesystem__read_file。
MCP 与 Agent 的关系
MCP 服务器可以与 Agent 灵活搭配使用:
- 自动模式(默认)— 所有已启用的 MCP 服务器的工具自动对所有 Agent 可用
- 手动模式 — 在每次对话前选择本次使用哪些 MCP 服务器
- Agent 绑定 — 将特定 MCP 服务器关联到特定 Agent,实现专属工具配置
主要功能一览
| 功能 | 说明 |
|---|---|
| 多传输协议支持 | Stdio、SSE、HTTP 三种连接方式 |
| 工具自动发现 | 连接后自动获取服务器提供的工具列表,缓存 5 分钟 |
| JSON 批量导入 | 通过 JSON 配置一次添加多个服务器 |
| 依赖自动检测 | 自动检查 node/npm/uv/uvx 等命令行工具是否已安装 |
| 连接测试 | 一键测试服务器连接状态和可用工具 |
| 工具禁用 | 可选择性禁用服务器中的特定工具 |
| 信任管理 | 区分受信任和未受信任的服务器 |
| 官方预设 | 内置常用 MCP 服务器的一键安装配置 |
下一步
- 添加 MCP 服务器 — 逐步指导添加各类型的 MCP 服务器
- JSON 批量导入 — 通过 JSON 配置文件批量添加服务器
- 使用 MCP 工具 — 了解工具在对话中的使用方式