cMCP について
cMCPは、ローカルまたはリモートのMCPサーバーのメソッドを呼び出すコマンドラインクライアントです。複数の通信方式に対応し、設定ファイルでサーバーを管理できます。
主な機能
- 01STDIO、HTTP、SSEで接続
- 02ツールの一覧表示と呼び出し
- 03リソースとテンプレートの読み取り
- 04プロンプトの一覧表示と取得
- 05パラメーター、環境変数、HTTPヘッダーの指定
活用シーン
- 01サーバーが提供するツールやリソースの確認
- 02コマンドラインからのMCPツール呼び出し
- 03設定済みサーバーの切り替え
MCP 対応
MCPクライアントとして、STDIO、HTTP、SSE経由でMCPサーバーに接続し、ツール、プロンプト、リソースの一覧表示や呼び出しを行います。MCP JSON設定のサーバー定義も利用できます。
詳細
cMCP

cmcp は、MCP サーバーとのやり取りを支援するコマンドラインユーティリティです。基本的には、MCP サーバー向けの curl です。
インストール
pip install cmcp
使い方
STDIO
STDIO サーバーとやり取りします:
cmcp COMMAND METHOD
必須パラメーターを追加します:
cmcp COMMAND METHOD param1=value param2:='{"arg1": "value"}'
必須の環境変数を追加します:
cmcp COMMAND METHOD ENV_VAR1:value ENV_VAR2:value param1=value param2:='{"arg1": "value"}'
HTTP(または SSE)
HTTP(または SSE)サーバーとやり取りします:
cmcp URL METHOD
必須パラメーターを追加します:
cmcp URL METHOD param1=value param2:='{"arg1": "value"}'
必須の HTTP ヘッダーを追加します:
cmcp URL METHOD Header1:value Header2:value param1=value param2:='{"arg1": "value"}'
詳細モード
詳細モードを有効にすると、JSON-RPC リクエストとレスポンスが表示されます:
cmcp -v COMMAND_or_URL METHOD
クイックスタート
次の MCP サーバーを使用します(こちらを参照):
# server.py
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP("Demo")
# Add a prompt
@mcp.prompt()
def review_code(code: str) -> str:
return f"Please review this code:\n\n{code}"
# Add a static config resource
@mcp.resource("config://app")
def get_config() -> str:
"""Static configuration data"""
return "App configuration here"
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
STDIO トランスポート
プロンプトを一覧表示します:
cmcp 'mcp run server.py' prompts/list
プロンプトを取得します:
cmcp 'mcp run server.py' prompts/get name=review_code arguments:='{"code": "def greet(): pass"}'
リソースを一覧表示します:
cmcp 'mcp run server.py' resources/list
リソースを読み取ります:
cmcp 'mcp run server.py' resources/read uri=config://app
リソーステンプレートを一覧表示します:
cmcp 'mcp run server.py' resources/templates/list
ツールを一覧表示します:
cmcp 'mcp run server.py' tools/list
ツールを呼び出します:
cmcp 'mcp run server.py' tools/call name=add arguments:='{"a": 1, "b": 2}'
HTTP トランスポート
上記の MCP サーバーを HTTP トランスポートで実行します:
mcp run server.py -t streamable-http
プロンプトを一覧表示します:
cmcp http://localhost:8000 prompts/list
# or `cmcp http://localhost:8000/mcp prompts/list`
プロンプトを取得します:
cmcp http://localhost:8000 prompts/get name=review_code arguments:='{"code": "def greet(): pass"}'
リソースを一覧表示します:
cmcp http://localhost:8000 resources/list
リソースを読み取ります:
cmcp http://localhost:8000 resources/read uri=config://app
リソーステンプレートを一覧表示します:
cmcp http://localhost:8000 resources/templates/list
ツールを一覧表示します:
cmcp http://localhost:8000 tools/list
ツールを呼び出します:
cmcp http://localhost:8000 tools/call name=add arguments:='{"a": 1, "b": 2}'
SSE トランスポート(非推奨)
上記の MCP サーバーを SSE トランスポートで実行します:
mcp run server.py -t sse
プロンプトを一覧表示します:
cmcp http://localhost:8000/sse prompts/list
プロンプトを取得します:
cmcp http://localhost:8000/sse prompts/get name=review_code arguments:='{"code": "def greet(): pass"}'
リソースを一覧表示します:
cmcp http://localhost:8000/sse resources/list
リソースを読み取ります:
cmcp http://localhost:8000/sse resources/read uri=config://app
リソーステンプレートを一覧表示します:
cmcp http://localhost:8000/sse resources/templates/list
ツールを一覧表示します:
cmcp http://localhost:8000/sse tools/list
ツールを呼び出します:
cmcp http://localhost:8000/sse tools/call name=add arguments:='{"a": 1, "b": 2}'
mcp.json の使用(応用)
使いやすさのため、毎回コマンドや URL 全体を入力する代わりに、設定ファイルを使って MCP サーバーを管理できます。デフォルトでは、cmcp は .cmcp/mcp.json(現在のディレクトリ内)または ~/.cmcp/mcp.json(ホームディレクトリ内)を検索します。
設定は標準の MCP JSON 形式に従います。この形式は、Cursor、Claude Code、FastMCP やその他の MCP クライアントでも使用されています。
設定ファイルの例:
{
"mcpServers": {
"local-server": {
"command": "python",
"args": ["mcp-server.py"],
"env": {
"API_KEY": "value"
}
},
"remote-server": {
"url": "http://localhost:3000/mcp",
"headers": {
"API_KEY": "value"
}
}
}
}
設定済みのサーバーを使用するには、その名前の前に : を付けます:
# Use the local-server from config
cmcp :local-server tools/list
# Use the remote-server from config
cmcp :remote-server tools/call name=add arguments:='{"a": 1, "b": 2}'
# Use a custom config file
cmcp --config /path/to/config.json :local-server tools/list
関連プロジェクト
cA2A:A2A エージェントとやり取りするためのコマンドラインユーティリティです。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。