openclaw-mcp
OpenClaw MCPサーバー
🦞 OpenClaw AIアシスタント統合のためのModel Context Protocol (MCP) サーバーです。
デモ
開発の動機
こんにちは!私がこのMCPサーバーを作成したのは、OpenClawと通信するためにメッセージングチャネルだけに頼りたくなかったからです。私が特にワクワクしているのは、OpenClawをClaudeのWeb UIに接続できるという点です。本質的に、私のチャットからClawボットにタスクを委任し、ボットが残りのすべて(例えば、Claude Codeを起動して問題を修正させるなど)を処理できるようになります。
AIアシスタントが別のAIアシスタントを指揮していると考えてください。とてもクールだと思いませんか?
クイックスタート
Docker(推奨)
ビルド済みのイメージが、リリースごとにGitHub Container Registryに公開されています。
docker pull ghcr.io/freema/openclaw-mcp:latestdocker-compose.ymlを作成します:
services:
mcp-bridge:
image: ghcr.io/freema/openclaw-mcp:latest
container_name: openclaw-mcp
restart: unless-stopped
ports:
- "3000:3000"
environment:
- OPENCLAW_URL=http://host.docker.internal:18789
- OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
- OPENCLAW_MODEL=openclaw
- AUTH_ENABLED=true
- MCP_CLIENT_ID=openclaw
- MCP_CLIENT_SECRET=${MCP_CLIENT_SECRET}
- MCP_ISSUER_URL=${MCP_ISSUER_URL:-}
- CORS_ORIGINS=https://claude.ai
extra_hosts:
- "host.docker.internal:host-gateway"
read_only: true
security_opt:
- no-new-privilegesシークレットを生成して起動します:
export MCP_CLIENT_SECRET=$(openssl rand -hex 32)
export OPENCLAW_GATEWAY_TOKEN=your-gateway-token
docker compose up -d次に、Claude.aiでカスタムMCPコネクタを追加し、MCP_CLIENT_ID=openclawとMCP_CLIENT_SECRETを指定してサーバーを指し示します。
ヒント: 本番環境では
latestではなく特定のバージョンを固定してください:ghcr.io/freema/openclaw-mcp:1.1.0
ローカル(Claude Desktop)
npx openclaw-mcpClaude Desktopの設定に追加します:
{
"mcpServers": {
"openclaw": {
"command": "npx",
"args": ["openclaw-mcp"],
"env": {
"OPENCLAW_URL": "http://127.0.0.1:18789",
"OPENCLAW_GATEWAY_TOKEN": "your-gateway-token",
"OPENCLAW_MODEL": "openclaw",
"OPENCLAW_TIMEOUT_MS": "300000"
}
}
}
}リモート(Claude.ai)Dockerなしの場合
AUTH_ENABLED=true MCP_CLIENT_ID=openclaw MCP_CLIENT_SECRET=your-secret \
MCP_ISSUER_URL=https://mcp.your-domain.com \
CORS_ORIGINS=https://claude.ai OPENCLAW_GATEWAY_TOKEN=your-gateway-token \
npx openclaw-mcp --transport sse --port 3000重要: リバースプロキシ(Caddy、nginxなど)の背後で実行する場合は、
MCP_ISSUER_URL(または--issuer-url)をパブリックなHTTPS URLに設定しなければなりません。これを行わないと、OAuthメタデータがhttp://localhost:3000をアドバタイズしてしまい、クライアントが認証に失敗します。
詳細はインストールガイドを参照してください。
アーキテクチャ
┌─────────────────────────────────────────────────────────────────┐
│ Your Server │
│ │
│ ┌─────────────────┐ ┌─────────────────────────┐ │
│ │ OpenClaw │ │ OpenClaw MCP │ │
│ │ Gateway │◄────►│ Bridge Server │ │
│ │ :18789 │ │ :3000 │ │
│ │ │ │ │ │
│ │ OpenAI-compat │ │ - OAuth 2.1 auth │ │
│ │ /v1/chat/... │ │ - CORS protection │ │
│ └─────────────────┘ │ - Input validation │ │
│ └──────────┬──────────────┘ │
│ │ │
└──────────────────────────────────────┼──────────────────────────┘
│ HTTPS + OAuth 2.1
▼
┌─────────────────┐
│ Claude.ai │
│ (MCP Client) │
└─────────────────┘利用可能なツール
同期ツール
ツール | 説明 |
| OpenClawにメッセージを送信し、応答を取得する |
| OpenClawゲートウェイの健全性を確認する |
| 設定済みのすべてのOpenClawインスタンスを一覧表示する |
非同期ツール(長時間実行操作用)
ツール | 説明 |
| メッセージをキューに入れ、即座に |
| タスクの進捗を確認し、結果を取得する |
| フィルタリング付きで全タスクを一覧表示する |
| 保留中のタスクをキャンセルする |
マルチインスタンスモード
単一のMCPサーバーから複数のOpenClawゲートウェイをオーケストレーションします。1つのブリッジで多くのClawを管理し、本番環境、ステージング、開発環境など、名前を付けた環境へリクエストをルーティングできます(lobster-supremeやthe-claw-abidesといった名前も完全に有効です)。
┌──────────────────────────────────────────────────────────────────────┐
│ Claude.ai / Claude Desktop │
│ (MCP Client) │
└──────────────────────┬───────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────┐
│ OpenClaw MCP Bridge Server │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Instance │ │ Instance │ │ Instance │ │
│ │ Registry │ │ Resolver │ │ Validator │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ ┌──────┴─────────────────┴──────────────────┴───────┐ │
│ │ Per-Instance OpenClaw Clients │ │
│ │ (separate auth, timeout, URL per instance) │ │
│ └────────┬──────────────┬──────────────┬────────────┘ │
└───────────┼──────────────┼──────────────┼────────────────────────────┘
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 🦞 prod │ │ 🦞 staging │ │ 🦞 dev │
│ (default) │ │ │ │ │
│ :18789 │ │ :18789 │ │ :18789 │
│ OpenClaw GW │ │ OpenClaw GW │ │ OpenClaw GW │
└──────────────┘ └──────────────┘ └──────────────┘セットアップ
OPENCLAW_INSTANCES='[
{"name": "prod", "url": "http://prod:18789", "token": "tok1", "default": true},
{"name": "staging", "url": "http://staging:18789", "token": "tok2"},
{"name": "dev", "url": "http://dev:18789", "token": "tok3"}
]'使用方法
すべてのツールは、特定のゲートウェイをターゲットにするためのオプションのinstanceパラメータを受け入れます:
# Chat with staging instance
openclaw_chat message="Deploy status?" instance="staging"
# Check health of prod
openclaw_status instance="prod"
# List all configured instances
openclaw_instances
# Async task targeting dev
openclaw_chat_async message="Run tests" instance="dev"instanceが省略された場合は、デフォルトのインスタンスが使用されます。各インスタンスは独自の認証トークン、タイムアウト、URLを持ち、完全に分離されています。
主な機能
移行不要のアップグレード — 既存の単一インスタンス構成は設定変更なしで動作します
インスタンスごとの分離 — 個別の認証トークン、タイムアウト、URL
動的ルーティング — Claudeがリクエストごとに適切なインスタンスを選択します
タスク追跡 — 非同期タスクはターゲットとしているインスタンスを記憶します
セキュリティ — トークンは
openclaw_instancesを通じて公開されることはありません
詳細なリファレンスについては設定 — マルチインスタンスモードを参照してください。
ドキュメント
インストール — Claude DesktopおよびClaude.aiのセットアップ
設定 — 環境変数とオプション
デプロイメント — Dockerおよび本番環境のセットアップ
脅威モデル — Claudeがトリガーできるもの・できないもの、信頼境界と攻撃対象領域
ログ記録 — 何がどこに記録され、何が記録されないか
開発 — 貢献とツールの追加方法
セキュリティ — セキュリティポリシーとベストプラクティス
セキュリティ
⚠️ 本番環境では必ず認証を有効にしてください!
# Generate secure client secret
export MCP_CLIENT_SECRET=$(openssl rand -hex 32)
# Run with auth enabled
AUTH_ENABLED=true MCP_CLIENT_ID=openclaw MCP_CLIENT_SECRET=$MCP_CLIENT_SECRET \
openclaw-mcp --transport sseアクセスを制限するためにCORSを設定します:
CORS_ORIGINS=https://claude.ai,https://your-app.comすべてのセキュリティオプションについては設定を参照してください。
要件
Node.js ≥ 20
HTTP APIが有効な状態で実行されているOpenClawゲートウェイ:
// openclaw.json
{ "gateway": { "http": { "endpoints": { "chatCompletions": { "enabled": true } } } } }ライセンス
MIT
作者
作成者: Tomáš Grasl
関連プロジェクト
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/freema/openclaw-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server