MCP Solver 使用说明

项目简介

MCP Solver 是一个基于 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型 (LLM) 提供强大的约束求解能力。它使用 MiniZinc 约束编程语言和 Chuffed 求解器,使得 LLM 可以处理需要逻辑推理和优化的复杂问题。通过 MCP Solver,LLM 可以方便地创建、修改和求解约束模型,并利用解信息进行后续决策。

主要功能点

  • 约束模型管理: 允许 LLM 创建、编辑、查看和清除 MiniZinc 约束模型。模型以结构化的项目 (item) 列表形式存储,方便 LLM 逐步构建和修改模型。
  • 约束求解: 使用高性能的 Chuffed 约束求解器求解当前的模型。支持设置求解超时时间,防止长时间运行。
  • 解信息获取: 求解成功后,LLM 可以获取模型的解,并查询特定变量的值,包括数组变量的元素值。
  • 知识库 (Memo) 管理: 提供一个简单的文本知识库 (Memo),LLM 可以用来存储和编辑上下文信息,增强长期对话和任务处理能力。
  • 精简模式 (Lite Mode): 提供可选的精简模式,仅包含核心的模型编辑和求解工具,适用于资源受限或需要简化操作的场景。

安装步骤

  1. 安装 MCP 客户端: 你需要先安装一个兼容 Model Context Protocol 的客户端,例如 Claude 网页界面或桌面应用。
  2. 安装 MCP Solver 服务器:
    • 克隆 MCP Solver 仓库到本地:
      git clone https://github.com/szeider/mcp-solver.git
      cd mcp-solver
    • 使用 'uv pip' 安装项目依赖和 MCP Solver:
      uv pip install -e .
    • 确保你的系统满足以下要求:
      • Python 3.11 或更高版本
      • 已安装 MiniZinc 约束建模工具包 (包含 Chuffed 求解器)

服务器配置

为了让 MCP 客户端能够连接到 MCP Solver 服务器,你需要在客户端的配置文件中添加 MCP Solver 的服务器配置信息。配置文件通常是 JSON 格式,你需要指定服务器的名称、启动命令 (command) 和参数 (args)。以下是针对 macOS/Linux 和 Windows 系统的配置示例,请根据你的实际情况修改路径。

macOS/Linux 配置示例 (配置文件路径: '~/Library/Application/Support/Claude/claude_desktop_config.json' )

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

Windows 配置示例 (配置文件路径: '%APPDATA%\Claude\claude_desktop_config.json' )

{
  "mcpServers": {
    "MCP Solver": {
      "command": "cmd.exe",
      "args": [
        "/C",
        "cd C:\\absolute\\path\\to\\mcp-solver && uv run mcp-solver" // 将 "C:\\absolute\\path\\to\\mcp-solver" 替换为 MCP Solver 仓库的实际绝对路径,注意使用双反斜杠或单斜杠
      ]
    }
  }
}

启用精简模式 (Lite Mode) 配置 (可选)

如果你想使用精简模式,可以在 'args' 参数列表中添加 '--lite' 标志。

macOS/Linux 精简模式配置示例

{
  "mcpServers": {
    "MCP Solver": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/mcp-solver",
        "run",
        "mcp-solver",
        "--lite" // 添加 "--lite" 参数启用精简模式
      ]
    }
  }
}

基本使用方法

  1. 启动配置好的 MCP 客户端,并确保客户端成功连接到 "MCP Solver" 服务器。
  2. 通过自然语言指令指示 LLM 使用 MCP Solver 的功能。例如:
    • 让 LLM 使用 'add_item' 工具向模型中添加 MiniZinc 代码,逐步构建约束模型。
    • 指示 LLM 使用 'solve_model' 工具求解当前的模型,并可以设置求解超时时间。
    • 使用 'get_solution' 工具查询模型解中的变量值,例如获取某个决策变量的具体取值。
    • 利用 'get_memo' 和 'edit_memo' 工具管理知识库,存储和更新重要的上下文信息。
    • 使用 'get_model' 工具查看当前模型的代码内容,进行调试或验证。

关键词

约束求解, MiniZinc, Chuffed求解器, 约束编程, AI工具

信息

分类

AI与计算