Verboo

MCP — Model Context Protocol

O MCP (Model Context Protocol) é um protocolo aberto que permite que servidores externos exponham ferramentas e recursos para agentes de IA. O Verboo Code funciona tanto como cliente MCP (conectando-se a servidores externos) quanto como servidor MCP (expondo suas ferramentas para outros clientes).

Como funciona

Verboo Code (cliente)
  │
  ├── Conecta a servidores MCP configurados
  │     ├── Carrega ferramentas expostas pelo servidor
  │     └── Injeta as ferramentas no contexto do agente
  │
  └── Quando invocado como servidor:
        └── Expõe as ferramentas built-in via protocolo MCP

As ferramentas MCP aparecem ao lado das ferramentas nativas (Bash, FileRead, etc.) e têm prioridade em caso de nome duplicado.

Configurar servidores MCP

Adicione servidores MCP em settings.json (projeto) ou ~/.verboo/settings.json (global):

json
{
  "mcpServers": {
    "meu-servidor": {
      "command": "node",
      "args": ["/caminho/para/servidor.js"],
      "env": {
        "API_KEY": "${MY_API_KEY}"
      }
    }
  }
}

Ou via o comando /mcp de forma interativa.

Tipos de transport suportados

stdio (padrão)

O servidor roda como subprocesso, comunicando via stdin/stdout:

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
    }
  }
}

SSE (Server-Sent Events)

Para servidores HTTP que fazem streaming:

json
{
  "mcpServers": {
    "meu-api": {
      "url": "https://meu-servidor.com/mcp/sse",
      "headers": {
        "Authorization": "Bearer ${TOKEN}"
      }
    }
  }
}

HTTP (REST)

Para servidores com endpoints REST:

json
{
  "mcpServers": {
    "rest-server": {
      "url": "https://meu-servidor.com/mcp",
      "transport": "http"
    }
  }
}

WebSocket

json
{
  "mcpServers": {
    "ws-server": {
      "url": "ws://localhost:3001/mcp",
      "transport": "ws"
    }
  }
}

Expansão de variáveis de ambiente

Valores nas configurações MCP suportam expansão de env vars com ${VAR}:

json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

Política de allowlist e denylist

Controle quais servidores MCP são permitidos ou bloqueados:

json
{
  "mcpAllowlist": {
    "serverName": ["filesystem", "github"],
    "serverCommand": ["node", "npx"]
  },
  "mcpDenylist": {
    "serverUrl": ["http://servidor-inseguro.com"]
  }
}

Critérios de matching:

  • serverName — nome da chave em mcpServers
  • serverCommand — primeiro elemento do array command
  • serverUrl — URL para transports SSE/HTTP/WebSocket

Habilitar e desabilitar servidores

/mcp enable nome-do-servidor
/mcp disable nome-do-servidor

Servidores desabilitados permanecem na configuração mas não são carregados.

Diagnóstico

/mcp

Exibe o status de todas as conexões MCP, ferramentas carregadas e possíveis erros de conexão.

Exemplos de servidores populares

Filesystem

json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projetos"]
    }
  }
}

GitHub

json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
    }
  }
}

PostgreSQL

json
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": { "DATABASE_URL": "${DATABASE_URL}" }
    }
  }
}
json
{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": { "BRAVE_API_KEY": "${BRAVE_API_KEY}" }
    }
  }
}

Verboo Code como servidor MCP

O Verboo Code pode ser usado como servidor MCP, expondo suas ferramentas built-in (Bash, File, Web, etc.) para outros clientes MCP.

Iniciar como servidor MCP

bash
verboo --mcp
# ou, ao compilar from source:
node dist/cli.mjs --mcp

O servidor inicia no transport stdio e expõe todas as ferramentas carregadas via ListTools e CallTool.

Conectar outro cliente

Adicione o Verboo Code como servidor em qualquer cliente MCP compatível:

json
{
  "mcpServers": {
    "verboo-code": {
      "command": "verboo",
      "args": ["--mcp"]
    }
  }
}

Deduplicação de ferramentas

Quando uma ferramenta MCP tem o mesmo nome de uma ferramenta built-in, a versão MCP tem prioridade. Isso permite que servidores MCP sobrescrevam comportamentos padrão do CLI.

Deferred loading

Ferramentas MCP com muitos schemas podem ser carregadas sob demanda para não impactar o context window:

json
{
  "mcpServers": {
    "grande-servidor": {
      "command": "node",
      "args": ["servidor.js"],
      "defer_loading": true
    }
  }
}