关于 MCP Plugin for ElizaOS
MCP Plugin for ElizaOS 是为 ElizaOS 提供的插件,使 Agent 能够同时连接多个 MCP 服务,并使用其资源、提示词和工具。它面向基于 ElizaOS 构建 Agent 的开发者,支持 stdio 与 sse 两种服务类型。
主要功能
- 01同时连接多个 MCP 服务
- 02支持资源、提示词与工具
- 03支持 stdio 与 sse 服务类型
- 04提供 MCP_SERVERS 上下文提供者
- 05可配置超时与禁用单个服务
适用场景
- 01为 ElizaOS Agent 接入 GitHub 等外部 MCP 服务
- 02在角色配置中统一管理多个 MCP 服务
MCP 相关
该插件作为 MCP 客户端,在角色配置中连接 stdio 或 sse 类型的 MCP 服务,并将其能力暴露给 Agent。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ElizaOS 的 MCP 插件
此插件将模型上下文协议(MCP)集成到 ElizaOS 中,使 Agent 能够连接多个 MCP 服务并使用它们的资源、提示词和工具。
🔍 什么是 MCP?
模型上下文协议(MCP)是一种开放协议,可实现大模型应用与外部数据源和工具之间的无缝集成。它提供了一种将大模型与其所需上下文连接起来的标准化方式。
此插件允许 ElizaOS Agent 同时访问多个 MCP 服务,每个服务都提供不同的功能:
- 资源:供 Agent 参考的上下文和数据
- 提示词:模板化消息和工作流
- 工具:供 Agent 执行的函数
📦 安装
在 ElizaOS 项目中安装此插件:
- npm
npm install @fleek-platform/eliza-plugin-mcp
- pnpm
pnpm install @fleek-platform/eliza-plugin-mcp
- yarn
yarn add @fleek-platform/eliza-plugin-mcp
- bun
bun add @fleek-platform/eliza-plugin-mcp
🚀 用法
- 将插件添加到角色配置中:
{
"name": "Your Character",
"plugins": ["@fleek-platform/eliza-plugin-mcp"],
"settings": {
"mcp": {
"servers": {
"github": {
"type": "stdio",
"name": "Code Server",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
}
}
}
}
}
⚙️ 配置选项
MCP 支持两种类型的服务:“stdio”和“sse”。每种类型都有自己的配置选项。
通用选项
| 选项 | 类型 | 说明 |
|---|---|---|
type | string | MCP 服务的类型:“stdio”或“sse” |
name | string | 服务的显示名称 |
timeout | number | 工具调用的超时时间(秒)(默认值:60) |
disabled | boolean | 是否禁用此服务 |
stdio 服务选项
| 选项 | 类型 | 说明 |
|---|---|---|
command | string | 运行 MCP 服务的命令 |
args | string[] | 服务的命令行参数 |
env | object | 传递给服务的环境变量 |
cwd | string | 可选 服务运行时所在的工作目录 |
sse 服务选项
| 选项 | 类型 | 说明 |
|---|---|---|
url | string | SSE 端点的 URL |
🛠️ 使用 MCP 功能
配置完成后,插件会自动向 Agent 提供 MCP 服务的功能:
上下文提供器
插件包含三个提供器,可将 MCP 功能添加到 Agent 的上下文中:
MCP_SERVERS:列出可用服务及其工具、资源和提示词
🔄 插件流程
下图展示了 MCP 插件在工具选择和执行过程中的流程:
graph TD
%% Starting point - User request
start[User Request] --> action[CALL_TOOL Action]
%% MCP Server Validation
action --> check{MCP Servers Available?}
check -->|No| fail[Return No Tools Available]
%% Tool Selection Flow
check -->|Yes| state[Get MCP Provider Data]
state --> prompt[Create Tool Selection Prompt]
%% First Model Use - Tool Selection
prompt --> model1[Use Language Model for Tool Selection]
model1 --> parse[Parse Selection]
parse --> retry{Valid Selection?}
%% Second Model Use - Retry Selection
retry -->|No| feedback[Generate Feedback]
feedback --> model2[Use Language Model for Retry]
model2 --> parse
%% Tool Selection Result
retry -->|Yes| toolAvailable{Tool Available?}
toolAvailable -->|No| fallback[Fallback Response]
%% Tool Execution Flow
toolAvailable -->|Yes| callTool[Call MCP Tool]
callTool --> processResult[Process Tool Result]
%% Memory Creation
processResult --> createMemory[Create Memory Record]
createMemory --> reasoningPrompt[Create Reasoning Prompt]
%% Third Model Use - Response Generation
reasoningPrompt --> model3[Use Language Model for Response]
model3 --> respondToUser[Send Response to User]
%% Styling
classDef model fill:#f9f,stroke:#333,stroke-width:2px;
classDef decision fill:#bbf,stroke:#333,stroke-width:2px;
classDef output fill:#bfb,stroke:#333,stroke-width:2px;
class model1,model2,model3 model;
class check,retry,toolAvailable decision;
class respondToUser,fallback output;
📋 示例:设置多个 MCP 服务
以下是一个包含两种类型多个 MCP 服务的完整配置示例:
{
"name": "Developer Assistant",
"plugins": ["@elizaos/plugin-mcp", "other-plugins"],
"settings": {
"mcp": {
"servers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
},
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
},
"google-maps": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-google-maps"],
"env": {
"GOOGLE_MAPS_API_KEY": "<YOUR_API_KEY>"
}
}
},
"maxRetries": 2
}
}
}
🔒 安全注意事项
请注意,MCP 服务可以执行任意代码,因此请仅连接到可信的服务。
🔍 故障排除
如果 MCP 插件出现问题:
- 检查 MCP 服务是否已正确配置并运行
- 确保 ElizaOS 环境可以访问这些命令
- 查看日志,排查连接错误
- 确认插件已在角色配置中正确加载
👥 参与贡献
感谢您考虑为我们的项目做出贡献!
如何贡献
- Fork 此代码仓库。
- 创建新分支:
git checkout -b feature-branch-name。 - 进行修改。
- 使用 Conventional Commits 规范提交更改。
- 推送到您的 Fork,并提交拉取请求。
提交规范
我们的提交消息遵循 Conventional Commits:
test:💍 补充缺失的测试feat:🎸 新功能fix:🐛 修复 Bugchore:🤖 构建流程或辅助工具变更docs:✏️ 仅修改文档refactor:💡 既不修复 Bug 也不添加功能的代码变更style:💄 标记、空白字符、格式、缺少分号等变更
📄 许可证
此插件采用与 ElizaOS 相同的许可证发布。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。