/ ディレクトリ / プレイグラウンド / mcptools
● コミュニティ f ⚡ 即起動

mcptools

作者 f · f/mcptools

MCP開発者のための万能ツール — あらゆるMCPサーバーの検査、呼び出し、モック、プロキシ、アクセス制御をCLIで実現します。

mcptools(f/mcptools)は、stdio、HTTP、SSEを介してMCPサーバーとやり取りするためのGo製CLIです。サーバー上のツール一覧の取得、アドホックな呼び出し、テスト用モックサーバーの起動、シェルスクリプトのMCPツール化、guardによるアクセスポリシーの適用などに使用できます。MCPエコシステム向けのcurl + jq + mitmproxyとお考えください。

なぜ使うのか

主な機能

ライブデモ

実際の動作

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

mcptoolsを使ったMCPサーバーのデバッグ方法

👤 MCPサーバー開発者 ⏱ ~15 min intermediate

使うタイミング: MCPがClaude Desktopで動いたり動かなかったりし、サイレントに失敗する場合 — 生のワイヤトラフィックを確認する必要があるとき。

前提条件
  • mcptoolsがインストール済みであること — brew install f/mcptools/mcp or go install github.com/f/mcptools/cmd/mcp@latest
フロー
  1. サーバー上のツール一覧を取得する
    mcp tools --transport stdio -- node ./my-server.jsを実行し、ツール名とスキーマを確認してください。✓ コピーしました
    → 正常な一覧が表示される。空の場合、サーバーがツールを正しくアドバタイズしていない
  2. 特定のツールを生の引数で呼び出す
    mcp call my_tool --params '{"x":1}' -- node ./my-server.jsを実行し、JSONレスポンスを確認してください。✓ コピーしました
    → ツールの出力が期待されるスキーマと一致する
  3. インタラクティブシェルを起動する
    mcp shell -- node ./my-server.jsを実行し、手動でツールを呼び出してください。✓ コピーしました
    → ツールのタブ補完が使えるREPLが表示される

結果: Claudeが見ているものとまったく同じものを確認できます。Claude上でしか再現しなかったバグがここで可視化されます。

注意点
  • サーバーがstdoutにログを出力し、JSON-RPCストリームが壊れる — すべてのログをstderrに出力してください。mcptoolsはこれを検出します — JSONパースエラーが文字化けしている場合がヒントです
  • ツールスキーマがサポートされていないJSON Schemaキーワードを使用している — コアのdraft-07に準拠してください。一部のクライアントは$refallOfなどを拒否します

MCPクライアントテスト用にMCPサーバーをモックする

👤 クライアント開発者 ⏱ ~20 min intermediate

使うタイミング: CIが実際のSentry/GitHubサーバーに依存すべきではない場合 — 決定論的なモックが必要なとき。

フロー
  1. モック仕様を作成する
    フェイクしたいツールと定型レスポンスを記述した./mock.yamlを作成してください。✓ コピーしました
    → ツール名と出力テンプレートを記述したYAML
  2. mcp mockを実行する
    mcp mock --config ./mock.yaml --transport stdioを実行し、クライアントをそこに接続してください。✓ コピーしました
    → クライアントにツール一覧が表示され、呼び出すと定型データが返される

結果: エアギャップ環境のCIでも通る密閉型テストが実現します。

サーバーを書かずにシェルコマンドをMCPツールとして公開する

👤 運用担当者、DIYハッカー ⏱ ~10 min beginner

使うタイミング: 便利なシェルスクリプトをClaudeから呼び出したいが、本格的なMCPサーバーを書くのは大げさに感じるとき。

フロー
  1. スクリプトをラップする
    mcp proxy register disk_usage --command 'df -h'を実行し、アドバタイズされていることを確認してください。✓ コピーしました
    → ツールdisk_usageが登録された
  2. Claudeをmcp proxyに接続する
    ClaudeのmcpServersにmcp proxy serveを設定してください。✓ コピーしました
    → Claudeがdisk_usageを呼び出してdfの出力を取得できる

