mcpField
M
mcp-cli

mcp-cli

github.com/obraエージェントワークフロー435480 回インストール22 週間前に更新
リポジトリ

mcp-cli について

mcp-cli は、`mcp` コマンドラインで MCP サーバーを必要なときに調べて呼び出す方法をまとめたエージェントスキルです。常設の連携設定なしで、機能の確認、ツール呼び出し、認証、エイリアス、アクセス制限を扱います。

主な機能

  1. 01ツール、リソース、プロンプトの検出
  2. 02JSON パラメーターでのツール呼び出し
  3. 03stdio、HTTP、SSE 接続
  4. 04サーバーエイリアスと認証の設定
  5. 05guard ルールによるアクセス制限

活用シーン

  1. 01利用前の MCP サーバー機能の確認
  2. 02MCP サーバーへの単発呼び出し
  3. 03サーバーのテストや問題調査
  4. 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 は初期化を自動的に待ちます。

アクセス許可が拒否されました

ファイルシステムサーバーの場合、許可されたディレクトリのパスが正しく、アクセス可能であることを確認してください。

コメント