mcpField
C
cMCP

cMCP

github.com/russellluo框架与 SDK1834 周前更新

关于 cMCP

cMCP 是用于与 MCP 服务交互的命令行客户端,可调用本地或远程服务的方法,并支持配置文件管理服务。

主要功能

  1. 01通过 STDIO、HTTP 或 SSE 连接
  2. 02列出并调用工具
  3. 03读取资源与资源模板
  4. 04列出和获取提示词
  5. 05支持请求参数、环境变量及 HTTP 标头

适用场景

  1. 01检查服务提供的工具与资源
  2. 02从命令行调用 MCP 工具
  3. 03使用配置文件切换已登记的服务

MCP 相关

作为 MCP 客户端,cMCP 可连接 STDIO、HTTP 和 SSE 服务,列出或调用工具、提示词及资源。它也能读取 MCP JSON 配置中的服务定义。

详细介绍

cMCP

cmcp logo

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 交互的命令行工具。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。