MCP Solver
用于约束优化和求解的模型上下文协议(MCP)服务器。
MCP-Solver Quick Start Guide
MCP-Solver 是一个 Model Context Protocol 服务器,将 MiniZinc 约束编程与大型语言模型 (LLMs) 集成,使 AI 模型能够创建、求解和管理约束优化问题。
系统要求
- Python 3.11+ (需支持
asyncio.timeout
) - MiniZinc 和 Chuffed 求解器
- 支持的操作系统: macOS、Windows 和 Linux
安装步骤
- 克隆仓库并安装:
git clone https://github.com/szeider/mcp-solver.git
cd mcp-solver
uv pip install -e .
- 创建配置文件:
macOS/Linux:
# 在 ~/Library/Application/Support/Claude/claude_desktop_config.json 添加:
{
"mcpServers": {
"MCP Solver": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/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"
]
}
}
}
- 测试设置:
uv run test-setup
主要工具
工具名称 | 描述 |
---|---|
get_model | 获取当前模型内容 |
add_item | 添加新项目 |
delete_item | 删除指定项目 |
replace_item | 替换指定项目 |
clear_model | 清除模型 |
solve_model | 求解当前模型 |
get_solution | 获取解决方案变量值 |
get_solve_time | 获取上次求解时间 |
get_memo | 获取知识库 |
edit_memo | 编辑知识库 |
轻量模式
使用 --lite
标志启用轻量模式,提供简化接口:
{
"mcpServers": {
"MCP Solver": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/mcp-solver",
"run",
"mcp-solver",
"--lite"
]
}
}
}
示例用法
基本选角问题
用户: 假设一位戏剧导演需要在他的作品中选择几位演员。
LLM: 让我用 MiniZinc 建模这个选角问题。
系统: clear_model
输出: Model cleared
系统: add_item
输出:
var bool: alvarez;
var bool: cohen;
var bool: branislavsky;
var bool: davenport;
constraint alvarez \/ cohen;
constraint not (alvarez /\ cohen);
constraint alvarez -> davenport;
constraint branislavsky;
constraint not (branislavsky /\ alvarez);
constraint not (branislavsky /\ davenport);
solve satisfy;
系统: solve_model
输出: {'status': 'SAT', 'solution': Solution(alvarez=False, cohen=True, branislavsky=True, davenport=False, _checker=''), 'solve_time': 0.0}
有关更多信息,请参阅论文:MCP-Solver: Integrating Language Models with Constraint Programming Systems
欢迎通过反馈表单提供意见。