/ Directorio / Playground / mcptools
● Comunidad f ⚡ Instantáneo

mcptools

por f · f/mcptools

La navaja suiza para desarrolladores de MCP — CLI para inspeccionar, llamar, simular, hacer proxy y proteger cualquier servidor MCP.

mcptools (f/mcptools) es una CLI en Go para interactuar con servidores MCP mediante stdio, HTTP o SSE. Úsala para listar herramientas en un servidor, llamarlas de forma puntual, crear mocks para pruebas, envolver scripts de shell como herramientas MCP o imponer políticas de acceso mediante guard. Piensa en curl + jq + mitmproxy para el ecosistema MCP.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

mcptools.replay ▶ listo
0/0

Instalar

Elige tu 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
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

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

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

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

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

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

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

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

Continue usa un array de objetos de servidor en lugar de un mapa.

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

Añádelo a context_servers. Zed recarga en caliente al guardar.

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

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: mcptools

Cómo depurar un servidor MCP con mcptools

👤 Autores de servidores MCP ⏱ ~15 min intermediate

Cuándo usarlo: Tu MCP funciona en Claude Desktop a veces pero falla silenciosamente — necesitas ver el tráfico de protocolo bruto.

Requisitos previos
  • mcptools instalado — brew install f/mcptools/mcp o go install github.com/f/mcptools/cmd/mcp@latest
Flujo
  1. Listar herramientas en tu servidor
    Ejecuta mcp tools --transport stdio -- node ./my-server.js. Comprueba los nombres de las herramientas y esquemas.✓ Copiado
    → Lista limpia; si está vacía, el servidor no anunció correctamente las herramientas
  2. Llamar una herramienta específica con argumentos brutos
    Ejecuta mcp call my_tool --params '{"x":1}' -- node ./my-server.js e inspecciona la respuesta JSON.✓ Copiado
    → La salida de la herramienta coincide con el esquema esperado
  3. Iniciar un shell interactivo
    Ejecuta mcp shell -- node ./my-server.js y llama herramientas manualmente.✓ Copiado
    → REPL con autocompletado de tabulador sobre tus herramientas

Resultado: Ves exactamente lo que Claude ve — los errores que solo se reproducen en Claude se hacen visibles aquí.

Errores comunes
  • El servidor escribe logs en stdout, corrompiendo el flujo JSON-RPC — Enruta todos los logs a stderr. mcptools lo expone — la pista son errores de análisis JSON corrupto
  • El esquema de la herramienta usa palabras clave de JSON Schema no soportadas — Mantente en draft-07 principal; algunos clientes rechazan $ref, allOf, etc.

Simular un servidor MCP para probar un cliente MCP

👤 Autores de clientes ⏱ ~20 min intermediate

Cuándo usarlo: Tu CI no debería depender de un servidor real de Sentry/GitHub — necesitas un mock determinista.

Flujo
  1. Escribir una especificación de mock
    Crea ./mock.yaml listando las herramientas que quieres fingir con respuestas predefinidas.✓ Copiado
    → YAML describiendo nombres de herramientas + plantillas de salida
  2. Ejecutar mcp mock
    Ejecuta mcp mock --config ./mock.yaml --transport stdio y apunta tu cliente hacia él.✓ Copiado
    → El cliente ve una lista de herramientas completamente poblada; las llamadas devuelven datos predefinidos

Resultado: Pruebas hermética que pasan en CI aislada.

Exponer un comando de shell como una herramienta MCP sin escribir un servidor

👤 Ops, hackers DIY ⏱ ~10 min beginner

Cuándo usarlo: Tienes un script de shell útil y quieres que Claude lo llame — pero escribir un servidor MCP completo te parece excesivo.

Flujo
  1. Envolver el script
    Ejecuta mcp proxy register disk_usage --command 'df -h' y confirma que se anuncie.✓ Copiado
    → Herramienta disk_usage registrada
  2. Apuntar Claude a mcp proxy
    Configura mcpServers de Claude con mcp proxy serve.✓ Copiado
    → Claude puede llamar disk_usage y obtiene la salida de df

Resultado: Herramientas MCP sin código para automatizaciones rápidas.

Errores comunes
  • Exponer un shell sin restricciones es arriesgado — Usa mcp guard para agregar a la lista blanca comandos específicos; nunca expongas bash -c

Imponer políticas de permitir/denegar en un MCP ascendente con mcptools guard

👤 Equipos conscientes de seguridad que usan MCPs de terceros ⏱ ~20 min advanced

Cuándo usarlo: Confías en MCP de GitHub para lecturas pero no quieres que agentes creen problemas o eliminen ramas.

Flujo
  1. Escribir una política
    Crea una política de guard que permita herramientas list_* y get_* pero deniegue todo lo demás en el servidor github.✓ Copiado
    → Archivo de política con reglas explícitas
  2. Ejecutar guard
    Ejecuta mcp guard --policy ./policy.yaml -- npx -y @modelcontextprotocol/server-github y apunta Claude a guard en lugar del servidor directamente.✓ Copiado
    → Las llamadas denegadas devuelven un error claro, las llamadas permitidas pasan a través del proxy

Resultado: Una fachada de solo lectura frente a un servidor potente — valores por defecto más seguros.

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

mcptools + hyper

Depurar la carga de plugins hyper-mcp con mcp shell antes de conectarlo a Claude

Usa mcp shell para listar plugins en mi host hyper-mcp y prueba-llama cada herramienta.✓ Copiado
mcptools + claude-code

Valida cada servidor MCP en tu configuración de Claude Code con mcp tools

Para cada servidor en ~/.claude.json, ejecuta mcp tools para verificar que inicia y anuncia una lista de herramientas no vacía.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
mcp tools --transport <stdio|http|sse>, -- <server-cmd> Inspeccionar la superficie de un servidor 0
mcp call <tool-name> --params '<json>' -- <server-cmd> Llamada puntual sin cliente 1 llamada de herramienta
mcp shell -- <server-cmd> Depuración exploratoria 0
mcp mock --config <yaml> Pruebas de CI / cliente 0
mcp proxy register <name> --command '<shell>'; serve Envolver shell en MCP sin código 0
mcp guard --policy <yaml> -- <server-cmd> Aplicar permitir/denegar a un servidor ascendente 0

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Ninguno — CLI local
Tokens por llamada
N/A (no es un MCP en sí)
Monetario
Gratuito, MIT
Consejo
Usa --format json | jq para automatizar comprobaciones en CI

Seguridad

Permisos, secretos, alcance

Almacenamiento de credenciales: Se pasa al servidor del proxy; mcptools en sí no almacena nada
Salida de datos: Solo hacia donde va el servidor del proxy/protegido

Resolución de problemas

Errores comunes y soluciones

`mcp tools` se cuelga por siempre

El servidor está escribiendo logs en stdout, corrompiendo el handshake. Redirige los logs del servidor a stderr

Verificar: mcp tools --timeout 5s -- <cmd>
Binario no encontrado después de `go install`

Asegúrate de que $GOPATH/bin esté en tu PATH

Verificar: which mcp
La política de guard no coincide con nada

Los nombres de la política deben coincidir exactamente con los nombres de las herramientas (sensible a mayúsculas). Usa mcp tools primero para confirmar los nombres

Alternativas

mcptools vs otros

AlternativaCuándo usarlaContrapartida
MCP InspectorPrefieres una GUI y estás bien ejecutando una aplicación web localMás pesado; menos scriptable que una CLI
JSON-RPC bruto a través de stdioEstás depurando profundamente un problema de protocoloVerboso; mcptools maneja el handshake por ti

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills