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 MCPAs 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):
{
"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:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
}
}
}SSE (Server-Sent Events)
Para servidores HTTP que fazem streaming:
{
"mcpServers": {
"meu-api": {
"url": "https://meu-servidor.com/mcp/sse",
"headers": {
"Authorization": "Bearer ${TOKEN}"
}
}
}
}HTTP (REST)
Para servidores com endpoints REST:
{
"mcpServers": {
"rest-server": {
"url": "https://meu-servidor.com/mcp",
"transport": "http"
}
}
}WebSocket
{
"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}:
{
"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:
{
"mcpAllowlist": {
"serverName": ["filesystem", "github"],
"serverCommand": ["node", "npx"]
},
"mcpDenylist": {
"serverUrl": ["http://servidor-inseguro.com"]
}
}Critérios de matching:
serverName— nome da chave emmcpServersserverCommand— primeiro elemento do arraycommandserverUrl— URL para transports SSE/HTTP/WebSocket
Habilitar e desabilitar servidores
/mcp enable nome-do-servidor
/mcp disable nome-do-servidorServidores desabilitados permanecem na configuração mas não são carregados.
Diagnóstico
/mcpExibe o status de todas as conexões MCP, ferramentas carregadas e possíveis erros de conexão.
Exemplos de servidores populares
Filesystem
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projetos"]
}
}
}GitHub
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
}
}
}PostgreSQL
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": { "DATABASE_URL": "${DATABASE_URL}" }
}
}
}Brave Search
{
"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
verboo --mcp
# ou, ao compilar from source:
node dist/cli.mjs --mcpO 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:
{
"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:
{
"mcpServers": {
"grande-servidor": {
"command": "node",
"args": ["servidor.js"],
"defer_loading": true
}
}
}