Submit SMT-LIB 2.0 problems and get satisfiability verdicts, models, and unsat cores back — asynchronously, per call.
POST /v1/smt
SMT (Satisfiability Modulo Theories) solving usually means installing binaries and learning solver-specific flags. Here you send the problem over HTTP and get back a verdict — with models and unsat cores when you need them. Looking for plain propositional logic? That's the SAT endpoint.
Submit an SMT-LIB 2.0 problem:
curl -X POST https://api.mcpte.ch/v1/smt \
-H 'Content-Type: application/json' \
-d '{"problem":"(declare-const x Int) (assert (= x 5)) (check-sat)"}'
Returns a job id:
{ "job_id": "0191cc2e-...+", "status": "queued" }
Poll for the result:
curl https://api.mcpte.ch/v1/jobs/{job_id}{ "status": "completed", "result": { "sat": true } }| Endpoint | Method | Purpose |
|---|---|---|
/v1/smt | POST | Solve an SMT-LIB 2.0 problem |
/v1/jobs/{id} | GET | Poll job status and result |
/v1/health | GET | Service health check |
Request a model with (get-model) in your SMT-LIB script (or list specific
assignments with (get-value ...)) and the result includes a model object
with each assignment as a string:
{
"status": "completed",
"result": { "sat": true, "model": { "x": "5", "on": "true" } }
}
Unsat results return "sat": false and — when requested — an unsat_core
array naming the conflicting assertions to help you debug. If the solver
cannot decide, "sat": null with an error message: that is not the same as
unsat.
| Method | Header | Notes |
|---|---|---|
| Free tier | (none) | Rate-limited per IP (daily limit) |
| API key | Authorization: Bearer <key> | Higher usage limits |
| x402 payment | X-PAYMENT: <base64 payload> | Pay-per-call via USDC micropayments |
A native Model Context Protocol server is available at
https://api.mcpte.ch/v1/mcp using the Streamable HTTP transport. Use it
from Claude Desktop, Cursor, and other MCP clients — it handles JSON parsing
and result polling for you, and this endpoint is available as a tool.
One file. Drop it in, your agent handles the rest.
mkdir -p .opencode/skills/mcptech
curl -fsSL https://mcpte.ch/skills/mcptech.zip \
-o /tmp/mcptech.zip && unzip -o -j /tmp/mcptech.zip \
'skills/mcptech/SKILL.md' -d .opencode/skills/mcptech/
mkdir -p .claude/skills/mcptech
curl -fsSL https://mcpte.ch/skills/mcptech.zip \
-o /tmp/mcptech.zip && unzip -o -j /tmp/mcptech.zip \
'skills/mcptech/SKILL.md' -d .claude/skills/mcptech/
mkdir -p .cursor/skills/mcptech
curl -fsSL https://mcpte.ch/skills/mcptech.zip \
-o /tmp/mcptech.zip && unzip -o -j /tmp/mcptech.zip \
'skills/mcptech/SKILL.md' -d .cursor/skills/mcptech/
mkdir -p .vscode/skills/mcptech
curl -fsSL https://mcpte.ch/skills/mcptech.zip \
-o /tmp/mcptech.zip && unzip -o -j /tmp/mcptech.zip \
'skills/mcptech/SKILL.md' -d .vscode/skills/mcptech/
Download and upload under Settings → Skills:
Download .zip