mcp
openclaw mcp tem duas funções:
- executar o OpenClaw como um servidor MCP com
openclaw mcp serve - gerenciar definições de servidores MCP de saída pertencentes ao OpenClaw com
list,show,seteunset
serveé o OpenClaw atuando como servidor MCPlist/show/set/unseté o OpenClaw atuando como um registro no lado do cliente MCP para outros servidores MCP que seus runtimes poderão consumir depois
openclaw acp quando o OpenClaw deve hospedar uma sessão
de harness de codificação por conta própria e rotear esse runtime por ACP.
OpenClaw como servidor MCP
Este é o caminhoopenclaw mcp serve.
Quando usar serve
Use openclaw mcp serve quando:
- Codex, Claude Code ou outro cliente MCP deve se comunicar diretamente com conversas de canais com suporte do OpenClaw
- você já tem um Gateway OpenClaw local ou remoto com sessões roteadas
- você quer um único servidor MCP que funcione em todos os backends de canal do OpenClaw em vez de executar bridges separadas por canal
openclaw acp quando o OpenClaw deve hospedar o runtime
de codificação por conta própria e manter a sessão do agente dentro do OpenClaw.
Como funciona
openclaw mcp serve inicia um servidor MCP por stdio. O cliente MCP é dono desse
processo. Enquanto o cliente mantiver a sessão stdio aberta, a bridge se conecta a um
Gateway OpenClaw local ou remoto por WebSocket e expõe conversas de canais roteadas por MCP.
Ciclo de vida:
- o cliente MCP inicia
openclaw mcp serve - a bridge se conecta ao Gateway
- sessões roteadas tornam-se conversas MCP e ferramentas de transcrição/histórico
- eventos ao vivo são colocados em fila na memória enquanto a bridge está conectada
- se o modo de canal do Claude estiver habilitado, a mesma sessão também poderá receber notificações push específicas do Claude
- o estado da fila ao vivo começa quando a bridge se conecta
- o histórico de transcrição mais antigo é lido com
messages_read - notificações push do Claude existem apenas enquanto a sessão MCP estiver ativa
- quando o cliente desconecta, a bridge é encerrada e a fila ao vivo desaparece
Escolha um modo de cliente
Use a mesma bridge de duas formas diferentes:- Clientes MCP genéricos: apenas ferramentas MCP padrão. Use
conversations_list,messages_read,events_poll,events_wait,messages_sende as ferramentas de aprovação. - Claude Code: ferramentas MCP padrão mais o adaptador de canal específico do Claude.
Habilite
--claude-channel-mode onou deixe o padrãoauto.
auto se comporta da mesma forma que on. Ainda não há detecção de
capacidade do cliente.
O que serve expõe
A bridge usa metadados de rota de sessão existentes do Gateway para expor conversas
com suporte de canal. Uma conversa aparece quando o OpenClaw já tem estado de sessão
com uma rota conhecida, como:
channel- metadados de destinatário ou destino
accountIdopcionalthreadIdopcional
- listar conversas roteadas recentes
- ler histórico recente de transcrição
- aguardar novos eventos de entrada
- enviar uma resposta de volta pela mesma rota
- ver solicitações de aprovação que chegam enquanto a bridge está conectada
Uso
Ferramentas da bridge
A bridge atual expõe estas ferramentas MCP:conversations_listconversation_getmessages_readattachments_fetchevents_pollevents_waitmessages_sendpermissions_list_openpermissions_respond
conversations_list
Lista conversas recentes com suporte de sessão que já têm metadados de rota no
estado da sessão do Gateway.
Filtros úteis:
limitsearchchannelincludeDerivedTitlesincludeLastMessage
conversation_get
Retorna uma conversa por session_key.
messages_read
Lê mensagens recentes da transcrição de uma conversa com suporte de sessão.
attachments_fetch
Extrai blocos de conteúdo de mensagem que não sejam texto de uma mensagem da transcrição. Esta é uma
visão de metadados sobre o conteúdo da transcrição, não um armazenamento independente
e durável de blobs de anexos.
events_poll
Lê eventos ao vivo enfileirados desde um cursor numérico.
events_wait
Faz long-polling até que o próximo evento enfileirado correspondente chegue ou até que um tempo limite expire.
Use isso quando um cliente MCP genérico precisar de entrega quase em tempo real sem um
protocolo push específico do Claude.
messages_send
Envia texto de volta pela mesma rota já registrada na sessão.
Comportamento atual:
- exige uma rota de conversa existente
- usa o canal da sessão, destinatário, id da conta e id da thread
- envia apenas texto
permissions_list_open
Lista solicitações pendentes de aprovação de execução/plugin que a bridge observou desde que se
conectou ao Gateway.
permissions_respond
Resolve uma solicitação pendente de aprovação de execução/plugin com:
allow-onceallow-alwaysdeny
Modelo de eventos
A bridge mantém uma fila de eventos em memória enquanto está conectada. Tipos atuais de evento:messageexec_approval_requestedexec_approval_resolvedplugin_approval_requestedplugin_approval_resolvedclaude_permission_request
- a fila é apenas ao vivo; ela começa quando a bridge MCP inicia
events_polleevents_waitnão reproduzem histórico mais antigo do Gateway por conta própria- backlog durável deve ser lido com
messages_read
Notificações de canal do Claude
A bridge também pode expor notificações de canal específicas do Claude. Este é o equivalente no OpenClaw de um adaptador de canal do Claude Code: as ferramentas MCP padrão continuam disponíveis, mas mensagens de entrada ao vivo também podem chegar como notificações MCP específicas do Claude. Flags:--claude-channel-mode off: apenas ferramentas MCP padrão--claude-channel-mode on: habilita notificações de canal do Claude--claude-channel-mode auto: padrão atual; mesmo comportamento de bridge queon
notifications/claude/channelnotifications/claude/channel/permission
- mensagens de transcrição de entrada
usersão encaminhadas comonotifications/claude/channel - solicitações de permissão do Claude recebidas por MCP são rastreadas em memória
- se a conversa vinculada depois enviar
yes abcdeouno abcde, a bridge converte isso emnotifications/claude/channel/permission - essas notificações existem apenas na sessão ao vivo; se o cliente MCP desconectar, não há destino para push
Configuração do cliente MCP
Exemplo de configuração de cliente stdio:Opções
openclaw mcp serve oferece suporte a:
--url <url>: URL WebSocket do Gateway--token <token>: token do Gateway--token-file <path>: lê o token de um arquivo--password <password>: senha do Gateway--password-file <path>: lê a senha de um arquivo--claude-channel-mode <auto|on|off>: modo de notificação do Claude-v,--verbose: logs detalhados em stderr
--token-file ou --password-file em vez de segredos inline quando possível.
Segurança e limite de confiança
A bridge não inventa roteamento. Ela apenas expõe conversas que o Gateway já sabe rotear. Isso significa:- listas de permissões de remetentes, emparelhamento e confiança no nível do canal continuam pertencendo à configuração subjacente de canal do OpenClaw
messages_sendsó pode responder por uma rota armazenada existente- o estado de aprovação é apenas ao vivo/em memória para a sessão atual da bridge
- a autenticação da bridge deve usar os mesmos controles de token ou senha do Gateway em que você confiaria para qualquer outro cliente remoto do Gateway
conversations_list, a causa usual não é
a configuração do MCP. O problema é a ausência ou incompletude dos metadados de rota na
sessão subjacente do Gateway.
Testes
O OpenClaw inclui um smoke determinístico em Docker para esta bridge:- inicia um contêiner Gateway com dados semeados
- inicia um segundo contêiner que executa
openclaw mcp serve - verifica descoberta de conversa, leituras de transcrição, leituras de metadados de anexos, comportamento da fila de eventos ao vivo e roteamento de envio de saída
- valida notificações de canal e permissões no estilo Claude pela bridge MCP stdio real
Solução de problemas
Nenhuma conversa retornada
Normalmente significa que a sessão do Gateway ainda não é roteável. Confirme se a sessão subjacente armazenou metadados de rota de canal/provedor, destinatário e conta/thread opcional.events_poll ou events_wait não capturam mensagens mais antigas
Esperado. A fila ao vivo começa quando a bridge se conecta. Leia o histórico mais antigo da transcrição
com messages_read.
Notificações do Claude não aparecem
Verifique todos estes pontos:- o cliente manteve a sessão MCP stdio aberta
--claude-channel-modeestá emonouauto- o cliente realmente entende os métodos de notificação específicos do Claude
- a mensagem de entrada ocorreu depois que a bridge se conectou
Aprovações estão ausentes
permissions_list_open mostra apenas solicitações de aprovação observadas enquanto a bridge
estava conectada. Não é uma API durável de histórico de aprovações.
OpenClaw como registro de cliente MCP
Este é o caminhoopenclaw mcp list, show, set e unset.
Esses comandos não expõem o OpenClaw por MCP. Eles gerenciam definições de servidores MCP
pertencentes ao OpenClaw em mcp.servers na configuração do OpenClaw.
Essas definições salvas são para runtimes que o OpenClaw inicia ou configura
mais tarde, como Pi incorporado e outros adaptadores de runtime. O OpenClaw armazena as
definições centralmente para que esses runtimes não precisem manter suas próprias listas MCP
duplicadas.
Comportamento importante:
- esses comandos apenas leem ou escrevem a configuração do OpenClaw
- eles não se conectam ao servidor MCP de destino
- eles não validam se o comando, a URL ou o transporte remoto está acessível agora
- adaptadores de runtime decidem quais formatos de transporte eles realmente suportam em tempo de execução
Definições salvas de servidores MCP
O OpenClaw também armazena um registro leve de servidores MCP na configuração para superfícies que desejam definições MCP gerenciadas pelo OpenClaw. Comandos:openclaw mcp listopenclaw mcp show [name]openclaw mcp set <name> <json>openclaw mcp unset <name>
listordena os nomes dos servidores.showsem um nome imprime o objeto completo de servidores MCP configurados.setespera um único valor de objeto JSON na linha de comando.unsetfalha se o servidor nomeado não existir.
Transporte stdio
Inicia um processo filho local e se comunica por stdin/stdout.| Campo | Descrição |
|---|---|
command | Executável a iniciar (obrigatório) |
args | Array de argumentos de linha de comando |
env | Variáveis de ambiente extras |
cwd / workingDirectory | Diretório de trabalho do processo |
Transporte SSE / HTTP
Conecta-se a um servidor MCP remoto por HTTP Server-Sent Events.| Campo | Descrição |
|---|---|
url | URL HTTP ou HTTPS do servidor remoto (obrigatório) |
headers | Mapa opcional de chave-valor de cabeçalhos HTTP (por exemplo, tokens de autenticação) |
connectionTimeoutMs | Tempo limite de conexão por servidor em ms (opcional) |
url (userinfo) e headers são redigidos em logs e
saída de status.
Transporte HTTP com streaming
streamable-http é uma opção adicional de transporte ao lado de sse e stdio. Ele usa streaming HTTP para comunicação bidirecional com servidores MCP remotos.
| Campo | Descrição |
|---|---|
url | URL HTTP ou HTTPS do servidor remoto (obrigatório) |
transport | Defina como "streamable-http" para selecionar este transporte; quando omitido, o OpenClaw usa sse |
headers | Mapa opcional de chave-valor de cabeçalhos HTTP (por exemplo, tokens de autenticação) |
connectionTimeoutMs | Tempo limite de conexão por servidor em ms (opcional) |
Limites atuais
Esta página documenta a bridge como ela é distribuída hoje. Limites atuais:- a descoberta de conversas depende de metadados de rota existentes na sessão do Gateway
- ainda não há protocolo push genérico além do adaptador específico do Claude
- ainda não há ferramentas para editar mensagens nem reagir
- o transporte HTTP/SSE/streamable-http se conecta a um único servidor remoto; ainda não há upstream multiplexado
permissions_list_openinclui apenas aprovações observadas enquanto a bridge está conectada