Skip to main content
Glama

MCP-сервер OpenClaw

npm version CI License: MIT GHCR Website

🦞 Сервер протокола контекста модели (MCP) для интеграции с ИИ-ассистентом OpenClaw.

Демонстрация

Почему я это создал

Привет! Я создал этот MCP-сервер, потому что не хотел полагаться только на мессенджеры для общения с OpenClaw. Что меня действительно вдохновляет, так это возможность подключить OpenClaw к веб-интерфейсу Claude. По сути, мой чат может делегировать задачи моему боту Claw, который затем берет на себя всё остальное — например, запуск Claude Code для исправления проблем за меня.

Представьте это как ИИ-ассистента, который управляет другим ИИ-ассистентом. Довольно круто, правда?

Быстрый старт

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=openclaw и вашим MCP_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

Отмена ожидающей задачи

Режим нескольких экземпляров

Управляйте несколькими шлюзами OpenClaw с одного MCP-сервера. Один мост, много «клешней» — направляйте запросы на продакшен, стейджинг, разработку или как вы их назовете (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

Полное описание см. в Конфигурация — Режим нескольких экземпляров.

Документация

Безопасность

⚠️ Всегда включайте аутентификацию в продакшене!

# 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

  • Запущенный шлюз OpenClaw с включенным HTTP API:

// openclaw.json
{ "gateway": { "http": { "endpoints": { "chatCompletions": { "enabled": true } } } } }

Лицензия

MIT

Автор

Создано Томашем Граслом

Связанные проекты

  • OpenClaw — ИИ-ассистент, к которому подключается этот MCP

  • Спецификация MCP — Документация протокола контекста модели

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