使用说明
MCP代码生成演示-README
概述
本项目演示了使用模型上下文协议(MCP)生成代码的基本用法 官方MCP Python SDK它展示了MCP服务器如何公开用于读取代码、分析模式和基于现有代码库模式生成新代码的工具。
快速开始
1.设置环境
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies (requires MCP SDK)
pip install -r requirements.txt
备注:此演示现在使用官方MCP Python SDK(mcp 包)以实现正确的协议实现。
2.运行演示
# Make scripts executable (Unix/Mac)
chmod +x server.py demo_client.py
# Run the demo client
python demo_client.py
演示将:
- 连接到MCP服务器
- 列出可用工具
- 阅读example.py文件
- 分析代码模式
- 基于这些模式生成新代码
项目结构
basic_mcp/
├── server.py # MCP server implementation
├── demo_client.py # Demo client showing code generation
├── example.py # Example code file for analysis
├── requirements.txt # Python dependencies
└── README.md # This file
运作原理
MCP服务器(server.py)
服务器使用官方的MCP Python SDK,并公开了三个工具:
- read_code_file:读取Python文件并返回其内容
- 分析代码模式:分析代码结构并提取模式(类、函数、类型提示等)
- generate_code:根据检测到的模式生成代码
服务器使用异步方式运行 asyncio 并通过stdio传输进行通信。
MCP客户端(demo_client.py)
客户端使用官方MCP Python SDK并演示:
- 使用stdio传输连接到MCP服务器
- 对工具调用使用async/await
- 调用工具读取和分析代码
- 使用分析结果生成新代码
示例文件(example.py)
包含示例Python代码:
- 带有类型提示的类
- 带有文档字符串的方法
- 带注释的函数
使用示例
基本用法
python demo_client.py
自定义示例文件
编辑 demo_client.py 更改 example_file 变量:
example_file = "your_file.py"
扩展服务器
添加新工具 server.py:
def _your_new_tool(self, arguments: Dict[str, Any]) -> str:
# Your tool implementation
return result
# Register in __init__:
self.tools["your_new_tool"] = self._your_new_tool
理解输出
演示输出:
- 工具列表:显示可用的MCP工具
- 文件内容:分析文件的预览
- 模式分析:检测到的代码模式(类、类型提示等)
- 生成的代码:遵循模式的新代码
后续步骤
- 扩展模式分析:添加更复杂的代码分析
- 提高发电效率:使用模板和更好的模式匹配
- 添加文件写入:将生成的代码写入文件
- 模式匹配:检测设计模式(存储库、工厂等)
- 测试生成:基于源代码生成测试文件
故障排除
未安装MCP SDK
- 错误:
ModuleNotFoundError: No module named 'mcp' - 解决方案:安装依赖项:
pip install -r requirements.txt
服务器无法启动
- 确保已安装Python 3.8+
- 检查文件权限:
chmod +x server.py - 验证MCP SDK是否安装正确
服务器无响应
- 检查server.py是否可执行
- 验证demo_client.py中的Python路径
- 确保服务器正常启动(检查导入错误)
找不到文件错误
- 确保example.py存在于同一目录中
- 检查demo_client.py中的文件路径
异步/等待错误
- 确保安装了Python 3.7+(用于异步/等待支持)
- 检查是否已正确等待所有异步函数
主要特点
✅ 官方MCP SDK:使用官方 mcp Python包
✅ 异步/等待:使用asyncio实现正确的异步
✅ 标准运输:通过标准输入/输出进行通信
✅ 类型安全:使用Pydantic模型进行数据验证
✅ 协议遵从:遵循MCP规范标准
了解更多
- MCP规范
- MCP Python SDK (如果可用)
- 看
MCP_PROJECT_RECOMMENDATIONS.md先进的项目理念 - 看
QUICK_START.md实现细节最少
许可证
这是一个示范项目。请随意修改和扩展它。