結果: コードなしで素早い自動化用MCPツールを作成できます。

注意点
  • 無制限のシェル公開は非常に危険mcp guardで特定のコマンドをホワイトリストに登録してください。bash -cは絶対に公開しないこと

mcptools guardで上流MCPに許可/拒否ポリシーを適用する

👤 サードパーティMCPを利用するセキュリティ意識の高いチーム ⏱ ~20 min advanced

使うタイミング: GitHub MCPの読み取りは信頼するが、エージェントにIssueの作成やブランチの削除をさせたくないとき。

フロー
  1. ポリシーを作成する
    githubサーバー上でlist_*get_*ツールを許可し、それ以外をすべて拒否するguardポリシーを作成してください。✓ コピーしました
    → 明示的なルールが記述されたポリシーファイル
  2. guardを実行する
    mcp guard --policy ./policy.yaml -- npx -y @modelcontextprotocol/server-githubを実行し、Claudeをサーバーではなくguardに接続してください。✓ コピーしました
    → 拒否された呼び出しは明確なエラーを返し、許可された呼び出しはプロキシされる

結果: 強力なサーバーの前に読み取り専用のファサードを配置 — より安全なデフォルト設定を実現します。

組み合わせ

他のMCPと組み合わせて10倍の力を

mcptools + hyper

Claudeに接続する前に、mcp shellでhyper-mcpのプラグイン読み込みをデバッグする

mcp shellを使って、hyper-mcpホスト上のプラグイン一覧を取得し、各ツールをテスト呼び出ししてください。✓ コピーしました
mcptools + claude-code

Claude Codeコンフィグ内のすべてのMCPサーバーをmcp toolsで検証する

~/.claude.json内の各サーバーに対してmcp toolsを実行し、起動して空でないツール一覧をアドバタイズしていることを確認してください。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
mcp tools --transport <stdio|http|sse>, -- <server-cmd> サーバーの公開インターフェースを検査する 0
mcp call <tool-name> --params '<json>' -- <server-cmd> クライアントなしでアドホックに呼び出す 1 tool call
mcp shell -- <server-cmd> 探索的なデバッグを行う 0
mcp mock --config <yaml> CI/クライアントテストに使用する 0
mcp proxy register <name> --command '<shell>'; serve コードなしでシェルをMCPにラップする 0
mcp guard --policy <yaml> -- <server-cmd> 上流サーバーに許可/拒否ポリシーを適用する 0

コストと制限

運用コスト

APIクォータ
なし — ローカルCLI
呼び出しあたりのトークン
該当なし(MCP自体ではない)
金額
無料、MITライセンス
ヒント
--format json | jqを使ってCIでのチェックを自動化してください

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: プロキシ先のサーバーにパススルーされます。mcptools自体は何も保存しません
データ送信先: プロキシ/ガード対象のサーバーの通信先にのみ送信されます

トラブルシューティング

よくあるエラーと対処法

`mcp tools`が無限にハングする

サーバーがstdoutにログを出力し、ハンドシェイクが壊れています。サーバーログをstderrにリダイレクトしてください

確認: mcp tools --timeout 5s -- <cmd>
`go install`後にバイナリが見つからない

$GOPATH/binがPATHに含まれていることを確認してください

確認: which mcp
guardポリシーが何にもマッチしない

ポリシーのツール名は完全一致(大文字小文字を区別)である必要があります。まずmcp toolsでツール名を確認してください

代替案

mcptools 他との比較

代替案代わりに使う場面トレードオフ
MCP InspectorGUIを好み、ローカルWebアプリの実行に抵抗がない場合より重量級。CLIほどスクリプト化しやすくない
Raw jsonrpc via stdioプロトコルレベルの問題を深くデバッグする場合冗長。mcptoolsはハンドシェイクを自動で処理してくれる

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る