返回市场
伊丽扎插件MCP

伊丽扎插件MCP

作者:fleek-platform45 星标更新:2025-03-29

项目介绍

ElizaOS 的 MCP 插件

常规提交

此插件将模型上下文协议(MCP)与ElizaOS集成,允许代理连接到多个MCP服务器并使用其资源、提示和工具。

🔍 什么是 MCP?

MCP(模型上下文协议) 是一个开放协议,它使大型语言模型应用程序能够无缝地与外部数据源和工具进行集成。它提供了一种标准化的方法来连接大型语言模型与其所需的上下文。

此插件允许您的ElizaOS代理同时访问多个MCP服务器,每个服务器提供不同的功能:

  • 资源:供代理引用的上下文和数据
  • 提示:模板消息和工作流
  • 工具:供代理执行的功能

📦 安装

在您的ElizaOS项目中安装插件:

  • npm
npm install @fleek-platform/eliza-plugin-mcp
  • pnpm
pnpm install @fleek-platform/eliza-plugin-mcp
  • yarn
yarn add @ffleek-platform/eliza-plugin-mcp
  • bun
bun add @fleek-platform/eliza-plugin-mcp

🚀 使用方法

  1. 将插件添加到您的角色配置中:
{
  "name": "您的角色",
  "plugins": ["@fleek-platform/eliza-plugin-mcp"],
  "settings": {
    "mcp": {
      "servers": {
        "github": {
          "type": "stdio",
          "name": "代码服务器",
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"]
        }
      }
    }
  }
}

⚙️ 配置选项

MCP支持两种类型的服务器:"stdio" 和 "sse"。每种类型都有自己的配置选项。

公共选项

选项类型描述
type字符串MCP服务器的类型:"stdio" 或 "sse"
name字符串服务器的显示名称
timeout数字工具调用的超时时间(默认:60秒)
disabled布尔值是否禁用该服务器

stdio 服务器选项

选项类型描述
command字符串运行MCP服务器的命令
args字符串数组服务器的命令行参数
env对象要传递给服务器的环境变量
cwd字符串可选 运行服务器的工作目录

sse 服务器选项

选项类型描述
url字符串SSE端点的URL

🛠️ 使用 MCP 功能

一旦配置完成,插件会自动将MCP服务器的功能暴露给您的代理:

上下文提供者

插件包括三个提供者,它们将MCP功能添加到代理的上下文中:

  1. MCP_SERVERS:列出可用的服务器及其工具、资源和提示

🔄 插件流程

以下图表说明了MCP插件的工具选择和执行流程:

graph TD
    %% 开始点 - 用户请求
    start[用户请求] --> action[CALL_TOOL 操作]

    %% MCP 服务器验证
    action --> check{MCP 服务器可用?}
    check -->|否| fail[返回无可用工具]
    
    %% 工具选择流程
    check -->|是| state[获取MCP提供者数据]
    state --> prompt[创建工具选择提示]
    
    %% 第一次模型使用 - 工具选择
    prompt --> model1[使用语言模型进行工具选择]
    model1 --> parse[解析选择]
    parse --> retry{有效选择?}
    
    %% 第二次模型使用 - 重试选择
    retry -->|否| feedback[生成反馈]
    feedback --> model2[使用语言模型进行重试]
    model2 --> parse
    
    %% 工具选择结果
    retry -->|是| toolAvailable{工具可用?}
    toolAvailable -->|否| fallback[备用响应]
    
    %% 工具执行流程
    toolAvailable -->|是| callTool[调用MCP工具]
    callTool --> processResult[处理工具结果]
    
    %% 创建记忆
    processResult --> createMemory[创建记忆记录]
    createMemory --> reasoningPrompt[创建推理提示]
    
    %% 第三次模型使用 - 响应生成
    reasoningPrompt --> model3[使用语言模型进行响应]
    model3 --> respondToUser[发送响应给用户]
    
    %% 样式
    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": "开发者助手",
  "plugins": ["@elizaos/plugin-mcp", "其他插件"],
  "settings": {
    "mcp": {
      "servers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "<您的令牌>"
          }
        },
        "puppeteer": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
        },
        "google-maps": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-google-maps"],
          "env": {
            "GOOGLE_MAPS_API_KEY": "<您的API密钥>"
          }
        }
      },
      "maxRetries": 2
    }
  }
}

🔒 安全注意事项

请注意,MCP服务器可以执行任意代码,因此仅连接您信任的服务器。

🔍 故障排除

如果您遇到MCP插件的问题:

  1. 确保您的MCP服务器正确配置并正在运行
  2. 确保命令在ElizaOS环境中可访问
  3. 查看日志以检查连接错误
  4. 验证插件是否已正确加载到您的角色配置中

👥 贡献

感谢您考虑为我们的项目做出贡献!

如何贡献

  1. 分叉仓库。
  2. 创建一个新的分支:git checkout -b feature-branch-name
  3. 进行更改。
  4. 使用常规提交方式提交更改。
  5. 推送到您的分叉并提交拉取请求。

提交指南

我们使用常规提交作为我们的提交信息:

  • test: 💍 添加缺失的测试
  • feat: 🎸 新功能
  • fix: 🐛 修复错误
  • chore: 🤖 构建过程或辅助工具更改
  • docs: ✏️ 文档更改
  • refactor: 💡 不是修复错误也不是添加功能的代码更改
  • style: 💄 标记、空格、格式化、缺少分号等...

📄 许可证

此插件发布在与ElizaOS相同的许可证下。