本项目提供一个MCP(Model Context Protocol)服务,利用大型语言模型(LLM)根据自然语言描述生成完整的Rust项目,并能自动编译、检测错误并尝试修复。

主要功能点

  • 代码生成: 将自然语言描述和需求转化为完整的Rust Cargo项目文件。
  • 代码编译: 调用Rust编译器(cargo)编译生成的代码,提供编译输出。
  • 错误修复: 如果编译失败,利用LLM和错误示例尝试自动修复代码中的编译错误。
  • 示例搜索: 使用向量数据库存储项目和错误示例,用于提高生成和修复的准确性。

安装步骤

  1. 确保系统已安装 Python 3.8+、Rust 编译器 (rustc) 和 Cargo 工具。
  2. 确保系统已安装并运行 Qdrant 向量数据库服务(或配置为使用本地文件存储)。
  3. 确保系统已配置可访问的 LLM API 端点和 API 密钥(例如兼容 OpenAI API 格式的 LLM 服务)。
  4. 克隆项目仓库到本地。
  5. 进入项目目录。
  6. 安装 Python 依赖:运行 'pip install -r requirements.txt'。
  7. 根据需要配置环境变量,例如 'QDRANT_HOST', 'QDRANT_PORT', 'LLM_API_BASE', 'LLM_MODEL', 'LLM_API_KEY', 'CARGO_PATH', 'RUST_COMPILER_PATH'。
  8. (可选)运行 '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规范发送请求,服务器处理后返回结果(如生成的代码、编译输出或修复后的代码)。

信息

分类

开发者工具