mcp-cli について
mcp-cli は、`mcp` コマンドラインで MCP サーバーを必要なときに調べて呼び出す方法をまとめたエージェントスキルです。常設の連携設定なしで、機能の確認、ツール呼び出し、認証、エイリアス、アクセス制限を扱います。
主な機能
- 01ツール、リソース、プロンプトの検出
- 02JSON パラメーターでのツール呼び出し
- 03stdio、HTTP、SSE 接続
- 04サーバーエイリアスと認証の設定
- 05guard ルールによるアクセス制限
活用シーン
- 01利用前の MCP サーバー機能の確認
- 02MCP サーバーへの単発呼び出し
- 03サーバーのテストや問題調査
- 04セッション内でのエイリアス再利用
MCP 対応
このスキルでは、`mcp` コマンドラインをクライアントとして使い、stdio、HTTP、SSE 経由で MCP サーバーを検出・呼び出す方法を説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ obra/ superpowers-lab --skill mcp-cliインストール後、Claude Code で/mcp-cliを入力して読み込まれたか確認します。
詳細
MCP CLI:オンデマンドでの MCP サーバー利用
mcp CLI ツールを使うと、MCP サーバーの機能を永続的な連携として事前設定することなく、動的に検出して呼び出せます。
このスキルを使う場面
次のような場合にこのスキルを使います。
- 利用を決める前に、MCP サーバーの機能を調べる
- 永続的な連携なしで、MCP サーバーを単発で呼び出す
- コンテキストウィンドウを圧迫せずに、MCP の機能にアクセスする
- MCP サーバーをテストまたはデバッグする
- 事前設定されていない MCP サーバーを使う
前提条件
mcp CLI が ~/.local/bin/mcp にインストールされている必要があります。存在しない場合は、次の手順を実行してください。
# Clone and build
cd /tmp && git clone --depth 1 https://github.com/f/mcptools.git
cd mcptools && CGO_ENABLED=0 go build -o ~/.local/bin/mcp ./cmd/mcptools
PATH にバイナリが含まれていることを必ず確認してください。
export PATH="$HOME/.local/bin:$PATH"
検出ワークフロー
ステップ 1:利用可能なツールを検出する
mcp tools <server-command>
例:
# Filesystem server
mcp tools npx -y @modelcontextprotocol/server-filesystem /path/to/allow
# Memory/knowledge graph server
mcp tools npx -y @modelcontextprotocol/server-memory
# GitHub server (requires token)
mcp tools docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
# HTTP-based server
mcp tools https://example.com/mcp
ステップ 2:リソースを検出する(対応している場合)
mcp resources <server-command>
リソースとは、サーバーが公開するデータソース(ファイル、データベースエントリなど)です。
ステップ 3:プロンプトを検出する(対応している場合)
mcp prompts <server-command>
プロンプトとは、サーバーが提供する事前定義済みのプロンプトテンプレートです。
ステップ 4:詳細情報を取得する(JSON 形式)
# For full schema details including parameter types
mcp tools --format json <server-command>
mcp tools --format pretty <server-command>
ツール呼び出し
基本構文
mcp call <tool_name> --params '<json>' <server-command>
例
ファイルを読み取る:
mcp call read_file --params '{"path": "/tmp/example.txt"}' \
npx -y @modelcontextprotocol/server-filesystem /tmp
ファイルを書き込む:
mcp call write_file --params '{"path": "/tmp/test.txt", "content": "Hello world"}' \
npx -y @modelcontextprotocol/server-filesystem /tmp
ディレクトリを一覧表示する:
mcp call list_directory --params '{"path": "/tmp"}' \
npx -y @modelcontextprotocol/server-filesystem /tmp
エンティティを作成する(メモリーサーバー):
mcp call create_entities --params '{"entities": [{"name": "Project", "entityType": "Software", "observations": ["Uses TypeScript"]}]}' \
npx -y @modelcontextprotocol/server-memory
検索する(メモリーサーバー):
mcp call search_nodes --params '{"query": "TypeScript"}' \
npx -y @modelcontextprotocol/server-memory
複雑なパラメーター
ネストされたオブジェクトや配列では、有効な JSON を指定してください。
mcp call edit_file --params '{
"path": "/tmp/file.txt",
"edits": [
{"oldText": "foo", "newText": "bar"},
{"oldText": "baz", "newText": "qux"}
]
}' npx -y @modelcontextprotocol/server-filesystem /tmp
出力形式
# Table (default, human-readable)
mcp call <tool> --params '{}' <server>
# JSON (for parsing)
mcp call <tool> --params '{}' -f json <server>
# Pretty JSON (readable JSON)
mcp call <tool> --params '{}' -f pretty <server>
リソースの読み取り
# List available resources
mcp resources <server-command>
# Read a specific resource
mcp read-resource <resource-uri> <server-command>
# Alternative syntax
mcp call resource:<resource-uri> <server-command>
プロンプトの使用
# List available prompts
mcp prompts <server-command>
# Get a prompt (may require arguments)
mcp get-prompt <prompt-name> <server-command>
# With parameters
mcp get-prompt <prompt-name> --params '{"arg": "value"}' <server-command>
サーバーエイリアス(繰り返し使う場合)
セッション中にサーバーを頻繁に使う場合:
# Create alias
mcp alias add fs npx -y @modelcontextprotocol/server-filesystem /home/user
# Use alias
mcp tools fs
mcp call read_file --params '{"path": "README.md"}' fs
# List aliases
mcp alias list
# Remove when done
mcp alias remove fs
エイリアスは ~/.mcpt/aliases.json に保存されます。
認証
HTTP Basic 認証
mcp tools --auth-user "username:password" https://api.example.com/mcp
Bearer トークン
mcp tools --auth-header "Bearer your-token-here" https://api.example.com/mcp
環境変数(Docker ベースのサーバーの場合)
mcp tools docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN="$GITHUB_TOKEN" \
ghcr.io/github/github-mcp-server
トランスポートの種類
Stdio(npx/node コマンドのデフォルト)
mcp tools npx -y @modelcontextprotocol/server-filesystem /tmp
HTTP(http/https URL を自動検出)
mcp tools https://example.com/mcp
SSE(サーバー送信イベント)
mcp tools http://localhost:3001/sse
# Or explicitly:
mcp tools --transport sse http://localhost:3001
よく使われる MCP サーバー
ファイルシステム
# Allow access to specific directory
mcp tools npx -y @modelcontextprotocol/server-filesystem /path/to/allow
メモリー(ナレッジグラフ)
mcp tools npx -y @modelcontextprotocol/server-memory
GitHub
export GITHUB_PERSONAL_ACCESS_TOKEN="your-token"
mcp tools docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
Brave Search
export BRAVE_API_KEY="your-key"
mcp tools npx -y @anthropic/mcp-server-brave-search
Puppeteer(ブラウザー自動化)
mcp tools npx -y @anthropic/mcp-server-puppeteer
ベストプラクティス
1. まず必ず検出する
ツールを呼び出す前に、mcp tools を実行して、利用可能なツールと正確なパラメータースキーマを確認してください。
2. 解析には JSON 形式を使う
結果をプログラムで処理する必要がある場合:
mcp call <tool> --params '{}' -f json <server> | jq '.field'
3. パラメーターを検証する
表形式の出力にはパラメーターのシグネチャが表示されます。次の形式に正確に合わせてください。
param:str= 文字列param:num= 数値param:bool= ブール値param:str[]= 文字列の配列[param:str]= 任意のパラメーター
4. エラーを適切に処理する
ツール呼び出しは失敗する場合があります。終了コードと標準エラーを確認してください。
if ! result=$(mcp call tool --params '{}' server 2>&1); then
echo "Error: $result"
fi
5. 複数ステップの操作にはエイリアスを使う
同じサーバーを複数回呼び出す場合:
mcp alias add tmp-server npx -y @modelcontextprotocol/server-filesystem /tmp
mcp call list_directory --params '{"path": "/tmp"}' tmp-server
mcp call read_file --params '{"path": "/tmp/file.txt"}' tmp-server
mcp alias remove tmp-server
6. Guard で機能を制限する
安全のため、アクセス可能なツールを制限してください。
# Only allow read operations
mcp guard --allow 'tools:read_*,list_*' --deny 'tools:write_*,delete_*' \
npx -y @modelcontextprotocol/server-filesystem /home
デバッグ
サーバーログを表示する
mcp tools --server-logs <server-command>
エイリアス設定を確認する
cat ~/.mcpt/aliases.json
詳細な出力
パラメーターの問題をデバッグするには、--format pretty を使って詳細な JSON 出力を表示します。
クイックリファレンス
| 操作 | コマンド |
|---|---|
| ツールを一覧表示 | mcp tools <server> |
| リソースを一覧表示 | mcp resources <server> |
| プロンプトを一覧表示 | mcp prompts <server> |
| ツールを呼び出す | mcp call <tool> --params '<json>' <server> |
| リソースを読み取る | mcp read-resource <uri> <server> |
| プロンプトを取得する | mcp get-prompt <name> <server> |
| エイリアスを追加する | mcp alias add <name> <server-command> |
| エイリアスを削除する | mcp alias remove <name> |
| JSON 出力 | -f json または -f pretty を追加 |
例:一連のワークフロー
# 1. Discover what's available
mcp tools npx -y @modelcontextprotocol/server-filesystem /home/user/project
# 2. Check for resources
mcp resources npx -y @modelcontextprotocol/server-filesystem /home/user/project
# 3. Create alias for convenience
mcp alias add proj npx -y @modelcontextprotocol/server-filesystem /home/user/project
# 4. Explore directory structure
mcp call directory_tree --params '{"path": "/home/user/project"}' proj
# 5. Read specific files
mcp call read_file --params '{"path": "/home/user/project/README.md"}' proj
# 6. Search for patterns
mcp call search_files --params '{"path": "/home/user/project", "pattern": "**/*.ts"}' proj
# 7. Clean up alias
mcp alias remove proj
トラブルシューティング
「command not found: mcp」
PATH が設定されていることを確認してください:export PATH="$HOME/.local/bin:$PATH"
JSON 解析エラー
- 特殊文字を適切にエスケープしてください
- JSON をシングルクォートで囲み、シェルによる展開の問題を避けてください
- 複雑な JSON の場合は、一時ファイルに書き込み、
--params "$(cat params.json)"を使ってください
サーバーのタイムアウト
起動に時間がかかるサーバーもあります。mcp CLI は初期化を自動的に待ちます。
アクセス許可が拒否されました
ファイルシステムサーバーの場合、許可されたディレクトリのパスが正しく、アクセス可能であることを確認してください。