Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Raptor Studio

PYPI · RAPTOR-STUDIO-MCP

Build, validate and simulate reliability block diagrams (RAM analysis) from an AI assistant.

Available components

−11 this week 65 Trust /100

Last scanned (7 hours ago)

Scores higher than 61% of PyPI servers

Category Testing and QA

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 0 of 23 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency87
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to OpenPowerShift/RaptorStudio). View diagnostics → Pass
  • License check failed: the license (LicenseRef-BAPL-1.0 AND Apache-2.0) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability70
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 15816 tokens (~225/item across 70 items; 67 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage72
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 2% of tool parameters carry a description.Partial
  • Structured output schemas are declared (78% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 69 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 −14
    • Malware scan: pass → unverified ▼ security
  • 3 Nov 26 +16
    • Malware scan: unverified → pass ▲ security
  • 2 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
    • Schema quality: 203 → 225 ▼ functional
    • Package version: 0.8.0 → 0.9.0 functional
  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Oct 26 76

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/raptor-studio-mcp@0.9.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo OpenPowerShift/RaptorStudio
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/OpenPowerShift/RaptorStudio/.github/workflows/release.yml@refs/tags/v0.9.0
Rekor log index 3637815556
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:212d8c9ac80b606b5df3f56fe11dfbc54eb448e4d9a6c45a7ae0da5382270c97

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Dependencies 23 packages
Packages resolved 23
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 67 exposed · ~15,378 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
list_tables ~198

List the tables that can be read or exported. Two groups: **Inputs** (the model's data: blocks, nodes, events, hierarchies, links, spare pools, resources, triggers, phases, system settings) and **Results** (a run's report sections, per-run figures and capacity samples). Pass `run_id` (from `simulate`) to include a run's result tables; without it only the inputs are listed and the result tables are shown as unavailable. Returns {tables: [{key, title, group, rows, available, reason, default}]}. `key` is what `get_table` and `export_tables` take, e.g. 'inputs.blocks' or 'results.summary'. `default` is false for the long ones (event log, end-of-run report, interim cost, all block columns).

NameTypeReqDescription
model_idstringyes–
run_id–––
NameTypeReqDescription
model_idstringyes–
run_idnull|stringyes–
tablesarrayyes–

No examples provided.

manage_rates ~129

Manage the model's named Rates library. action: 'list', 'add', 'update' or 'delete'. `expr` is an expression like "0.00015 * 20000 / 8760 # failure rate". Rates can then be referenced in any numeric field as `@RateName * k`, which keeps the derivation in the model's `formulas`. Returns {rates} for 'list', else the affected entry.

NameTypeReqDescription
actionstring––
description–––
expr–––
model_idstringyes–
name–––
NameTypeReqDescription
descriptionstring––
exprstring––
namestring––
ratesarray––
valuenumber––

No examples provided.

manage_resources ~150

Create, list, edit or delete a resource pool (shared crew/equipment). Resources are what a block's `resource_name` points at and what `configure_sparing(mode="resource")` consumes. `action='delete'` refuses while a block still names the resource. Fields match the `inputs.resources` table: `num_in`, `spare_cost`, `fixed_per_use`, `per_time_unit`, `phases`.

NameTypeReqDescription
actionstring––
fixed_per_use–––
model_idstringyes–
name–––
num_in–––
per_time_unit–––
phases–––
spare_cost–––

No output schema declared.

No examples provided.

manage_spare_pools ~313

Create, list, edit or delete a spare pool. action='list' returns every pool. `action='add'` needs `name`; `action='update'` patches only the fields you pass; `action='delete'` refuses while a block still has Pooled sparing that names the pool. These are the pools `configure_sparing(mode="pool")` draws from, with the stock and lead-time quantities spares planning needs. Field names match the `inputs.spare_pools` table and the .rbds `spare_pools` entries: `stock`, `new_spares`, `arrive_every` (restock interval, h), `eso`, `emer_time` (emergency shipping, h), `slo`, `level`, `quantity`, `slo_time`, `rso`, `spare_cost`, `emer_ship_cost`. The pool's own `stock` is what governs a Pooled block; the block's `stock` field is only used by Custom sparing.

NameTypeReqDescription
actionstring––
arrive_every–––
emer_ship_cost–––
emer_time–––
eso–––
level–––
model_idstringyes–
name–––
new_spares–––
quantity–––
rso–––
slo–––
slo_time–––
spare_cost–––
stock–––

No output schema declared.

No examples provided.

manage_triggers ~120

Create, list, edit or delete a trigger (for triggered PM). `dist` takes a name ("Normal") or a code; `params` its parameters. A block's PM can only name a trigger that exists, so add it here first. Deleting is refused while a block's PM still names it.

NameTypeReqDescription
actionstring––
dist–––
init_used–––
model_idstringyes–
name–––
params––Up to three distribution parameters
repeats–––

No output schema declared.

No examples provided.

move_element ~119

Move a block, node, event or hierarchy to another hierarchy level. `parent=0` moves it back to the top level; otherwise pass a hierarchy id. `update_element` refuses `parent` because it is structural, and the only alternative used to be deleting and recreating the element (losing its links, sparing and PM settings). A hierarchy cannot be moved into itself or one of its own descendants.

NameTypeReqDescription
model_idstringyes–
parentintegeryes–
selectorstringyes–

No output schema declared.

No examples provided.

open_model ~120

Copy a model file into the workspace and return its handle. The original file is never mutated. Accepts a .rbds or .rbd path **relative to the workspace** (or an `--allow-read` directory), or a bundled example name like 'MotorDemo'. Absolute paths are refused, as are paths outside those roots, so the MCP boundary cannot read arbitrary files. Returns {model_id, summary}. Allowed under --read-only (it never changes the source file).

NameTypeReqDescription
pathstringyes–
NameTypeReqDescription
model_idstringyes–
summarystringyes–

No examples provided.

ping ~20

Health-check: returns 'pong' if the server is running.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes–

No examples provided.

read_doc ~168

Read a documentation source as text (paginated). `name` is 'rbds' (the `.rbds` format guide), 'rbds-schema' (its JSON Schema; open_model, build_model and validate_model check files against it), 'dependency' (the dependency tutorial chapter), 'mcp-guide' (this MCP chapter), a tutorial chapter stem like 'ch11-capacity', a chapter title fragment, or a path under `docs/` or `new_docs/`. `offset`/ `limit` page the lines (limit <= 400). Returns {name, file, total_lines, offset, next_offset, text}.

NameTypeReqDescription
limitinteger––
namestringyes–
offsetinteger––
NameTypeReqDescription
filestringyes–
namestringyes–
next_offsetinteger|nullyes–
offsetintegeryes–
textstringyes–
total_linesintegeryes–

No examples provided.

redo_last_edit ~56

Step one edit forward again after `undo_last_edit` (multi-step). Fails with a clear error once there's nothing left to redo, or once a new edit has cleared the redo history.

NameTypeReqDescription
model_idstringyes–
NameTypeReqDescription
restored_versionintegeryes–
summarystringyes–

No examples provided.

render_diagram ~451

Render the model diagram as a PNG image. `level` is a **hierarchy id**, not a depth index: 0 renders the whole model (home level); to render inside a hierarchy pass its id, e.g. the hierarchy `id=900` is `level=900` (read hierarchy ids from `describe_model`). Passing `1`/`2` is a common mistake and reports the available ids. `zoom_to` frames a **close-up** on one or more named/id'd elements (block/node/event/hierarchy) **within the current `level`** (it does not change which level is shown), padded by `margin` scene units — the way to render a large model legibly in sections. A selector is a name, a bare id, or `"Kind:id"` (e.g. `"Block:3"`); a selector that matches nothing, or a bare id matching two element kinds, is an error. The structured result carries `px_per_unit`, `effective_label_px` and `legible` (a heuristic: `effective_label_px >= 7`), so a caller can tell whether the text is readable and zoom in further if not. Returns image content plus structured {width, height, elements_drawn, elements_in_view, px_per_unit, effective_label_px, legible, png_path, resource_link}. `highlight` outlines named elements (e.g. the single points of failure). `theme` is 'light' or 'dark'. `include_annotations` draws the model's text/rect/ellipse/arrow annotations (default true). This is the only RAPTOR tool that returns a picture: results are always Markdown/data. The PNG is capped at 1600 px on the long edge and is also written to renders/ in the workspace.

NameTypeReqDescription
highlight–––
include_annotationsboolean––
levelinteger––
marginnumber––
max_pxinteger––
model_idstringyes–
themestring––
zoom_to–––

No output schema declared.

No examples provided.

render_diagram_svg ~302

Draw one level of the diagram as SVG text, without Qt. For checking layout, connections and annotations when `render_diagram` (a PNG of the GUI canvas) is unavailable, or when SVG text is easier to read than an image. It draws blocks, nodes (S/E, HI/HO, k/n), events, hierarchy ovals, links with arrowheads and annotations at the GUI's scene positions; it does not measure fonts (long names are shortened, the full name is in each element's `<title>`) or show state colours. `level` is 0 for the top level or a **hierarchy id** (not a depth). `zoom_to` frames the named elements on that level, padded by `margin` scene units; `highlight` outlines them. A selector is a name, a bare id or `"Kind:id"`. Returns the SVG in the text result (up to 200 KB; larger drawings are only written to the file) and structured {svg_path, width, height, elements_drawn, elements_in_view, links_drawn, annotations_drawn, highlighted, inline}. The file is written to renders/ in the workspace.

NameTypeReqDescription
highlight–––
include_annotationsboolean––
levelinteger––
marginnumber––
model_idstringyes–
themestring––
zoom_to–––
NameTypeReqDescription
annotations_drawnintegeryes–
elements_drawnintegeryes–
elements_in_viewintegeryes–
heightintegeryes–
highlightedarrayyes–
inlinebooleanyes–
levelintegeryes–
links_drawnintegeryes–
rendererstringyes–
resource_linkstringyes–
svg_pathstringyes–
widthintegeryes–
zoom_toarrayyes–

No examples provided.

run_status ~207

Progress of a job started with `start_run`. Returns {job_id, model_id, state, phase, setup, completed_runs, requested_runs, percent, elapsed_s, wall_seconds, run_id, summary, error}. `state` is queued, running, done, cancelled or failed. `phase` adds what a running job is doing: `setting_up` while a large model is prepared (`setup` then has `{stage, done, total, percent}`; it can take minutes before the first replication, and `completed_runs` stays 0), then `simulating`. Small models skip straight to `simulating` and `setup` is null. `run_id` is set once the batch has produced a run, and `summary` then carries the mean of each metric. Jobs are in-process only -- after a server restart the run is still in the workspace, the job id is not.

NameTypeReqDescription
job_idstringyes–

No output schema declared.

No examples provided.

save_model_as ~174

Save a model to a file path. The path must be inside the workspace or an --allow-write directory. format: 'rbds' (default) or 'rbd'. If `path` has **no extension** the format's own extension is appended (so `"out"` -> `out.rbds`). An explicit extension must match `format`; a mismatch or a path into the managed models/runs/renders trees is refused. A .rbd export runs validate() first and refuses on ERROR. The layout is saved as it is; `layout_warning` says when Raptor 7 would draw elements overlapping (call `auto_layout` first to space them out).

NameTypeReqDescription
formatstring––
model_idstringyes–
pathstringyes–
NameTypeReqDescription
bytesintegeryes–
droppedarrayyes–
formatstringyes–
layout_warningnullyes–
pathstringyes–

No examples provided.

search_docs ~91

Search the RAPTOR tutorial docs for passages matching a query. Multi-word queries match passages containing **all** terms (so "capacity analysis system capacity" finds the capacity passages, not nothing). Returns {results}, each {chapter, file, anchor, text, score}. Use `read_doc` to read a whole document.

NameTypeReqDescription
limitinteger––
querystringyes–
NameTypeReqDescription
resultsarrayyes–

No examples provided.

simulate ~684

Run a simulation and return structured results. `hierarchy` (a name or id) runs just that hierarchy on its own, its input always available -- useful for checking part of a model. This is a port extension, not a Raptor feature: the result carries an `isolation` object (hazards at the boundary, the treatment applied to each) and must not be read as a whole-model figure. `treatments` is `{deps: up|system| refuse, pools: full|share|refuse, streams: keep|separate, items: {...}}`; call `extract_hierarchy` with `report_only` first to see the hazards. Long runs send MCP progress notifications about once a second and can be cancelled by the client (the engine stops between replications). Returns {run_id, model_id, model_hash, runs, requested_runs, truncated, wall_seconds, summary, warnings, caveats}; `summary` has each metric with min/mean/max/stdev/sem. With capacity analysis on, `summary` adds Units_Produced, Mean_Flow, Mean_Capacity, Capacity_Weighted_Availability (Mean_Flow / FlowGenerated: the delivered fraction, where Availability only means some flow got through) and Lost_Flow. `caveats` is the model-validation subset of `warnings` (surfaced separately so a client can show them first). The Markdown body is a table with units in the headers. The model is **validated first**; structural errors are returned with the issue list instead of running. The run is estimated first and refused with a clear message if the estimate exceeds `timeout_s`, unless `confirm_long_run=true`. `workers > 1` is faster but not bit-identical to a sequential batch. Leave `workers` out and a large model (500+ blocks, events and nodes) run 20+ times uses several cores (half the machine's, at most 8); the result reports the `workers` used and `workers_auto`. Pass `workers=1` for the sequential numbers. This is a server default only: the desktop app and the command line are unchanged. `seed` (optional, non-negative) re-rolls the batch reproducibly; leaving it unset keeps the engine's fixed…

NameTypeReqDescription
collect_eventsboolean––
confirm_long_runboolean––
date–––
hierarchy–––
importance–––
model_idstringyes–
num_runs–––
run_length–––
seed–––
timeout_snumber––
treatments–––
workers–––
NameTypeReqDescription
caveatsarrayyes–
display_unitstringyes–
estimate_secondsnumberyes–
estimated_wall_secondsnull|numberyes–
isolationobject––
model_hashstringyes–
model_idstringyes–
requested_runsintegeryes–
run_idstringyes–
runsintegeryes–
summaryobjectyes–
total_secondsnumberyes–
truncatedbooleanyes–
unitsstringyes–
wall_secondsnumberyes–
warningsarrayyes–
workersintegeryes–
workers_autobooleanyes–

No examples provided.

single_point_failures ~189

Find single-point failures in the model. A single point failure is an element whose failure alone takes the system down, found as Raptor does (by failing each element in Failure Effects View, so dependencies and cold standby count). Returns {spofs, count, total, offset, next_offset, elapsed_seconds, cached}; each spof is {kind, id, name, crit} plus `phase` for a phased model. `limit` pages the response (default 100, use 0 for all); the full row set is still computed and cached by model content, so later pages and repeated calls are instant. `workers > 1` parallelises the candidate tests on an unphased model.

NameTypeReqDescription
limitinteger––
model_idstringyes–
offsetinteger––
workersinteger––
NameTypeReqDescription
cachedbooleanyes–
countintegeryes–
elapsed_secondsnumberyes–
next_offsetinteger|nullyes–
offsetintegeryes–
spofsarrayyes–
totalintegeryes–

No examples provided.

start_run ~287

Start a simulation in the background and return a job id immediately. Same arguments as `simulate`, minus the hierarchy/isolation and importance options. Use this for batches that outlive one tool call (a 100-replication, 20-year run is tens of minutes): the engine runs on a daemon thread, `run_status` reports progress, `cancel_run` stops it between replications, and the completed run is an ordinary workspace run (`run_id`) whose results `get_run_results`, `get_table` and `get_report` can read. The model is validated and the batch size checked *before* the job starts, so a structural error is reported here rather than asynchronously. `workers` defaults as it does for `simulate`: a large model run 20+ times uses several cores unless you pass `workers=1`. Returns {job_id, state, phase, setup, requested_runs, ...}. `run_status` shows `phase` (`setting_up` while a big model is being prepared, then `simulating`) and `setup` progress, so a long quiet start is not a hang.

NameTypeReqDescription
collect_eventsboolean––
model_idstringyes–
num_runs–––
run_length–––
seed–––
timeout_snumber––
workers–––

No output schema declared.

No examples provided.

sweep_parameter ~229

Sweep a parameter across values and measure the impact. Works on copies — the original model is untouched. `field` may be a friendly field or an indexed form like `repair_params[0]`. Each row carries the `run_id` and the `runs` count that produced it. Returns {rows, monotonic, all_rows_identical, warnings} plus a Markdown table; `all_rows_identical` is true when every row's metrics are bit-identical (which cannot be told apart from "the value was never applied"), and `warnings` says so. `monotonic` looks at the first swept metric and treats a flat or single-row series as monotonic; `all_rows_identical` needs at least two rows. Concurrent sweeps are serialised, so two in one batch both succeed.

NameTypeReqDescription
fieldstringyes–
metrics–––
model_idstringyes–
num_runsinteger––
selectorstringyes–
valuesarrayyes–
NameTypeReqDescription
all_rows_identicalbooleanyes–
fieldstringyes–
markdownstringyes–
monotonicbooleanyes–
rowsarrayyes–
selectorstringyes–
warningsarrayyes–

No examples provided.

undo_last_edit ~97

Step one edit back (multi-step: call again to go further back). Every edit tool backs up the prior state first (up to 20 deep), so repeated calls walk further back rather than repeating the same restore. Each undo can itself be undone with `redo_last_edit`, until a new edit is made -- which clears the redo history, same as any other editor.

NameTypeReqDescription
model_idstringyes–
NameTypeReqDescription
restored_versionintegeryes–
summarystringyes–

No examples provided.

update_annotation ~204

Patch one annotation. Accepts any style field, `text`, explicit geometry (`x`/`y`/`w`/`h`/ `x1`/`y1`/`x2`/`y2`, in scene pixels or with `"units": "model"`), or an anchor via `adjacent_to`/`location`/`gap` (text/rect/ellipse) or `from_`/`to` (arrow). Re-anchoring to another annotation uses `adjacent_to="Annotation:<id>"` (or its unique label). Moving an anchored annotation by coordinates removes its anchor, as dragging it in the GUI does; `"anchor": null` removes it and leaves the annotation where it is. Returns {annotation_id, annotation, summary}.

NameTypeReqDescription
annotation_idintegeryes–
model_idstringyes–
patchobjectyes–
NameTypeReqDescription
annotationobjectyes–
annotation_idintegeryes–
summaryobjectyes–

No examples provided.

update_element ~1,165

Update fields on an element. `selector` is an element name, 'Block:N' / 'Node:N' / 'Event:N', a link ('Link:N', which carries capacity: `nom_flow`, `max_flow`, `cap_pri`), or an auxiliary row by name ('Pool:RackSpares', 'Resource:Crew', 'Trigger:Storm', 'Phase:Summer' -- the bare name works too). `patch` accepts any friendly .rbds field (e.g. `fail_params`, `pm_freq`, pool `stock`) or a raw column name, including indexed forms like `repair_params[0]`. `fail_dist`/`repair_dist` take a distribution name ("Weibull") or a code. To make a block dependent on another element use `dep_type` (RBDBlock/RBDNode/RBDEvent/RBDHier), `dep_num` (the target's id; -1 = own node, -2 = whole system) and the effect split `dep_nothing`/`dep_idle`/`dep_pm`/`dep_fail` (percent); read it back with `get_element`. Numeric fields may be numbers OR expression strings such as "50.0 + @Rate * 1.4 # basis"; expressions are resolved to a float and their derivation is kept in the model's `formulas`. Returns {changed, warnings, element} where `element` is a compact {id, name, kind} summary; pass full=true for every field of the element. A value RAPTOR Studio's dialogs refuse (a PM stagger at or above the PM frequency, a cost below 0, a name with a space, ...) is refused with RAPTOR Studio's own message and the model is left unchanged. A problem the model already had (a file written elsewhere) does not block other edits.

NameTypeReqDescription
fullboolean––
model_idstringyes–
patchobjectyesField -> value. Friendly names by element kind (the .rbd file's column names and indexed forms such as repair_params[0] also work) -- Block: add_done, amount_exhausted, amt_exhausted, arrive, arrive_…
selectorstringyes–
NameTypeReqDescription
changedobjectyes–
elementobjectyes–
warningsarrayyes–

No examples provided.

update_elements ~164

Update many elements with one save. Same `selector` and `patch` semantics as `update_element`, but the whole list is applied inside one workspace batch: the model is written once at the end instead of once per element. On a large model this is the difference between seconds and tens of minutes (one `update_element` on a ~10k-element model costs ~10 s). The batch is atomic: if any item is refused, the model is restored to its state before the call and nothing is written. Returns {updated, results: [{selector, id, name, kind, changed}]}.

NameTypeReqDescription
model_idstringyes–
updatesarrayyesList of {"selector": str, "patch": {...}} objects

No output schema declared.

No examples provided.

validate_model ~94

Validate a model for structural and parameter errors. Returns {errors, warnings, groups, runnable}. `groups` collapses the same rule firing on many elements into one row (rule, count, example elements), which is what makes a 700-error model readable; `errors` and `warnings` keep the verbatim per-element list. Always call this before a run.

NameTypeReqDescription
model_idstringyes–
NameTypeReqDescription
errorsarrayyes–
groupsarrayyes–
runnablebooleanyes–
warningsarrayyes–

No examples provided.

workspace_info ~84

Return the server workspace root and read/write rules. Learn where models/runs/renders live and which directories `save_model_as` may write to (the workspace plus any `--allow-write` dirs) and `open_model` may read from (the workspace, examples and any `--allow-read` dirs). Relative save paths resolve against the workspace root.

Input schema present but exposes no named parameters.

NameTypeReqDescription
allowed_readarrayyes–
allowed_writearrayyes–
block_defaultsobjectyes–
max_bytesintegeryes–
max_modelsintegeryes–
max_total_modelsintegeryes–
retain_daysintegeryes–
rootstringyes–

No examples provided.

Install

How do I install the Raptor Studio MCP server?

Raptor Studio runs locally as a PyPI package, launched with uvx raptor-studio-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · raptor-studio-mcp

# add to Claude Code
claude mcp add openpowershift-raptor-studio -- uvx raptor-studio-mcp
Common questions

What is the Raptor Studio MCP server?

Raptor Studio is an MCP server listed in the public MCP registry as io.github.OpenPowerShift/raptor-studio. Build, validate and simulate reliability block diagrams (RAM analysis) from an AI assistant. This page covers its PyPI package (raptor-studio-mcp).

Is the Raptor Studio MCP server safe to use?

Raptor Studio scores 65 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Raptor Studio MCP server expose?

Raptor Studio exposes 67 tools: ping, list_distributions, list_models, open_model, create_model, and 62 more. Their descriptions and schemas cost roughly 15,378 tokens of context every time the server is loaded.

Is the Raptor Studio MCP server still maintained?

Raptor Studio is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Raptor Studio MCP server under?

Raptor Studio declares the LicenseRef-BAPL-1.0 AND Apache-2.0 licence, which is not on the OSI-approved list. Read the terms before using it at work, and note this covers the source only, not the cost of any service it calls.