A universal CLI proxy for MCP (Model Context Protocol) services
Project description
MCP-CLI
通用的 MCP(Model Context Protocol)服务 CLI 代理工具。提供统一的命令行接口,用于发现、调用和文档化任意 MCP 服务端工具。
特性
- 统一 CLI - 通过单一命令行工具与任意 MCP 服务交互
- 多传输支持 - 支持
stdio、sse、http三种传输模式 - 动态工具发现 - 自动获取服务端工具并暴露为 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
快速上手
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. 列出可用服务
uv run mcp-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. 列出服务端工具
uv run mcp-cli --server filesystem list
4. 调用工具
uv run mcp-cli --server filesystem read_file --path /tmp/hello.txt
5. 生成 Markdown 使用指南
uv run mcp-cli --server filesystem guide
# 输出:Guide generated: ./mcp-docs/filesystem.md
使用说明
usage: mcp-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 可查看该工具支持的参数。
配置说明
配置文件搜索顺序
- 通过
--config/-c显式指定路径 MCP_CLI_CONFIG环境变量- 当前目录下的
mcp.json - 当前目录下的
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.2.tar.gz
(102.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
pymcp_cli-0.2.2-py3-none-any.whl
(15.3 kB
view details)
File details
Details for the file pymcp_cli-0.2.2.tar.gz.
File metadata
- Download URL: pymcp_cli-0.2.2.tar.gz
- Upload date:
- Size: 102.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e0678c46718be4c59d3f7a4c80b19d6acdac47dcad5106b5bbe3dbbb2cfb458
|
|
| MD5 |
4588aa2d2d7301b7ced4bcc6564eaeba
|
|
| BLAKE2b-256 |
2fa5eb2e647bbcb214e5e43408346be554395b93794f5cd34906add61050fa60
|
File details
Details for the file pymcp_cli-0.2.2-py3-none-any.whl.
File metadata
- Download URL: pymcp_cli-0.2.2-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f056bacad312eae7f9e5707135a88b75b55592d4d53c50b805768693ba704a35
|
|
| MD5 |
b5094abc297c2aec105fbdec27ad26f6
|
|
| BLAKE2b-256 |
fa5ebbcff9c97386ed8bbcd4a546dc9b81168a8e290c5d1b716080edf8af9a86
|