本项目提供一个MCP(Model Context Protocol)服务,利用大型语言模型(LLM)根据自然语言描述生成完整的Rust项目,并能自动编译、检测错误并尝试修复。
主要功能点
- 代码生成: 将自然语言描述和需求转化为完整的Rust Cargo项目文件。
- 代码编译: 调用Rust编译器(cargo)编译生成的代码,提供编译输出。
- 错误修复: 如果编译失败,利用LLM和错误示例尝试自动修复代码中的编译错误。
- 示例搜索: 使用向量数据库存储项目和错误示例,用于提高生成和修复的准确性。
安装步骤
- 确保系统已安装 Python 3.8+、Rust 编译器 (rustc) 和 Cargo 工具。
- 确保系统已安装并运行 Qdrant 向量数据库服务(或配置为使用本地文件存储)。
- 确保系统已配置可访问的 LLM API 端点和 API 密钥(例如兼容 OpenAI API 格式的 LLM 服务)。
- 克隆项目仓库到本地。
- 进入项目目录。
- 安装 Python 依赖:运行 'pip install -r requirements.txt'。
- 根据需要配置环境变量,例如 'QDRANT_HOST', 'QDRANT_PORT', 'LLM_API_BASE', 'LLM_MODEL', 'LLM_API_KEY', 'CARGO_PATH', 'RUST_COMPILER_PATH'。
- (可选)运行 'python app/load_data.py' 加载示例数据到向量数据库。
服务器配置(供MCP客户端使用) MCP客户端需要知道如何启动和连接到此MCP服务器进程。典型的MCP客户端配置(例如用于 cmcp 工具)会包含以下信息:
- server name: 'Rust compiler tools' (这是服务器在MCP协议中声明的名称)
- command: 'python' (用于执行服务器脚本的解释器)
- args: 指定MCP服务器脚本的路径,例如 '["path/to/app/mcp_tools.py"]'。根据实际安装路径填写。可以通过额外的参数指定传输模式,例如 '--transport stdio'。
用户需要将上述信息配置到其MCP客户端中,以便客户端能够启动或连接到该MCP服务器。
基本使用方法 启动服务器:
- 运行主 API 服务 (如果 MCP 模块需要通过 HTTP 调用它):'uvicorn app.main:app --host 0.0.0.0 --port 8000' (或根据配置修改端口)。
- 运行 MCP 服务器进程:'python examples/run_mcp_server.py' (或 'python app/mcp_tools.py',具体取决于运行方式和配置的传输模式)。
- 如果配置为 'stdio' 传输模式,MCP进程由客户端启动并直接通过标准输入输出通信。
- 如果配置为 'sse' 或 'http' 传输模式,MCP进程作为独立服务运行,并在指定地址监听(例如默认端口3001)。
通过支持MCP协议的客户端(如 'cmcp' 工具)调用服务器提供的工具:
- 调用 'generate' 工具: 提供 'description' 和 'requirements' 参数生成代码。
- 调用 'compile' 工具: 提供包含代码的 'code' 参数进行编译。
- 调用 'compile_and_fix' 工具: 提供 'code' 和 'description' 参数,编译并尝试修复错误。
客户端根据JSON-RPC规范发送请求,服务器处理后返回结果(如生成的代码、编译输出或修复后的代码)。
信息
分类
开发者工具