Documentação oficial desta página · v0.20.6
Usar MCP com o Hermes
Este guia mostra como de fato usar MCP com o Hermes Agent no fluxo do dia a dia.
Se a página do recurso explica o que é MCP, este guia é sobre como extrair valor dele rápido e com segurança.
Quando você deve usar MCP?
Use MCP quando:
- uma ferramenta já existe em forma de MCP e você não quer construir uma ferramenta nativa do Hermes
- você quer que o Hermes opere contra um sistema local ou remoto por uma camada de RPC limpa
- você quer controle fino da exposição de cada servidor
- você quer conectar o Hermes a APIs internas, bancos de dados ou sistemas da empresa sem modificar o núcleo do Hermes
Não use MCP quando:
- uma ferramenta embutida do Hermes já resolve bem o trabalho
- o servidor expõe uma superfície de ferramentas enorme e perigosa e você não está preparado para filtrar
- você só precisa de uma integração bem estreita e uma ferramenta nativa seria mais simples e mais segura
Modelo mental
Pense no MCP como uma camada de adaptação:
- o Hermes continua sendo o agente
- os servidores MCP contribuem com ferramentas
- o Hermes descobre essas ferramentas na partida ou na hora do recarregamento
- o modelo pode usá-las como ferramentas normais
- você controla quanto de cada servidor fica visível
Essa última parte importa. Bom uso de MCP não é só "conectar tudo". É "conectar a coisa certa, com a menor superfície útil".
Passo 1: instale o suporte a MCP
Se você instalou o Hermes com o script de instalação padrão, o suporte a MCP já vem incluído (o instalador roda uv pip install -e ".[all]").
Se você instalou sem os extras e precisa acrescentar o MCP separadamente:
cd ~/.hermes/hermes-agent
uv pip install -e ".[mcp]"
Para servidores baseados em npm, garanta que o Node.js e o npx estão disponíveis.
Para muitos servidores MCP em Python, o uvx é um padrão agradável.
Passo 2: acrescente um servidor primeiro
Comece com um servidor único e seguro.
Exemplo: acesso ao sistema de arquivos de um único diretório de projeto.
mcp_servers:
project_fs:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/meu-projeto"]
Depois inicie o Hermes:
hermes chat
Agora peça algo concreto:
Inspecione este projeto e resuma o layout do repositório.
Passo 3: verifique se o MCP carregou
Você pode verificar o MCP de algumas formas:
- o banner/estado do Hermes deve mostrar a integração MCP quando ela está configurada
- pergunte ao Hermes quais ferramentas ele tem disponíveis
- use
/reload-mcpdepois de mudanças na configuração - confira os logs se o servidor não conseguiu conectar
Um prompt prático de teste:
Me diga quais ferramentas apoiadas por MCP estão disponíveis agora.
Passo 4: comece a filtrar imediatamente
Não deixe para depois se o servidor expõe muitas ferramentas.
Exemplo: permita na lista só o que você quer
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, search_code]
Este costuma ser o melhor padrão para sistemas sensíveis.
WSL2: ligue o Hermes no WSL ao Chrome do Windows
Esta é a configuração prática quando:
- o Hermes roda dentro do WSL2
- o navegador que você quer controlar é o seu Chrome normal, já logado, no Windows
- o
/browser connectfica desajeitado ou pouco confiável a partir do WSL
Nesta configuração, o Hermes não conecta no Chrome diretamente. Em vez disso:
- o Hermes roda no WSL
- o Hermes sobe um servidor MCP local por stdio
- esse servidor MCP é lançado pela interoperabilidade com o Windows (
cmd.exeoupowershell.exe) - o servidor MCP se acopla à sua sessão viva do Chrome no Windows
Modelo mental:
Hermes (WSL) -> ponte MCP por stdio -> Chrome do Windows
Por que este modo é útil
- você mantém o seu perfil real de navegador do Windows, com cookies e logins
- o Hermes fica no ambiente Unix que ele suporta (WSL2)
- o controle do navegador é exposto como ferramentas MCP, em vez de depender do transporte de navegador do núcleo do Hermes
Servidor recomendado
Use o chrome-devtools-mcp.
Se o seu Chrome do Windows já tem a depuração remota viva habilitada em chrome://inspect/#remote-debugging, acrescente assim, a partir do WSL:
hermes mcp add chrome-devtools-win --command cmd.exe --args /c npx -y chrome-devtools-mcp@latest --autoConnect --no-usage-statistics
Depois de salvar o servidor:
hermes mcp test chrome-devtools-win
Então comece uma sessão nova do Hermes ou rode:
/reload-mcp
Prompt típico
Uma vez carregado, o Hermes pode usar direto as ferramentas de navegador com prefixo de MCP. Por exemplo:
Chame a ferramenta MCP mcp_chrome_devtools_win_list_pages e liste as abas atuais do navegador.
Quando o /browser connect é a ferramenta errada
Se o Hermes roda no WSL e o Chrome roda no Windows, o /browser connect pode falhar mesmo com o Chrome aberto e depurável.
Motivos comuns:
- o WSL não consegue alcançar o mesmo endpoint local de host que o Chrome expõe para as ferramentas do Windows
- os fluxos mais novos de depuração viva do Chrome não são iguais a um clássico
ws://localhost:9222 - é mais fácil se acoplar ao navegador a partir de um auxiliar do lado do Windows, como o
chrome-devtools-mcp
Nesses casos, guarde o /browser connect para configurações no mesmo ambiente e use MCP para a ponte de navegador do WSL para o Windows.
Armadilhas conhecidas
- Inicie o Hermes de um caminho montado do Windows, como
/mnt/c/Users/<voce>ou/mnt/c/workspace/..., quando estiver usando executáveis stdio do Windows via MCP. - Se você inicia o Hermes de
/rootou de/home/..., o Windows pode emitir um aviso de diretório atualUNCantes de o servidor MCP subir. - Se o
chrome-devtools-mcp --autoConnectestoura o tempo enquanto enumera páginas, reduza as abas de fundo/congeladas no Chrome e tente de novo.
Exemplo: bloqueie ações perigosas
mcp_servers:
stripe:
url: "https://mcp.stripe.com"
headers:
Authorization: "Bearer ***"
tools:
exclude: [delete_customer, refund_payment]
Exemplo: desligue também os invólucros utilitários
mcp_servers:
docs:
url: "https://mcp.docs.example.com"
tools:
prompts: false
resources: false
O que a filtragem afeta, na prática?
Existem duas categorias de funcionalidade exposta por MCP no Hermes:
- Ferramentas MCP nativas do servidor
- filtradas com:
tools.includetools.exclude
- Invólucros utilitários acrescentados pelo Hermes
- filtrados com:
tools.resourcestools.prompts
Invólucros utilitários que você pode ver
Recursos:
list_resourcesread_resource
Prompts:
list_promptsget_prompt
Esses invólucros só aparecem se:
- a sua configuração os permite, e
- a sessão do servidor MCP realmente suporta essas capacidades
Então o Hermes não vai fingir que um servidor tem recursos/prompts se ele não tem.
Padrões comuns
Padrão 1: assistente de projeto local
Use MCP para um servidor de sistema de arquivos ou de git local ao repositório quando você quer que o Hermes raciocine sobre um espaço de trabalho delimitado.
mcp_servers:
fs:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projeto"]
git:
command: "uvx"
args: ["mcp-server-git", "--repository", "/home/user/projeto"]
Bons prompts:
Revise a estrutura do projeto e identifique onde fica a configuração.
Confira o estado local do git e resuma o que mudou recentemente.
Padrão 2: registro de trabalho nativo do repositório com o Open Scaffold
Use o Open Scaffold quando você quer que o Hermes leia o registro durável de trabalho de IA de um repositório: missão, planos, notas de evidência, pacotes de passagem e resultados de revisão/portão. O Hermes continua sendo o agente; o Open Scaffold continua sendo o registro local do repositório.
Acrescente o servidor para um repositório com o scaffold montado:
hermes mcp add open_scaffold --command npx --args -y open-scaffold@latest mcp serve --repo /caminho/absoluto/do/repo
hermes mcp test open_scaffold
Depois mantenha a superfície exposta voltada para leitura. Escolha select na pergunta do hermes mcp add, ou edite o config.yaml depois:
mcp_servers:
open_scaffold:
command: "npx"
args: ["-y", "open-scaffold@latest", "mcp", "serve", "--repo", "/caminho/absoluto/do/repo"]
tools:
include:
- list_plans
- get_plan
- get_mission
- list_evidence
- get_evidence
- get_status
- search_plans
- list_amendments
- get_handoff
- analyze_loop
- gate_loop
prompts: false
Bons prompts:
Use as ferramentas MCP do Open Scaffold para compilar o pacote de passagem atual e me diga qual é a próxima ação permitida.
Inspecione os planos ativos e as notas de evidência, e depois diga se este repositório está pronto para revisão humana ou precisa de outra tentativa.
Notas de fronteira:
- O MCP do Open Scaffold é local em primeiro lugar e somente leitura por padrão.
- As ferramentas de escrita dele exigem que o servidor tenha subido com
--allow-write; não habilite isso até você querer explicitamente que o Hermes altere arquivos.osc. - O Open Scaffold registra e faz o controle de portão do trabalho; ele não autoriza o Hermes a mesclar, publicar, implantar ou subir runtimes.
- Fixe
open-scaffold@<versão>em vez de@latestse você precisa de esquemas de ferramenta reproduzíveis.
Padrão 3: assistente de triagem no GitHub
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, update_issue, search_code]
prompts: false
resources: false
Bons prompts:
Liste as issues abertas sobre MCP, agrupe por tema e escreva uma issue de alta qualidade para o bug mais comum.
Busque no repositório os usos de _discover_and_register_server e explique como as ferramentas MCP são registradas.
Padrão 4: assistente de API interna
mcp_servers:
internal_api:
url: "https://mcp.internal.example.com"
headers:
Authorization: "Bearer ***"
tools:
include: [list_customers, get_customer, list_invoices]
resources: false
prompts: false
Bons prompts:
Procure o cliente ACME Corp e resuma a atividade recente de faturas.
Este é o tipo de lugar em que uma lista estrita de permitidos é muito melhor que uma lista de exclusão.
Padrão 4: servidores de documentação / conhecimento
Alguns servidores MCP expõem prompts ou recursos que se parecem mais com ativos de conhecimento compartilhado que com ações diretas.
mcp_servers:
docs:
url: "https://mcp.docs.example.com"
tools:
prompts: true
resources: true
Bons prompts:
Liste os recursos MCP disponíveis no servidor de documentação, depois leia o guia de integração e resuma.
Liste os prompts expostos pelo servidor de documentação e me diga quais ajudariam na resposta a incidentes.
Tutorial: configuração de ponta a ponta com filtragem
Aqui vai uma progressão prática.
Fase 1: acrescente o MCP do GitHub com uma lista de permitidos apertada
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, search_code]
prompts: false
resources: false
Inicie o Hermes e peça:
Busque na base de código as referências a MCP e resuma os principais pontos de integração.
Fase 2: expanda só quando precisar
Se depois você também precisar atualizar issues:
tools:
include: [list_issues, create_issue, update_issue, search_code]
Depois recarregue:
/reload-mcp
Fase 3: acrescente um segundo servidor com outra política
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, update_issue, search_code]
prompts: false
resources: false
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projeto"]
Agora o Hermes pode combinar os dois:
Inspecione os arquivos do projeto local e depois crie uma issue no GitHub resumindo o bug que você encontrar.
É aí que o MCP fica poderoso: fluxos entre vários sistemas sem mudar o núcleo do Hermes.
Recomendações de uso seguro
Prefira listas de permitidos para sistemas perigosos
Para qualquer coisa financeira, voltada para o cliente ou destrutiva:
- use
tools.include - comece com o menor conjunto possível
Desligue os utilitários que você não usa
Se você não quer o modelo navegando pelos recursos/prompts que o servidor oferece, desligue:
tools:
resources: false
prompts: false
Mantenha os servidores com escopo estreito
Exemplos:
- servidor de sistema de arquivos com raiz num único diretório de projeto, não no seu diretório pessoal inteiro
- servidor de git apontado para um único repositório
- servidor de API interna com exposição de ferramentas voltada para leitura por padrão
Recarregue depois de mudanças na configuração
/reload-mcp
Faça isso depois de mudar:
- listas de include/exclude
- flags de habilitação
- interruptores de resources/prompts
- cabeçalhos de autenticação / variáveis de ambiente
Diagnóstico por sintoma
"O servidor conecta, mas as ferramentas que eu esperava não estão lá"
Causas possíveis:
- filtradas pelo
tools.include - excluídas pelo
tools.exclude - invólucros utilitários desligados por
resources: falseouprompts: false - o servidor não suporta recursos/prompts de verdade
"O servidor está configurado, mas nada carrega"
Confira:
- se não sobrou um
enabled: falsena configuração - se o comando/runtime existe (
npx,uvxetc.) - se o endpoint HTTP está alcançável
- se as variáveis de ambiente ou os cabeçalhos de autenticação estão certos
"Por que eu vejo menos ferramentas do que o servidor MCP anuncia?"
Porque o Hermes agora respeita a sua política por servidor e faz o registro ciente das capacidades. Isso é esperado, e em geral desejável.
"Como eu removo um servidor MCP sem apagar a configuração?"
Use:
enabled: false
Isso mantém a configuração ali, mas impede a conexão e o registro.
Primeiras configurações de MCP recomendadas
Bons primeiros servidores para a maioria das pessoas:
- sistema de arquivos
- git
- GitHub
- servidores MCP de fetch / documentação
- uma API interna bem estreita
Primeiros servidores nada bons:
- sistemas de negócio gigantes, com muitas ações destrutivas e sem filtragem
- qualquer coisa que você não entende bem o suficiente para restringir