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): 提供可选的精简模式,仅包含核心的模型编辑和求解工具,适用于资源受限或需要简化操作的场景。
安装步骤
- 安装 MCP 客户端: 你需要先安装一个兼容 Model Context Protocol 的客户端,例如 Claude 网页界面或桌面应用。
- 安装 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 Solver 仓库到本地:
服务器配置
为了让 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" 参数启用精简模式 ] } } }
基本使用方法
- 启动配置好的 MCP 客户端,并确保客户端成功连接到 "MCP Solver" 服务器。
- 通过自然语言指令指示 LLM 使用 MCP Solver 的功能。例如:
- 让 LLM 使用 'add_item' 工具向模型中添加 MiniZinc 代码,逐步构建约束模型。
- 指示 LLM 使用 'solve_model' 工具求解当前的模型,并可以设置求解超时时间。
- 使用 'get_solution' 工具查询模型解中的变量值,例如获取某个决策变量的具体取值。
- 利用 'get_memo' 和 'edit_memo' 工具管理知识库,存储和更新重要的上下文信息。
- 使用 'get_model' 工具查看当前模型的代码内容,进行调试或验证。
关键词
约束求解, MiniZinc, Chuffed求解器, 约束编程, AI工具
信息
分类
AI与计算