mcp-server-quint
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-quintrun a simulation of bank.qnt to check the no_negatives invariant"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-quint
MCP server for the Quint formal specification language. Wraps the Quint CLI to make formal verification accessible to any LLM-powered workflow.
Quick Start
1. Install Quint CLI
npm i -g @informalsystems/quint2. Add to Claude Code
claude mcp add quint -- npx @dpdanpittman/mcp-server-quintThat's it. You now have 6 formal verification tools available in Claude Code.
Other MCP Clients
Any MCP-compatible client can use this server over stdio:
npx @dpdanpittman/mcp-server-quintWith Supergateway (HTTP transport)
{ name: 'quint', command: 'node', args: ['/path/to/mcp-server-quint/index.js'] }Tools
quint_typecheck
Type-check a Quint specification. Provide either source (inline .qnt code) or file_path.
quint_run
Simulate a Quint spec with random execution. Optionally check an invariant. Returns a counterexample trace if violated.
Parameter | Description |
| Spec to simulate |
| Init action name (default: "init") |
| Step action name (default: "step") |
| Invariant to check |
| Number of runs (default: 10000) |
| Steps per run (default: 20) |
| Random seed for reproducibility |
quint_test
Run named test definitions (run statements). Optionally filter by match regex.
quint_verify
Exhaustive model checking via Apalache. Checks ALL reachable states, not just random samples. Requires Java 17+ and Apalache.
quint_parse
Parse a spec and return the intermediate representation (IR) as JSON.
quint_docs
Quick reference for Quint syntax. Topics: sets, maps, lists, actions, temporal, types, modules, testing, or all.
Example
module bank {
var balances: str -> int
val ADDRS = Set("alice", "bob")
action init = balances' = ADDRS.mapBy(_ => 100)
action transfer(sender: str, receiver: str, amt: int): bool = all {
balances.get(sender) >= amt,
balances' = balances.set(sender, balances.get(sender) - amt)
.set(receiver, balances.get(receiver) + amt)
}
action step = {
nondet sender = ADDRS.oneOf()
nondet receiver = ADDRS.oneOf()
nondet amt = 1.to(balances.get(sender)).oneOf()
transfer(sender, receiver, amt)
}
val no_negatives = ADDRS.forall(a => balances.get(a) >= 0)
}Environment Variables
Variable | Default | Description |
|
| Path to Quint CLI binary |
|
| CLI timeout in ms |
License
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dpdanpittman/mcp-server-quint'
If you have feedback or need assistance with the MCP directory API, please join our Discord server