/ 디렉터리 / 플레이그라운드 / mcptools
● 커뮤니티 f ⚡ 바로 사용

mcptools

제작: 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.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

mcptools.replay ▶ 준비됨
0/0

설치

클라이언트 선택

~/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
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config 열기. 저장 후 앱 재시작.

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

Cursor는 Claude Desktop과 동일한 mcpServers 스키마 사용. 프로젝트 설정이 전역보다 우선.

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

Cline 사이드바의 MCP Servers 아이콘 클릭 후 "Edit Configuration" 선택.

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

Claude Desktop과 같은 형식. Windsurf 재시작 후 적용.

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

Continue는 맵이 아닌 서버 오브젝트 배열 사용.

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

context_servers에 추가. 저장 시 Zed가 핫 리로드.

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

한 줄 명령. claude mcp list로 확인, claude mcp remove로 제거.

사용 사례

실전 활용법: mcptools

How to debug an MCP server with mcptools

👤 MCP server authors ⏱ ~15 min intermediate

언제 쓸까: Your MCP works in Claude Desktop sometimes but fails silently — you need to see the raw wire traffic.

사전 조건
  • mcptools installed — brew install f/mcptools/mcp or go install github.com/f/mcptools/cmd/mcp@latest
흐름
  1. List tools on your server
    Run mcp tools --transport stdio -- node ./my-server.js. Check tool names and schemas.✓ 복사됨
    → 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.✓ 복사됨
    → Tool output matches expected schema
  3. Start an interactive shell
    Run mcp shell -- node ./my-server.js and call tools manually.✓ 복사됨
    → REPL with tab-complete over your tools

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

함정
  • 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

언제 쓸까: Your CI shouldn't depend on a real Sentry/GitHub server — you need a deterministic mock.

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

결과: 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

언제 쓸까: You have a handy shell script and want Claude to call it — but writing a full MCP server feels overkill.

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

결과: Zero-code MCP tools for quick automations.

함정
  • 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

언제 쓸까: You trust GitHub MCP for reads but don't want agents to create issues or delete branches.

흐름
  1. Write a policy
    Create a guard policy that allows list_* and get_* tools but denies everything else on the github server.✓ 복사됨
    → 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.✓ 복사됨
    → Denied calls return a clear error, allowed calls proxy through

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

조합

다른 MCP와 조합해 10배 효율

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.✓ 복사됨
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.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
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

비용 및 제한

운영 비용

API 쿼터
None — local CLI
호출당 토큰
N/A (not an MCP itself)
금액
Free, MIT
Use --format json | jq to automate checks in CI

보안

권한, 시크릿, 파급범위

자격 증명 저장: Passes through to the proxied server; mcptools itself stores nothing
데이터 외부 송신: Only where the proxied/guarded server goes

문제 해결

자주 발생하는 오류와 해결

`mcp tools` hangs forever

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

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

Ensure $GOPATH/bin is on your PATH

확인: which mcp
Guard policy matches nothing

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

대안

mcptools 다른 것과 비교

대안언제 쓰나단점/장점
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

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기