releases
solverforge-cli 3.0.0: MCP Shell, connect, and the Modeling Agent Skill
solverforge-cli 3.0.0 adds an MCP server shell, the connect command, countable scalar ranges, the full list-metadata flags, and the portable solverforge-modeling agent skill, and moves fresh scaffolds onto solverforge 0.19.4.
solverforge-cli 3.0.0 is published on crates.io and released on GitHub
(2026-09-15), at publication cargo install solverforge-cli installed 3.0.0 directly. The
previous crates.io package, solverforge-cli 2.2.3, scaffolded
solverforge 0.19.3, solverforge-ui 0.7.0, and solverforge-maps 2.1.4. Use
solverforge --version to confirm exactly what an installed binary carries.
The 3.0.0 line is a major release for one reason: the CLI no longer produces only web, API, and CLI applications. It can also produce an MCP server, so the solver is reachable from any MCP-capable agent harness.
New projects target:
solverforge 0.19.4solverforge-ui 0.7.0for the web shellsolverforge-maps 2.1.4for the web shellrmcp 3.3.0for the MCP shell
What Changed
Four public shells
The public shell set is exactly web, api, cli, and mcp. A Tauri shell is
intentionally deferred. Every shell shares one generated core
(domain/, constraints/, solver/, data/, and the DTO contract), so
solverforge generate and solverforge destroy mutate an MCP-shell project
exactly like any other shell.
solverforge new my-scheduler
solverforge new api-optimizer --shell api
solverforge new batch-optimizer --shell cli
solverforge new agent-optimizer --shell mcp
Only the web shell generates static/, static/generated/ui-model.json, and
ui_source. Every shell declares rust-version = "1.95" and schemars as an
optional dependency behind a schema feature; only the MCP shell enables it,
so it can publish typed tool schemas over the shared DTO contract.
The MCP shell
--shell mcp produces a planning application whose delivery surface is an MCP
server. The retained solver job lifecycle is exposed as annotated, schema-typed
tools: list_demo_data, get_demo_data, solve, get_status,
get_best_solution, analyze_solution, get_telemetry, get_candidate_trace,
pause, resume, cancel, and delete.
To a task-capable client (MCP 2026-07-28), solve returns an MCP task handle
with the retained jobId in result metadata; every other client receives an
immediate job summary. Either client can drive the lifecycle through the polling
and control tools while the solve runs. MCP tasks have no TTL, so task expiry
cannot orphan an active solve.
The server speaks stdio by default and serves stateless Streamable HTTP at
/mcp with --http. HTTP binds the loopback interface unless --host selects
a concrete IP address, and wildcard binds (0.0.0.0 and ::) are rejected so
rmcp Host validation remains active. One solver service and one task store are
shared by every request.
solverforge new agent-scheduler --shell mcp
cd agent-scheduler
solverforge generate fact resource
solverforge generate entity task
solverforge generate variable resource_idx --entity Task --kind scalar --range resources
solverforge generate data
cargo run --release # stdio MCP server
cargo run --release -- --http # Streamable HTTP on http://127.0.0.1:7860/mcp
solverforge connect # client configs for Claude Code, Claude Desktop, Cursor, VS Code
solverforge connect
connect prints ready-to-paste MCP client configuration for an MCP-shell
project: the stdio command plus the Streamable HTTP URL. --write vscode merges
the project entry into .vscode/mcp.json; global client files are printed with
their path instead of being modified. --port sets the printed HTTP URL and
otherwise falls back through .solverforgerc to 7860.
Countable scalar ranges and list metadata
Scalar variables can now use a half-open integer range instead of a fact
collection. The field stays Option<usize> and stores the chosen candidate
index:
solverforge generate variable hour --entity Shift --kind scalar --countable-range 0..24
List variables expose the full list-metadata surface through flags such as
--domain cvrp, --distance-meter, --intra-distance-meter, --route-hooks,
--savings-hooks, --savings-metric-class-fn, --element-owner-fn,
--construction-element-order-key, --precedence-duration-fn,
--precedence-successors-fn, and --solution-trait. These name user-owned Rust
implementations and are projected into solverforge.app.toml.
The modeling agent skill
The repository ships a portable agent skill at skills/solverforge-modeling/
that teaches a coding agent to turn a described planning problem into a runnable
SolverForge app with this CLI. It bundles scripts/solve-smoke-test.sh, which
builds and drives a generated app (web/API), boots the MCP HTTP transport, or
validates CLI demo-data serialization depending on the shell.
./scripts/install-skill # ~/.agents/skills (cross-harness)
./scripts/install-skill --only opencode # ~/.config/opencode/skills
./scripts/install-skill --only claude # ~/.claude/skills
./scripts/install-skill --project <dir> # per-harness project scope
./scripts/install-skill --list
make install-skill # from the repository root
The installer copies an independent, self-contained skill into each selected directory and refuses to overwrite or remove an entry it did not create. See the agent skill page.
Published Version Boundaries
| Surface | Version | Scaffold target |
|---|---|---|
| CLI | solverforge-cli 3.0.0 |
solverforge 0.19.4, web solverforge-ui 0.7.0 + solverforge-maps 2.1.4, MCP rmcp 3.3.0 |
| CLI (last crates.io package) | solverforge-cli 2.2.3 |
solverforge 0.19.3, solverforge-ui 0.7.0, solverforge-maps 2.1.4 |
The web shell’s direct support dependencies also moved: tower-http 0.6.11,
serde_json 1.0.150, and uuid 1.23.5. The API shell keeps
solverforge and Axum without frontend or map assets; the CLI shell keeps
solverforge and Clap; the MCP shell keeps solverforge with rmcp, Axum,
and tracing, and leaves the runtime console feature off so the stdout stdio
transport channel stays pure JSON-RPC.
Patch History
| Version | Date | Notes |
|---|---|---|
3.0.0 |
2026-09-15 | Adds the mcp scaffold shell, solverforge connect, countable scalar ranges, the full list-metadata flags, and the solverforge-modeling agent skill; moves fresh scaffolds to solverforge 0.19.4. |
2.2.3 |
2026-07-30 | Publishes the neutral scalar/list/mixed scaffold line targeting solverforge 0.19.3, solverforge-ui 0.7.0, and solverforge-maps 2.1.4. |
2.2.2 |
2026-06-12 | Publishes the solverforge 0.15.2 scaffold contract. |
2.2.1 |
2026-06-10 | Retargets fresh generated apps to solverforge 0.15.1 on the CI-green source line. |
2.2.0 |
2026-05-31 | Retargets fresh generated apps to solverforge 0.15.0 and exposes scalar-group and conflict-repair model resources. |
Upgrade Checklist
- Re-run
solverforge --version/solverforge -Vafter installing to confirm the binary’s scaffold targets. - Existing generated apps keep their own manifests; move them to
solverforge 0.19.4deliberately and run their model, config, and lifecycle tests. - Choose
--shell mcponly for agent-facing servers; addsolverforge connectand the agent skill for the MCP workflow.
Where to read next
Use the CLI manual for the current command surface, the MCP Shell page for the agent-facing delivery surface, and the agent skill page for the installable modeling skill.