Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
MCP server for Boolean network simulation and attractor analysis using MaBoSS
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"maboss": {
"command": "uvx",
"args": [
"mcp-biomodelling-servers"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add maboss -- uvx mcp-biomodelling-servers프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"maboss": {
"command": "uvx",
"args": [
"mcp-biomodelling-servers"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"maboss": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-biomodelling-servers"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 marcorusc 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(2.5.2)은 9일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Fomu MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
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.
Kenya government form guides: checklists, draft letters, eCitizen, Huduma, timelines. Sample data.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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:
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요