使用说明

项目简介

MCP Solver 是一个基于 Model Context Protocol (MCP) 的服务器实现,它将 MiniZinc 约束编程技术与大型语言模型 (LLM) 相结合。该服务器允许 LLM 通过 MCP 协议调用约束求解工具,从而扩展 LLM 在解决复杂约束满足和优化问题方面的能力。例如,LLM 可以利用 MCP Solver 来解决调度问题、资源分配问题、以及各种组合优化难题。

主要功能点

  • 约束模型编辑与管理: 支持创建、编辑和验证 MiniZinc 约束模型。允许 LLM 通过工具动态修改和调整约束模型,以适应不同的问题场景。
  • 高效约束求解: 集成 Chuffed 约束求解器,提供高效的约束求解能力。支持设置求解超时时间,防止长时间运行。
  • 解状态访问: 允许 LLM 获取求解结果中的变量值,从而理解和解释求解方案。
  • 知识库管理: 内置简单的知识库 (Memo),用于存储和检索与约束求解相关的知识,帮助 LLM 更好地理解和利用求解过程。
  • 标准 MCP 协议: 遵循 MCP 协议标准,易于与任何兼容 MCP 协议的客户端集成,例如 Claude Desktop 应用。

安装步骤

  1. 安装 Claude Desktop 应用 (或其他 MCP 客户端)

    访问 https://claude.ai/download 下载并安装 Claude Desktop 应用。

  2. 安装 MCP Solver

    打开终端,执行以下命令:

    git clone https://github.com/MCP-Mirror/szeider_mcp-solver.git
    cd szeider_mcp-solver
    uv pip install -e .

    注意: 确保你的系统已安装 Python 3.9+ 和 MiniZinc 约束求解工具(及其 Chuffed 求解器)。MiniZinc 安装指南请参考 https://www.minizinc.org

服务器配置

MCP 服务器需要配置在 MCP 客户端中才能使用。以 Claude Desktop 应用为例,你需要创建或修改配置文件 'claude_desktop_config.json'。

  1. 创建或编辑配置文件

    根据你的操作系统,找到 Claude Desktop 应用的配置目录,并创建或编辑 'claude_desktop_config.json' 文件。

    • macOS: '~/Library/Application/Support/Claude/claude_desktop_config.json'
    • Windows: '%APPDATA%\Claude\claude_desktop_config.json'
    • Linux: '~/.config/Claude/claude_desktop_config.json' (可能需要根据实际情况调整)
  2. 配置服务器信息

    将以下 JSON 配置添加到 'claude_desktop_config.json' 文件中。你需要将 '/absolute/path/to/mcp-solver' 替换为你本地 'mcp-solver' 仓库的绝对路径。

    {
     "mcpServers": {
         "minizinc": {
             "command": "uv",
             "args": ["--directory",
             "/absolute/path/to/mcp-solver", // 替换为你的 mcp-solver 仓库的绝对路径
             "run",
             "mcp-solver"]
         }
       }
    }

    Windows 用户注意: 在 Windows 路径中使用双反斜杠 '\',例如 '"C:\absolute\path\to\mcp-solver"'。

    配置参数说明:

    • '"minizinc"': 服务器名称,在 Claude 客户端中用于标识该 MCP 服务器。
    • '"command": "uv"': 启动服务器的命令,这里使用 'uv run' 来运行 Python 脚本。确保你的环境中 'uv' 已安装,或者根据你的 Python 环境配置调整为 'python' 或 'python3' 等命令。
    • '"args"': 传递给启动命令的参数列表。
      • '"--directory", "/absolute/path/to/mcp-solver"': 指定工作目录为 'mcp-solver' 仓库的根目录。
      • '"run", "mcp-solver"': 运行 'mcp-solver' 模块,即执行 'src/mcp_solver/server.py' 文件。

基本使用方法

配置完成后,在 Claude Desktop 应用中,你可以通过 Prompt 或指令来调用 MCP Solver 提供的工具。

常用工具示例:

  • 'get_model': 获取当前约束模型的内容。
  • 'edit_model': 编辑约束模型。你需要指定要修改的起始行号 'line_start'、结束行号 'line_end' (可选,为 null 表示到文件末尾) 以及新的内容 'content'。
  • 'validate_model': 验证当前约束模型的语法和语义是否正确。
  • 'solve_model': 使用 Chuffed 求解器求解当前模型。可以设置可选的 'timeout' 参数 (秒) 来限制求解时间。
  • 'get_variable': 获取求解结果中指定变量的值。你需要提供 'variable_name' (变量名) 和可选的 'indices' (数组索引,1-based)。
  • 'get_solve_time': 获取上次求解的执行时间。
  • 'get_memo': 获取当前知识库的内容。
  • 'edit_memo': 编辑知识库内容。参数与 'edit_model' 类似,用于指定编辑范围和新内容。

使用示例 (Claude Prompt):

Solve the following constraint problem: ... (描述问题)

可以使用工具 'edit_model' 编辑模型,然后使用 'validate_model' 验证模型,最后使用 'solve_model' 求解模型。

注意: 详细的工具使用方法和示例对话,请参考仓库 'examples' 文件夹中的内容。

信息

分类

AI与计算