mcpField
C
cMCP

cMCP

github.com/russellluoフレームワーク・SDK1834 週間前に更新

cMCP について

cMCPは、ローカルまたはリモートのMCPサーバーのメソッドを呼び出すコマンドラインクライアントです。複数の通信方式に対応し、設定ファイルでサーバーを管理できます。

主な機能

  1. 01STDIO、HTTP、SSEで接続
  2. 02ツールの一覧表示と呼び出し
  3. 03リソースとテンプレートの読み取り
  4. 04プロンプトの一覧表示と取得
  5. 05パラメーター、環境変数、HTTPヘッダーの指定

活用シーン

  1. 01サーバーが提供するツールやリソースの確認
  2. 02コマンドラインからのMCPツール呼び出し
  3. 03設定済みサーバーの切り替え

MCP 対応

MCPクライアントとして、STDIO、HTTP、SSE経由でMCPサーバーに接続し、ツール、プロンプト、リソースの一覧表示や呼び出しを行います。MCP JSON設定のサーバー定義も利用できます。

詳細

cMCP

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 エージェントとやり取りするためのコマンドラインユーティリティです。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。