Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
MCP server bridging Claude.ai/Desktop with self-hosted OpenClaw via OAuth 2.1.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
OPENCLAW_URL, OPENCLAW_GATEWAY_TOKEN, OPENCLAW_MODEL, OPENCLAW_TIMEOUT_MS「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"openclaw": {
"command": "npx",
"args": [
"-y",
"openclaw-mcp"
],
"env": {
"OPENCLAW_URL": "your-value",
"OPENCLAW_GATEWAY_TOKEN": "your-value",
"OPENCLAW_MODEL": "your-value",
"OPENCLAW_TIMEOUT_MS": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add openclaw --env OPENCLAW_URL=your-value --env OPENCLAW_GATEWAY_TOKEN=your-value --env OPENCLAW_MODEL=your-value --env OPENCLAW_TIMEOUT_MS=your-value -- npx -y openclaw-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"openclaw": {
"command": "npx",
"args": [
"-y",
"openclaw-mcp"
],
"env": {
"OPENCLAW_URL": "your-value",
"OPENCLAW_GATEWAY_TOKEN": "your-value",
"OPENCLAW_MODEL": "your-value",
"OPENCLAW_TIMEOUT_MS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"openclaw": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"openclaw-mcp"
],
"env": {
"OPENCLAW_URL": "your-value",
"OPENCLAW_GATEWAY_TOKEN": "your-value",
"OPENCLAW_MODEL": "your-value",
"OPENCLAW_TIMEOUT_MS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
OPENCLAW_MODEL envOPENCLAW_TIMEOUT_MS envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント freema で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:OPENCLAW_URL, OPENCLAW_GATEWAY_TOKEN
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.8.1)がレジストリに届いたのは今日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.js, Dockerも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, SuperCollider
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Make sound with SuperCollider: synths, drums, chords, melodies and soundscapes over OSC.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
🦞 Model Context Protocol (MCP) server for OpenClaw AI assistant integration.
Hey! I created this MCP server because I didn't want to rely solely on messaging channels to communicate with OpenClaw. What really excites me is the ability to connect OpenClaw to the Claude web UI. Essentially, my chat can delegate tasks to my Claw bot, which then handles everything else — like spinning up Claude Code to fix issues for me.
Think of it as an AI assistant orchestrating another AI assistant. Pretty cool, right?
Pre-built images are published to GitHub Container Registry on every release.
docker pull ghcr.io/freema/openclaw-mcp:latest
Create a docker-compose.yml:
services:
mcp-bridge: image: ghcr.io/freema/openclaw-mcp:latest container_name: openclaw-mcp restart: unless-stopped ports:
The port is published on 127.0.0.1 only: the bridge speaks plain HTTP and is meant to sit behind a TLS-terminating reverse proxy on the same host (see Deployment).
Generate secrets and start:
export MCP_CLIENT_SECRET=$(openssl rand -hex 32)
export OPENCLAW_GATEWAY_TOKEN=your-gateway-token docker compose up -d
Then in Claude.ai add a custom MCP connector pointing to https://your-domain.com/mcp with MCP_CLIENT_ID=openclaw and your MCP_CLIENT_SECRET.
Important: The connector URL must end with `/mcp` — that's the Streamable HTTP endpoint. A bare domain (
https://your-domain.com) hits the server root and returns 404 after OAuth completes.
Tip: Pin a specific version instead of
latestfor production:ghcr.io/freema/openclaw-mcp:1.8.1
Use a least-privilege agent. Set
OPENCLAW_AGENT_IDto a dedicated OpenClaw agent that only has the tools you want Claude to reach — not your main agent with shell access. See Security.
npx openclaw-mcp
Add to your Claude Desktop config:
{
"mcpServers": { "openclaw": { "command": "npx", "args": ["openclaw-mcp"], "env": { "OPENCLAW_URL": "http://127.0.0.1:18789", "OPENCLAW_GATEWAY_TOKEN": "your-gateway-token", "OPENCLAW_AGENT_ID": "main", "OPENCLAW_MODEL": "openclaw", "OPENCLAW_TIMEOUT_MS": "300000" } } } }
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 http --port 3000
Important: When running behind a reverse proxy (Caddy, nginx, Traefik, Cloudflare Tunnel, etc.) you must set:
-
MCP_ISSUER_URL(or--issuer-url) to your public HTTPS URL — otherwise OAuth metadata advertiseshttp://localhost:3000and clients fail to authenticate.
-
TRUST_PROXY=1(or--trust-proxy 1) — otherwiseexpress-rate-limitrejects the proxy'sX-Forwarded-Forheader and/tokencrashes withERR_ERL_UNEXPECTED_X_FORWARDED_FOR.
Recommended: Set
MCP_REDIRECT_URIS=https://claude.ai/api/mcp/auth_callback,https://claude.com/api/mcp/auth_callbackso authorization codes can only be delivered to Claude's callbacks. Note the exact/api/mcp/auth_callbackpath — matching is exact, and getting it wrong fails OAuth withUnregistered redirect_uri(see Troubleshooting).
See Installation Guide for details.
┌─────────────────────────────────────────────────────────────────┐
│ 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) │ └─────────────────┘
| Tool | Description |
|---|---|
openclaw_chat | Send messages to OpenClaw and get responses |
openclaw_status | Check OpenClaw gateway health |
openclaw_instances | List all configured OpenClaw instances |
| Tool | Description |
|---|---|
openclaw_chat_async | Queue a message, get task_id immediately |
openclaw_task_status | Check task progress and get results |
openclaw_task_list | List your tasks with filtering |
openclaw_task_cancel | Cancel a pending task |
Tasks belong to whoever created them. In HTTP mode that is the authenticated OAuth client, so a client can poll its tasks from a new MCP session, and another client's task_id reads as "not found" even if it is known. Without an authenticated client (stdio) tasks are scoped to the connection.
Orchestrate multiple OpenClaw gateways from a single MCP server. One bridge, many claws — route requests to prod, staging, dev, or whatever you name them (lobster-supreme and the-claw-abides are perfectly valid names).
┌──────────────────────────────────────────────────────────────────────┐
│ 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"} ]'
All tools accept an optional instance parameter to target a specific gateway:
# Chat with staging instance
openclaw_chat message="Deploy status?" instance="staging"
openclaw_status instance="prod"
openclaw_instances
openclaw_chat_async message="Run tests" instance="dev"
When instance is omitted, the default instance is used. Each instance has its own auth token, timeout, and URL — fully isolated.
openclaw_instancesSee Configuration — Multi-Instance Mode for the full reference.
⚠️ Always enable authentication in production!
# Generate secure client secret
export MCP_CLIENT_SECRET=$(openssl rand -hex 32)
MCP_CLIENT_ID=openclaw MCP_CLIENT_SECRET=$MCP_CLIENT_SECRET \ openclaw-mcp --transport http
CORS is disabled unless you opt in. Set CORS_ORIGINS only when a browser client needs to reach the server directly:
CORS_ORIGINS=https://claude.ai,https://your-app.com
See Configuration for all security options.
The bridge passes text to an OpenClaw agent and cannot judge what that text makes
冒頭だけを表示しています。続きはリポジトリで読めます