Skip to main content
Glama

OpenClaw MCPサーバー

npm version CI License: MIT GHCR Website

🦞 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:latest

docker-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=openclawMCP_CLIENT_SECRETを指定してサーバーを指し示します。

ヒント: 本番環境ではlatestではなく特定のバージョンを固定してください:ghcr.io/freema/openclaw-mcp:1.1.0

ローカル(Claude Desktop)

npx openclaw-mcp

Claude 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_chat

OpenClawにメッセージを送信し、応答を取得する

openclaw_status

OpenClawゲートウェイの健全性を確認する

openclaw_instances

設定済みのすべてのOpenClawインスタンスを一覧表示する

非同期ツール(長時間実行操作用)

ツール

説明

openclaw_chat_async

メッセージをキューに入れ、即座にtask_idを取得する

openclaw_task_status

タスクの進捗を確認し、結果を取得する

openclaw_task_list

フィルタリング付きで全タスクを一覧表示する

openclaw_task_cancel

保留中のタスクをキャンセルする

マルチインスタンスモード

単一のMCPサーバーから複数のOpenClawゲートウェイをオーケストレーションします。1つのブリッジで多くのClawを管理し、本番環境、ステージング、開発環境など、名前を付けた環境へリクエストをルーティングできます(lobster-supremethe-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

関連プロジェクト

  • OpenClaw — このMCPが接続するAIアシスタント

  • MCP仕様 — Model Context Protocolのドキュメント

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