Skip to main content

A universal CLI proxy for MCP (Model Context Protocol) services

Project description

MCP-CLI

通用的 MCP(Model Context Protocol)服务 CLI 代理工具。提供统一的命令行接口,用于发现、调用和文档化任意 MCP 服务端工具。

特性

  • 统一 CLI - 通过单一命令行工具与任意 MCP 服务交互
  • 多传输支持 - 支持 stdiossehttp 三种传输模式
  • 动态工具发现 - 自动获取服务端工具并暴露为 CLI 子命令
  • 自动参数解析 - 将 JSON Schema 转换为 CLI 参数,支持类型检查、枚举和默认值
  • Markdown 指南生成 - 自动生成结构化工具文档,供 AI Skill 上下文引用
  • Claude Code 兼容 - 100% 兼容 Claude Code 现有 MCP 服务配置格式

环境要求

  • Python >= 3.10
  • uv(推荐的包管理器)

安装

克隆仓库并使用 uv 安装:

git clone <repo-url>
cd mcp-cli
uv sync

使用Pip安装

pip install pymcp_cli

快速上手

1. 创建配置文件

在项目根目录创建 mcp.json(兼容 Claude Code 格式):

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
      "transport": "stdio",
      "env": {}
    },
    "sse-api": {
      "transport": "sse",
      "url": "http://localhost:8000/sse",
      "headers": {
        "Authorization": "Bearer token"
      }
    },
    "http-api": {
      "transport": "http",
      "url": "http://localhost:8000/mcp",
      "headers": {
        "Authorization": "Bearer token"
      }
    }
  }
}

2. 列出可用服务

pymcp_cli

输出:

Available MCP servers:

  filesystem           [stdio] npx -y @modelcontextprotocol/server-filesystem
  http-api             [http] http://localhost:8000/mcp
  sse-api              [sse] http://localhost:8000/sse

Use --server <name> to select a server.

3. 列出服务端工

pymcp_cli --server filesystem list

4. 调用工具

pymcp_cli --server filesystem read_file --path /tmp/hello.txt

5. 生成 Markdown 使用指南

pymcp_cli --server filesystem guide
# 输出:Guide generated: ./mcp-docs/filesystem.md

使用说明

usage: pymcp_cli [-h] [--version] [--config CONFIG] [--server SERVER] [--timeout TIMEOUT]

MCP-CLI: 通用的 MCP 服务 CLI 代理工具。

选项:
  -h, --help                显示帮助信息并退出
  --version                 显示版本号
  --config, -c CONFIG       配置文件路径(默认:mcp.json)
  --server, -s SERVER       配置中的 MCP 服务名
  --timeout, -t TIMEOUT     连接超时秒数(默认:30)

通过 --server 选择服务后,可使用以下子命令:

命令 说明
list 列出服务端所有工具
guide 生成 Markdown 使用指南
<工具名> 调用指定工具并传入参数

工具参数根据服务端的 JSON Schema 自动生成。运行 mcp-cli --server <名称> <工具名> --help 可查看该工具支持的参数。

配置说明

配置文件搜索顺序

  1. 通过 --config / -c 显式指定路径
  2. MCP_CLI_CONFIG 环境变量
  3. 当前目录下的 mcp.json
  4. 当前目录下的 mcp_config.json

服务配置字段

字段 类型 必填 说明
transport "stdio" / "sse" / "http" 否(默认:stdio 传输协议类型
command string stdio 模式必填 stdio 模式的可执行命令
args string[] 命令附加参数
env object 子进程环境变量
url string sse/http 模式必填 服务端 URL
headers object 自定义 HTTP 请求头(sse/http)

项目结构

src/mcp_cli/
  __init__.py               # 包入口
  main.py                   # CLI 入口与总调度
  config.py                 # 配置文件读取与模型定义
  client_factory.py         # 根据 ServerConfig 创建 fastmcp.Client
  schema_to_argparse.py     # JSON Schema 转 argparse 参数
  dynamic_parser.py         # 动态子命令构建器
  guide_generator.py        # Markdown 指南生成器
  output.py                 # 输出格式化(JSON/文本)
  exceptions.py             # 自定义异常

许可证

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymcp_cli-0.2.3.tar.gz (102.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pymcp_cli-0.2.3-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file pymcp_cli-0.2.3.tar.gz.

File metadata

  • Download URL: pymcp_cli-0.2.3.tar.gz
  • Upload date:
  • Size: 102.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.9

File hashes

Hashes for pymcp_cli-0.2.3.tar.gz
Algorithm Hash digest
SHA256 4f01a5981d79d7170e60b42ab407f0d8c2fa146c01bc377ff731c52ccdab5529
MD5 5ec180f830ec0a4f3c56f6742532bd27
BLAKE2b-256 3a92da152b25535f4b5558cb6105a4bdeb288e0cb48c26040fa138339a223954

See more details on using hashes here.

File details

Details for the file pymcp_cli-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: pymcp_cli-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.9

File hashes

Hashes for pymcp_cli-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 233b7ad3ebea2dfd64adc7c135780b6a999170f6b262f86c403e8c75afa54b60
MD5 24595e8878ddd51e80938faf64e6d407
BLAKE2b-256 59669668d0e39f6d3e7ab944a06bbc5b81a9400bc749fc98f544f7d3a4709b39

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page