使用说明
MCP CLI(MCP 命令行界面)
一个集成了模型上下文协议(MCP)的命令行界面(CLI)AI聊天应用程序,专为软件工程工作流程设计。
受……的启发Anthropic的 “使用Claude API构建”课程 这个项目通过提供生产就绪的代码、全面的测试以及适用于实际应用场景的实用MCP服务器,拓展了课程中教授的概念。
为什么选择使用这个而不是IDE代理?
诚实的回答对于大多数开发工作来说,集成开发环境(IDE)插件(如Kiro、Cursor、GitHub Copilot等)更为出色——它们能够提供完整的上下文信息,直接进行编辑,并且能够无缝融入您的工作流程。
然而,这个工具也有其合法的使用场景:
1. MCP服务器开发与测试
- 测试自定义MCP服务器 在将它们集成到集成开发环境(IDEs)之前
- 调试MCP协议问题 孤立地;单独地
- 快速原型制作 新的MCP工具和工作流程
- 验证工具行为 没有集成开发环境(IDE)的复杂性
2. 无头环境与远程环境
- SSH 会话 在没有可用GUI集成开发环境(IDEs)的地方
- 持续集成/持续交付(CI/CD)流水线 用于自动化操作
- Docker 容器 以及服务器管理
- 远程服务器 不进行X11转发
3. 脚本编写与自动化
- 批处理操作 通过命令行
- Shell脚本集成 用于自动化工作流
- 定时任务 借助人工智能辅助
- 管道自动化 使用自然语言
4. 学习与教育
- 理解MCP协议 通过实际操作来看
- 学习AI工具集成 模式;图案
- 教学材料 用于MCP(多层陶瓷封装/混合电路封装等,具体含义根据上下文确定)的开发
- 协议调试 以及探索
5. 以终端为先的工作流程
- 轻量级替代方案 当集成开发环境(IDE)显得过于冗余时
- 快速查询 无需打开庞大的集成开发环境(IDE)
- 终端复用器 (tmux/screen) 集成
- 最小化资源使用 关于受限系统
底线;归根结底如果你在集成开发环境(IDE)中进行积极开发,请使用IDE代理。将其用于MCP开发、自动化、远程工作,或者当你需要一个轻量级的命令行界面(CLI)工具时。
❌ 如果……则不适合你。。。
- 你正在VS Code、Cursor或类似的集成开发环境(IDE)中积极编码→ 使用IDE代理代替
- 重构需要完整的代码库上下文 使用IDE代理
- 你希望AI直接编辑文件 → 使用IDE代理
- 你正在进行常规的功能开发 → 使用IDE代理
✅ 如果……则非常适合您。。。
- 你正在构建/测试自定义的MCP服务器
- 你正在SSH/无头环境中工作
- 您需要结合AI的CLI自动化
- 你在学习MCP协议
- 你想要一个轻量级的终端工具
特点/特性
- 交互式人工智能聊天与Claude AI进行自然对话
- 文档管理使用(工具/软件)参考和编辑文档
@document.md语法 - 命令提示符执行预定义的工作流
/command语法 - Git 集成检查状态,查看差异,提交更改
- 文件系统操作安全地读取、写入和搜索文件
- 代码分析分析Python代码结构,查找待办事项,使用Black进行格式化
- 测试运行器执行 pytest 和 unittest 测试
- 可扩展架构为您的工作流添加自定义MCP服务器
使用时机:实用对比
| 场景 | 使用 IDE 代理 | 使用 MCP 聊天 |
|---|---|---|
| 在集成开发环境(IDE)中进行主动编码 | ✅ 最佳选择 | ❌ 不理想 |
| 测试自定义MCP服务器 | ❌ 过度设计 | ✅ 完美匹配 |
| SSH 会话(无图形界面) | ❌ 不可用 | ✅ 唯一选项 |
| CI/CD 自动化 | ❌ 不实用 | ✅ 为此而设计 |
| 学习MCP协议 | ⚠️ 太抽象了 | ✅ 直接看到它 |
| 快速终端查询 | ⚠️ 重量级 | ✅ 轻量级 |
| 在IDE中进行代码审查 | ✅ 最佳选择 | ❌ 不理想 |
| 批处理文件操作 | ❌ 手动 | ✅ 可脚本化 |
建议使用IDE代理进行开发。将其用于MCP开发、自动化、远程工作或终端优先的工作流程。
先决条件
- Python 3.9或更高版本
- Anthropic API密钥
设置
步骤1:配置环境变量
- 创建或编辑
.env在项目根目录中查找文件,并验证以下变量是否设置正确:
ANTHROPIC_API_KEY="" # Enter your Anthropic API secret key
步骤2:安装依赖项
选项1:使用uv进行设置(推荐)
紫外线 是一个快速的Python包安装器和解析器。
- 如果尚未安装,请安装 uv:
pip install uv
- 创建并激活虚拟环境:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- 安装依赖项:
uv pip install -e .
- 运行该项目
uv run main.py
选项2:不使用紫外线进行设置
- 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- 安装依赖项:
pip install anthropic python-dotenv prompt-toolkit "mcp[cli]==1.8.0"
- 运行项目
python main.py
使用方法/用途
基本聊天
只需输入您的信息并按回车键:
> What's the difference between async and await in Python?
文档引用
使用 @ 在您的查询中引用文档:
> Summarize the key points in @deposition.md
> Compare @report.pdf with @outlook.pdf
命令提示符
使用 / 执行预定义的工作流:
> /summarize deposition.md
> /format_document plan.md
使用 Tab 键自动补全命令。
使用MCP服务器
Git 操作
# Run with Git MCP server
python main.py servers/mcp_git_server.py
# Then in chat:
> Use git_status to show me what files have changed
> Use git_diff to show me the changes in detail
> Use git_log to show recent commits
文件系统操作
# Run with File System MCP server
python main.py servers/mcp_filesystem_server.py
# Then in chat:
> Use read_file to show me the contents of main.py
> Use search_files to find all Python files
> Use list_directory to show what's in the core folder
代码分析
# Run with Code Analysis MCP server
python main.py servers/mcp_code_analysis_server.py
# Then in chat:
> Use analyze_python_file to analyze core/chat.py
> Use find_todos to find all TODO comments
> Use count_lines to count lines in the core directory
测试运行器
# Run with Test Runner MCP server
python main.py servers/mcp_test_runner_server.py
# Then in chat:
> Use run_pytest to run all tests
> Use list_tests to show available tests
多台服务器
同时运行多个MCP服务器:
python main.py servers/mcp_git_server.py servers/mcp_filesystem_server.py servers/mcp_code_analysis_server.py
实际应用案例
用例1:测试您的自定义MCP服务器
您正在开发一个新的MCP服务器用于数据库操作:
# Test your server in isolation
python main.py servers/mcp_database_server.py
# In chat, test each tool:
> Use db_query with sql="SELECT * FROM users LIMIT 5"
> Use db_schema with table="users"
# Debug issues without IDE complexity
# Iterate quickly on tool definitions
为什么不选择IDE呢? 你需要测试MCP协议本身,而不是先将其集成。
用例2:CI/CD流水线自动化
在您的GitHub Actions工作流中:
- name: Analyze code changes
run: |
echo "Use git_diff to show changes" | python main.py servers/mcp_git_server.py
echo "Use find_todos to check for new TODOs" | python main.py servers/mcp_code_analysis_server.py
echo "Use run_pytest with coverage=true" | python main.py servers/mcp_test_runner_server.py
为什么不使用IDE呢? 在CI/CD中没有图形用户界面,需要可脚本化的自动化。
用例3:远程服务器管理
通过SSH登录到生产服务器:
# No GUI available, but need AI assistance
python main.py servers/mcp_filesystem_server.py
> Use search_files with pattern="**/*.log" to find all log files
> Use read_file with file_path="app.log" to check errors
> Analyze the error patterns and suggest fixes
为什么不使用IDE呢? 无图形用户界面,仅支持终端环境。
用例4:学习MCP协议
举办关于MCP开发的研讨会教学
# Students can see exactly what's happening
python main.py servers/mcp_git_server.py
# Watch the protocol in action
# See tool definitions
# Understand request/response flow
为什么不使用IDE? 需要直接查看协议,不要抽象概括。
发展
运行测试
# Install dev dependencies
uv pip install -e ".[dev]"
# Run all tests
pytest
# Run with coverage
pytest --cov --cov-report=term-missing
# Run specific test file
pytest tests/test_config.py
代码质量
# Format code with Black
black .
# Lint with Ruff
ruff check .
添加新文档
编辑 mcp_server.py 并添加条目到 docs 字典:
docs = {
"your_doc.md": "Your document content here",
}
创建自定义MCP服务器
创建一个新文件 servers/mcp_custom_server.py:
from pydantic import Field
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("CustomMCP", log_level="ERROR")
@mcp.tool(
name="your_tool",
description="Description of what your tool does",
)
def your_tool(
param: str = Field(description="Parameter description")
) -> str:
"""Tool implementation."""
return f"Result: {param}"
if __name__ == "__main__":
mcp.run(transport="stdio")
然后运行:
python main.py servers/mcp_custom_server.py
建筑学
mcp-chat/
├── core/ # Core application modules
│ ├── chat.py # Core chat logic
│ ├── claude.py # Claude API wrapper
│ ├── cli.py # CLI interface
│ ├── cli_chat.py # CLI-specific chat features
│ ├── config.py # Configuration management
│ ├── exceptions.py # Custom exceptions
│ ├── logger.py # Logging setup
│ └── tools.py # Tool execution
├── servers/ # MCP servers
│ ├── mcp_server.py # Document server
│ ├── mcp_git_server.py # Git operations
│ ├── mcp_filesystem_server.py # File system
│ ├── mcp_code_analysis_server.py # Code analysis
│ └── mcp_test_runner_server.py # Test runner
├── tests/ # Test suite
├── docs/ # Documentation
│ ├── HONEST_ASSESSMENT.md # When to use this tool
│ ├── QUICK_START.md # 5-minute setup
│ ├── ARCHITECTURE.md # Technical details
│ └── CONTRIBUTING.md # Development guide
├── main.py # Application entry point
├── mcp_client.py # MCP client implementation
└── README.md # This file
安全
- API密钥从(某处)加载
.env(永远不要提交这个文件) - 文件系统操作仅限于项目目录
- 对所有MCP工具参数进行输入验证
- 全程妥善处理错误
故障排除
ANTHROPIC_API_KEY不能为空
确保你的 .env 文件存在且包含:
ANTHROPIC_API_KEY="your-actual-api-key"
“Git未安装”
为您的平台安装 Git:https://git-scm.com/downloads
“pytest 未安装”
安装开发依赖项:
uv pip install -e ".[dev]"
MCP服务器连接问题
检查服务器脚本是否存在且可执行。启用调试日志记录:
LOG_LEVEL=DEBUG python main.py
常见问题解答(FAQ)
问:我应该用这个来代替Kiro/Cursor/GitHub Copilot吗?
A: 不,如果是在集成开发环境(IDE)中进行主动开发,请使用IDE代理。 它们拥有完整的上下文,可以直接编辑,并且集成度更高。使用此工具进行:
- 测试自定义MCP服务器
- 无头/SSH 环境
- 持续集成/持续交付(CI/CD)自动化
- 学习MCP协议
问:这个工具的主要优势是什么?
A: 直接MCP协议访问。 您可以在没有集成开发环境(IDE)复杂性的前提下测试和调试MCP服务器,通过脚本实现自动化,并在仅支持终端的环境中工作。
问:这个可以替代我的集成开发环境(IDE)吗?
A: 不。 这是一个针对特定使用场景设计的专用工具,而非通用开发环境。
问:我什么时候会用到这个?
A: 真实场景:
- 您正在构建一个自定义的MCP服务器,并需要对其进行测试
- 你已经通过SSH连接到了一个没有图形用户界面(GUI)的服务器
- 你正在编写一个需要AI辅助的CI/CD流水线
- 你正在教授/学习MCP协议
- 你需要一个轻量级的命令行界面(CLI)工具来进行快速查询
问:这个产品已经准备好投入生产了吗?
A: 是的,针对其预期使用场景而言。 它具备全面的测试功能、错误处理机制和安全性。但请记住:它是一个命令行界面(CLI)工具,不是集成开发环境(IDE)的替代品。
问:你为什么要建这个?
A: 合法理由:
- MCP服务器开发需要进行隔离测试
- 无头环境需要人工智能辅助
- 自动化流水线得益于自然语言(技术)
- 学习MCP协议需要直接观察它
做出贡献
快速入门:
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支
- 进行你的更改
- 为新功能添加测试
- 确保所有测试通过:
pytest - 格式代码:
black . - 提交一个拉取请求
致谢/制作团队/演职人员表
这个项目受到了Anthropic的启发 “使用Claude API构建”课程该课程提供了关于如何与Claude和MCP合作的优秀基础知识。本项目在此基础上扩展了这些概念,包括:
- 具备全面错误处理的生产就绪代码
- 包含23+个测试的完整测试套件
- 安全加固和输入验证
- 适用于实际应用场景的实用MCP服务器
- 专业文档与架构设计
特别感谢Anthropic团队提供的教育资源以及MCP协议。
许可证
MIT 许可证 - 详见 许可证 文件中有详细信息。
文档
支持
- 问题: GitHub Issues(GitHub问题)
- 文档查看
docs/目录 - 问题开启一场讨论或提出一个问题
