mcpField
M
MCP Plugin for ElizaOS

MCP Plugin for ElizaOS

Local
github.com/fleek-platformDeveloper Tools48Updated 83w ago

About MCP Plugin for ElizaOS

MCP Plugin for ElizaOS lets ElizaOS agents connect to several MCP servers at once and use their resources, prompts and tools. It is aimed at developers building agents on ElizaOS and supports both stdio and sse server types.

Key features

  1. 01Connects to multiple MCP servers simultaneously
  2. 02Supports resources, prompts and tools
  3. 03Supports stdio and sse server types
  4. 04Provides MCP_SERVERS context provider
  5. 05Configurable tool call timeout and server disabling

Use cases

  1. 01Giving an ElizaOS agent access to external MCP servers such as GitHub
  2. 02Managing several MCP servers within a character configuration

MCP support

The plugin acts as an MCP client, connecting to stdio or sse MCP servers defined in the character configuration and exposing their capabilities to the agent.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP Plugin for ElizaOS

Conventional Commits

This plugin integrates the Model Context Protocol (MCP) with ElizaOS, allowing agents to connect to multiple MCP servers and use their resources, prompts, and tools.

🔍 What is MCP?

The Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. It provides a standardized way to connect LLMs with the context they need.

This plugin allows your ElizaOS agents to access multiple MCP servers simultaneously, each providing different capabilities:

  • Resources: Context and data for the agent to reference
  • Prompts: Templated messages and workflows
  • Tools: Functions for the agent to execute

📦 Installation

Install the plugin in your ElizaOS project:

  • 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

🚀 Usage

  1. Add the plugin to your character configuration:
{
  "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"]
        }
      }
    }
  }
}

⚙️ Configuration Options

MCP supports two types of servers: "stdio" and "sse". Each type has its own configuration options.

Common Options
OptionTypeDescription
typestringThe type of MCP server: "stdio" or "sse"
namestringThe display name of the server
timeoutnumberTimeout in seconds for tool calls (default: 60)
disabledbooleanWhether the server is disabled
stdio Server Options
OptionTypeDescription
commandstringThe command to run the MCP server
argsstring[]Command-line arguments for the server
envobjectEnvironment variables to pass to the server
cwdstringOptional Working directory to run the server in
sse Server Options
OptionTypeDescription
urlstringThe URL of the SSE endpoint

🛠️ Using MCP Capabilities

Once configured, the plugin automatically exposes MCP servers' capabilities to your agent:

Context Providers

The plugin includes three providers that add MCP capabilities to the agent's context:

  1. MCP_SERVERS: Lists available servers and their tools, resources and prompts

🔄 Plugin Flow

The following diagram illustrates the MCP plugin's flow for tool selection and execution:

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;

📋 Example: Setting Up Multiple MCP Servers

Here's a complete example configuration with multiple MCP servers of both types:

{
  "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
    }
  }
}

🔒 Security Considerations

Please be aware that MCP servers can execute arbitrary code, so only connect to servers you trust.

🔍 Troubleshooting

If you encounter issues with the MCP plugin:

  1. Check that your MCP servers are correctly configured and running
  2. Ensure the commands are accessible in the ElizaOS environment
  3. Review the logs for connection errors
  4. Verify that the plugin is properly loaded in your character configuration

👥 Contributing

Thanks for considering contributing to our project!

How to Contribute
  1. Fork the repository.
  2. Create a new branch: git checkout -b feature-branch-name.
  3. Make your changes.
  4. Commit your changes using conventional commits.
  5. Push to your fork and submit a pull request.
Commit Guidelines

We use Conventional Commits for our commit messages:

  • test: 💍 Adding missing tests
  • feat: 🎸 A new feature
  • fix: 🐛 A bug fix
  • chore: 🤖 Build process or auxiliary tool changes
  • docs: ✏️ Documentation only changes
  • refactor: 💡 A code change that neither fixes a bug or adds a feature
  • style: 💄 Markup, white-space, formatting, missing semi-colons...

📄 License

This plugin is released under the same license as ElizaOS.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.