/ Diretório / Playground / mcptools
● Comunidade f ⚡ Instantâneo

mcptools

por f · f/mcptools

The Swiss Army knife for MCP developers — CLI to inspect, call, mock, proxy, and guard any MCP server.

mcptools (f/mcptools) is a Go CLI for interacting with MCP servers over stdio, HTTP, or SSE. Use it to list tools on a server, call them ad hoc, spin up mocks for testing, wrap shell scripts as MCP tools, or enforce access policies via guard. Think curl + jq + mitmproxy for the MCP ecosystem.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

mcptools.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcptools": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/f/mcptools"
      ],
      "_inferred": true
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcptools": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/f/mcptools"
      ],
      "_inferred": true
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcptools": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/f/mcptools"
      ],
      "_inferred": true
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcptools": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/f/mcptools"
      ],
      "_inferred": true
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcptools",
      "command": "TODO",
      "args": [
        "See README: https://github.com/f/mcptools"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "mcptools": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/f/mcptools"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add mcptools -- TODO 'See README: https://github.com/f/mcptools'

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: mcptools

How to debug an MCP server with mcptools

👤 MCP server authors ⏱ ~15 min intermediate

Quando usar: Your MCP works in Claude Desktop sometimes but fails silently — you need to see the raw wire traffic.

Pré-requisitos
  • mcptools installed — brew install f/mcptools/mcp or go install github.com/f/mcptools/cmd/mcp@latest
Fluxo
  1. List tools on your server
    Run mcp tools --transport stdio -- node ./my-server.js. Check tool names and schemas.✓ Copiado
    → Clean list; if empty, the server didn't advertise tools correctly
  2. Call a specific tool with raw args
    Run mcp call my_tool --params '{"x":1}' -- node ./my-server.js and inspect the JSON response.✓ Copiado
    → Tool output matches expected schema
  3. Start an interactive shell
    Run mcp shell -- node ./my-server.js and call tools manually.✓ Copiado
    → REPL with tab-complete over your tools

Resultado: You see exactly what Claude sees — bugs that only reproduce in Claude become visible here.

Armadilhas
  • Server logs to stdout, corrupting the JSON-RPC stream — Route all logs to stderr. mcptools surfaces this — the hint is garbled JSON parse errors
  • Tool schema uses unsupported JSON Schema keywords — Stick to core draft-07; some clients reject $ref, allOf, etc.

Mock an MCP server to test an MCP client

👤 Client authors ⏱ ~20 min intermediate

Quando usar: Your CI shouldn't depend on a real Sentry/GitHub server — you need a deterministic mock.

Fluxo
  1. Write a mock spec
    Create ./mock.yaml listing the tools you want to fake with canned responses.✓ Copiado
    → YAML describing tool names + output templates
  2. Run mcp mock
    Run mcp mock --config ./mock.yaml --transport stdio and point your client at it.✓ Copiado
    → Client sees a fully populated tool list; calls return canned data

Resultado: Hermetic tests that pass on airgapped CI.

Expose a shell command as an MCP tool without writing a server

👤 Ops, DIY hackers ⏱ ~10 min beginner

Quando usar: You have a handy shell script and want Claude to call it — but writing a full MCP server feels overkill.

Fluxo
  1. Wrap the script
    Run mcp proxy register disk_usage --command 'df -h' and confirm it's advertised.✓ Copiado
    → Tool disk_usage registered
  2. Point Claude at mcp proxy
    Configure Claude's mcpServers with mcp proxy serve.✓ Copiado
    → Claude can call disk_usage and gets the df output

Resultado: Zero-code MCP tools for quick automations.

Armadilhas
  • Exposing unrestricted shell is a foot-gun — Use mcp guard to whitelist specific commands; never expose bash -c

Enforce allow/deny policies on an upstream MCP with mcptools guard

👤 Security-minded teams using third-party MCPs ⏱ ~20 min advanced

Quando usar: You trust GitHub MCP for reads but don't want agents to create issues or delete branches.

Fluxo
  1. Write a policy
    Create a guard policy that allows list_* and get_* tools but denies everything else on the github server.✓ Copiado
    → Policy file with explicit rules
  2. Run guard
    Run mcp guard --policy ./policy.yaml -- npx -y @modelcontextprotocol/server-github and point Claude at guard instead of the server directly.✓ Copiado
    → Denied calls return a clear error, allowed calls proxy through

Resultado: A read-only façade in front of a powerful server — safer defaults.

Combinações

Combine com outros MCPs para 10× de alavancagem

mcptools + hyper

Debug hyper-mcp plugin loading with mcp shell before wiring it into Claude

Use mcp shell to list plugins on my hyper-mcp host and test-call each tool.✓ Copiado
mcptools + claude-code

Validate every MCP server in your Claude Code config with mcp tools

For each server in ~/.claude.json, run mcp tools to verify it starts and advertises a non-empty tool list.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
mcp tools --transport <stdio|http|sse>, -- <server-cmd> Inspect a server's surface 0
mcp call <tool-name> --params '<json>' -- <server-cmd> Ad-hoc call without a client 1 tool call
mcp shell -- <server-cmd> Exploratory debugging 0
mcp mock --config <yaml> CI / client testing 0
mcp proxy register <name> --command '<shell>'; serve Wrap shell into MCP without code 0
mcp guard --policy <yaml> -- <server-cmd> Apply allow/deny to an upstream 0

Custo e limites

O que custa rodar

Cota de API
None — local CLI
Tokens por chamada
N/A (not an MCP itself)
Monetário
Free, MIT
Dica
Use --format json | jq to automate checks in CI

Segurança

Permissões, segredos, alcance

Armazenamento de credenciais: Passes through to the proxied server; mcptools itself stores nothing
Saída de dados: Only where the proxied/guarded server goes

Solução de problemas

Erros comuns e correções

`mcp tools` hangs forever

Server is writing logs to stdout, corrupting the handshake. Redirect server logs to stderr

Verificar: mcp tools --timeout 5s -- <cmd>
Binary not found after `go install`

Ensure $GOPATH/bin is on your PATH

Verificar: which mcp
Guard policy matches nothing

Policy names must match tool names exactly (case-sensitive). Use mcp tools first to confirm names

Alternativas

mcptools vs. outros

AlternativaQuando usarTroca
MCP InspectorYou prefer a GUI and are okay running a local web appHeavier; less scriptable than a CLI
Raw jsonrpc via stdioYou're deep-debugging a protocol issueVerbose; mcptools handles handshake for you

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills