MCP Plugin for ElizaOS について
MCP Plugin for ElizaOS は、ElizaOS のエージェントから複数の MCP サーバーに同時に接続し、リソース、プロンプト、ツールを利用するためのプラグインです。ElizaOS 上でエージェントを開発する開発者向けで、stdio と sse の両方のサーバー種別に対応しています。
主な機能
- 01複数の MCP サーバーへの同時接続
- 02リソース、プロンプト、ツールの利用
- 03stdio と sse のサーバー種別に対応
- 04MCP_SERVERS コンテキストプロバイダー
- 05ツール呼び出しのタイムアウト設定と個別の無効化
活用シーン
- 01ElizaOS のエージェントに GitHub などの外部 MCP サーバーを接続する
- 02キャラクター設定内で複数の MCP サーバーを管理する
MCP 対応
本プラグインは MCP クライアントとして動作し、キャラクター設定で定義された stdio または sse の MCP サーバーに接続して、その機能をエージェントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ElizaOS 向け MCP プラグイン
このプラグインは Model Context Protocol(MCP)を ElizaOS と統合し、エージェントが複数の MCP サーバーに接続して、それらのリソース、プロンプト、ツールを利用できるようにします。
🔍 MCP とは?
Model Context Protocol(MCP)は、LLM アプリケーションと外部データソースやツールとのシームレスな統合を可能にするオープンプロトコルです。LLM を必要なコンテキストに接続するための標準化された方法を提供します。
このプラグインを使うと、ElizaOS エージェントは複数の MCP サーバーに同時にアクセスでき、それぞれ異なる機能を利用できます。
- リソース:エージェントが参照するコンテキストとデータ
- プロンプト:テンプレート化されたメッセージとワークフロー
- ツール:エージェントが実行する関数
📦 インストール
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」の 2 種類のサーバーをサポートしています。それぞれの種類に固有の設定オプションがあります。
共通オプション
| オプション | 型 | 説明 |
|---|---|---|
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 の機能を使用する
設定すると、プラグインは MCP サーバーの機能をエージェントに自動的に公開します。
コンテキストプロバイダー
このプラグインには、エージェントのコンテキストに MCP の機能を追加する 3 つのプロバイダーが含まれています。
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 環境からコマンドにアクセスできることを確認します
- 接続エラーがないかログを確認します
- キャラクター設定でプラグインが正しく読み込まれていることを確認します
👥 貢献
プロジェクトへの貢献をご検討いただき、ありがとうございます。
貢献方法
- リポジトリをフォークします。
- 新しいブランチを作成します:
git checkout -b feature-branch-name。 - 変更を加えます。
- Conventional Commits に従って変更をコミットします。
- フォークにプッシュして、プルリクエストを送信します。
コミットガイドライン
コミットメッセージにはConventional Commitsを使用しています。
test: 💍 不足しているテストの追加feat: 🎸 新機能fix: 🐛 バグ修正chore: 🤖 ビルドプロセスまたは補助ツールの変更docs: ✏️ ドキュメントのみの変更refactor: 💡 バグ修正や機能追加を伴わないコード変更style: 💄 マークアップ、空白、フォーマット、セミコロンの不足など
📄 ライセンス
このプラグインは、ElizaOSと同じライセンスのもとで公開されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。