MCP命令行工具

cmcp是一个命令行工具,用于与MCP服务器交互,支持STDIO、HTTP和SSE传输方式。

  • by RussellLuo
  • Python
  • 本地部署
  • 18 星标
  • 更新于
在 GitHub 查看 RussellLuo/cmcp

使用说明

樟脑对氯苯酚

cmcp 是一个命令行实用程序,可帮助您与 主控程序 服务器。基本上是 curl 对于MCP服务器。

安装

pip install cmcp

用法

工作室

与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格式,该格式也由 光标, 克劳德代码, 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代理交互的命令行实用程序。

许可证

麻省理工学院