关于 cMCP
cMCP 是用于与 MCP 服务交互的命令行客户端,可调用本地或远程服务的方法,并支持配置文件管理服务。
主要功能
- 01通过 STDIO、HTTP 或 SSE 连接
- 02列出并调用工具
- 03读取资源与资源模板
- 04列出和获取提示词
- 05支持请求参数、环境变量及 HTTP 标头
适用场景
- 01检查服务提供的工具与资源
- 02从命令行调用 MCP 工具
- 03使用配置文件切换已登记的服务
MCP 相关
作为 MCP 客户端,cMCP 可连接 STDIO、HTTP 和 SSE 服务,列出或调用工具、提示词及资源。它也能读取 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 传输
使用 HTTP 传输运行上述 MCP 服务:
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 传输(已弃用)
使用 SSE 传输运行上述 MCP 服务:
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(高级)
为方便起见,你可以使用配置文件管理 MCP 服务,无需每次都输入完整命令或 URL。默认情况下,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 Agent 交互的命令行工具。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。