Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MCP server for Boolean network simulation and attractor analysis using MaBoSS
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"maboss": {
"command": "uvx",
"args": [
"mcp-biomodelling-servers"
]
}
}
}Run this in your terminal
claude mcp add maboss -- uvx mcp-biomodelling-serversPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"maboss": {
"command": "uvx",
"args": [
"mcp-biomodelling-servers"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"maboss": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-biomodelling-servers"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account marcorusc, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (2.5.2) reached the registry 9 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Reelsaw
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drive a self-hosted Reelsaw: turn long videos into vertical clips, edit, re-render and export them.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
The Wave 2 integration guide covers summary readouts, named rate editing, persistent run IDs, bounded results and handoff 2.1.
The MaBoSS server exposes stochastic Boolean-model construction, configuration, simulation, analysis, and export through the Model Context Protocol (MCP). It uses pyMaBoSS as its simulation engine and can participate in a verified modelling pipeline from NeKo to MaBoSS to PhysiCell.
The server is distributed in the mcp-biomodelling-servers Python package and communicates over stdio.
Install all three bio-modelling servers:
python -m pip install mcp-biomodelling-servers
Start the installed MaBoSS server:
mcp-maboss-server
Alternatively, run it in an isolated environment:
uvx --from mcp-biomodelling-servers mcp-maboss-server
The server does not need the separate MaBoSS executable. It validates and simulates models with cmaboss, the compiled engine installed with pyMaBoSS, in a child Python process so a long simulation never blocks the server. Loading a model that the engine rejects fails with the engine's message.
See the repository README for the supported Python versions, complete MCP client configuration, source-checkout instructions, and shared runtime behavior.
Every model belongs to a MaBoSS session. Start by calling create_session(), retain the returned session_id, and pass it explicitly when more than one model is active. When session_id is omitted, tools use the active default session.
create_session creates an isolated in-memory session and may attach a human-readable label.list_sessions reports active sessions and whether each has a model or simulation result.list_artifact_sessions discovers session artifacts left by earlier server processes.set_default_session selects the session used by calls that omit session_id.delete_session removes in-memory state and, by default, its artifact files.Generated BND, CFG, CSV, PNG, and handoff files are stored under the server's session-scoped artifacts/ / directory. Use list_generated_files() to obtain their resolved paths instead of guessing them.
For a standalone BNET model, use the following order:
create_session().bnet_to_bnd_and_cfg(bnet_path).build_simulation().get_maboss_nodes() and use only the returned node names.update_maboss_parameters(), get_maboss_initial_state(), and get_maboss_logical_rules().set_maboss_output_nodes(...).run_simulation().get_simulation_result().visualize_network_trajectories().bnet_to_bnd_and_cfg() writes output.bnd and output.cfg into the session artifact directory. With no paths supplied, build_simulation() automatically loads those files. If the server cannot read your BNET file (a host that sandboxes each server), pass its complete content as bnet_text instead of bnet_path; it is stored verbatim in the session artifact directory.
A Boolean network with N visible outputs can produce up to 2^N states.
Always call
set_maboss_output_nodes()beforerun_simulation(). Selecting
only the outputs needed for the scientific question reduces both runtime and
result size.
Call update_maboss_parameters() without a parameters value to inspect all parameters supported by the loaded model. Supply only the values that should change:
{
"parameters": { "sample_count": 10000, "max_time": 100, "time_tick": 0.5, "thread_count": 4 }, "session_id": "SESSION_ID" }
Common parameters include:
| Parameter | Meaning |
|---|---|
sample_count | Number of stochastic trajectories |
max_time | Simulation time horizon |
time_tick | Interval between reported time points |
discrete_time | Discrete-time toggle, 0 or 1 |
thread_count | Number of simulation threads |
The server also accepts backend parameters exposed by the loaded MaBoSS version. Unknown parameter names produce a recoverable tool error.
First call get_maboss_nodes(), then provide a non-empty subset:
{
"output_nodes": ["Apoptosis", "Proliferation"], "session_id": "SESSION_ID" }
Inspect the existing distribution with get_maboss_initial_state() before changing it.
For one node, provide [P(OFF), P(ON)]:
{
"nodes": "DNA_damage", "probDict": [0.2, 0.8], "session_id": "SESSION_ID" }
For multiple nodes, use JSON-native state/probability records. State-vector order must match the order in nodes, each state must contain only 0 or 1, and the probabilities must sum to 1:
{
"nodes": ["DNA_damage", "Growth_signal"], "probDict": [ {"state": [0, 0], "probability": 0.4}, {"state": [1, 0], "probability": 0.6} ], "session_id": "SESSION_ID" }
The listed states do not have to cover every possible combination, but states must be unique and each vector must have the same length as nodes.
get_maboss_logical_rules returns the current Boolean rules, up to 100 nodes unless selected_nodes is given (truncated reports when more exist). A rule_limitation marks nodes whose custom rate expressions mean the rule alone does not describe their switching; inspect those with get_maboss_nodes.change_maboss_rule replaces one node's rule and restores the previous rule if model validation rejects the change.get_maboss_mutations reports mutations currently stored in the model.simulate_mutation runs a mutant copy without changing the session's base simulation.For example:
{
"nodes": ["TP53", "AKT"], "state": ["ON", "OFF"], "session_id": "SESSION_ID" }
Mutation states are ON, OFF, or WT. A single state may be applied to all requested nodes, or a state list may be supplied in node order.
run_simulation() executes the loaded model in a worker thread, stores the pyMaBoSS result in the session, reports MCP progress, and writes a non-empty state-probability table to result.csv.
get_simulation_result() returns both:
The same Markdown result is available through maboss://session/{session_id}/result.
After run_simulation(), call:
{
"session_id": "SESSION_ID", "until": 50 }
on visualize_network_trajectories.
The optional until parameter is the maximum simulation time displayed. It must be a finite number greater than zero. Omit it to plot the full available trajectory.
The tool:
plot_trajectory(until=...);ImageContent block with MIME type image/png;network_trajectory.png in the session artifact directory.An MCP client must support rendering image content blocks to display the plot inline. The saved artifact remains available when a client presents only the textual or structured part of the result.
Prefer import_neko_handoff(manifest_path) when the Boolean model comes from the NeKo MCP server. The tool:
neko-to-maboss manifest and artifact hashes;If the manifest declares no output nodes, call set_maboss_output_nodes() before running or exporting the model.
If this server cannot read NeKo's files (a host that sandboxes each server), pass handoff_bundle, the object returned by NeKo export_handoff_bundle, instead of manifest_path. See Hosts that sandbox each server.
Call export_maboss_handoff(target_cell_type=...) to produce an integrity-protected maboss-to-physicell handoff. It snapshots:
A standalone MaBoSS model must provide biological_context. A model imported from NeKo may inherit that context. The export refuses to overwrite existing handoff artifacts, so choose a new artifact_prefix for every retained handoff.
For a PhysiCell server that cannot read MaBoSS's files, call export_handoff_bundle(manifest_path=...) here and pass the result to import_maboss_handoff(handoff_bundle=...). The bundle also carries the NeKo parent manifest and its files.
Use export_maboss_bnd_cfg() when only standalone MaBoSS files are needed. Use export_maboss_handoff() when PhysiCell needs typed scientific context, integrity metadata, and provenance.
| Category | Tools |
|---|---|
| Sessions | create_session, list_sessions, list_artifact_sessions, set_default_session, delete_session |
| Import and loading | import_neko_handoff, bnet_to_bnd_and_cfg, build_simulation |
| Inspection | get_maboss_nodes, get_maboss_initial_state, get_maboss_logical_rules, get_maboss_mutations |
| Configuration | change_maboss_rule, edit_maboss_readouts, update_maboss_parameters, set_maboss_output_nodes, set_maboss_initial_state |
| Simulation and analysis | run_simulation, simulate_mutation, get_simulation_result, visualize_network_trajectories |
| Export | export_maboss_bnd_cfg, export_maboss_handoff, export_handoff_bundle |
| Artifacts | list_generated_files, clean_generated_files |
The server exposes read-only resources for clients that support MCP resource templates:
| URI | Content |
|---|---|
docs://maboss/agent_manual | Complete agent operating manual |
maboss://session/{session_id}/nodes | Network node names |
maboss://session/{session_id}/parameters | Current parameters |
maboss://session/{session_id}/initial_state | Initial-state distribution |
maboss://session/{session_id}/logical_rules | Boolean rules |
maboss://session/{session_id}/mutations | Current mutations |
maboss://session/{session_id}/result | Latest in-memory state-probability result (use get_simulation_result(run_id=...) for saved runs) |
maboss://session/{session_id}/files | Generated artifact files |
maboss_workflow_prompt exposes the same recommended operating rules as an MCP prompt.
Each successful file-backed run_simulation and simulate_mutation call preserves a unique run_ artifact set before pyMaBoSS releases its temporary directory:
Only the beginning is shown; read the rest in the repo