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.

OpenSysML MCP server

NPM · @OPENMBEE/SYSML-MCP

SysML v2 and KerML for coding agents: workspace diagnostics and edits, execution, REPL sessions.

Available components

+6 this week 77 Trust /100

Last scanned (6 hours ago)

Scores higher than 55% of npm servers

Category Developer Tools

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 Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 5 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability81
  • 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 22206 tokens (~115/item across 193 items; 83 tools + 110 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 Management43
  • Stability observed for 13 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety81
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 1 of 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "execute_action" implies "execute" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 85 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
What we tested

Checks we ran (16)

  • Malware scan
  • Known CVEs
  • Install scripts
  • Dependency health
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

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.

  • 6 Nov 26 0
    • Stability: 0.40 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Package version: 0.11.0 → 0.12.1 functional
  • 5 Nov 26 +6
    • Stability: unverified → 0.40 ▲ functional
  • 26 Oct 26 0
    • Security disclosure: fail → pass ▲ functional
  • 25 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 24 Oct 26 56

    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 6 Nov 2026 · Analysed npm/@openmbee/sysml-mcp@0.12.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 5 packages
Packages resolved 5
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 83 exposed · ~18,022 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
advance ~125

Advance the debuggers' simulation clock (%advance), running every state event, action token, change-condition poll and do behavior that comes due, in due order, and report what ran and where the debuggers stand. The clock is the session's: a debugged action and machine both move.

NameTypeReqDescription
sessionstring–session name; omit for the default session
timenumberyestime units (seconds) to advance the debuggers' clock by, running every event, token and do behavior that comes due; 0 dispatches what is already due
NameTypeReqDescription
activeStatesnull|array––
breakpointsnull|array–action: the nodes breakpoints are set at
currentStatestring–state machine: the active state, or one per orthogonal region
endedbooleanyescompleted or terminated
kindstringyesaction or state for the executor described (with both debugged, the one still running, else the action); check when the behavior was checked over every schedule rather than stepped; empty when no deb…
lastEventAtnumber––
namestring–the behavior as named
pausedAtstring–action: the breakpoint the run last stopped at
performerstring–the object performing it
qualifiedstring–its qualified name
queuedEventsinteger––
resultsnull|array–action: the values its features hold, outputs included
signalsInFlightnull|array–signals sent and not yet dispatched to the machine
statestring–the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated
stateDatanull|array––
stateStacknull|array–the active configuration, outermost first
suspendReasonstring–why the machine cannot progress
textstringyeswhat the prompt printed
timenumber–state machine: the clock
tokensnull|array–action: the active tokens

No examples provided.

apply_edits ~487

Apply source-preserving edits to a parsed model and return the edited notation (the ApplyEdits RPC): set a value, rename with every reference, add a member, import, documentation, comment, connection, transition, satisfy or metadata, delete, move. Edits are located from the parsed spans, so comments and layout outside them are kept, and the result is re-parsed and validated before it is answered; a refused batch answers `error` and `failure` naming why, and nothing is applied. Nothing is written to disk: the edited text comes back as `content` (one document) or `documents` for the agent to write. The result is the ApplyEditsResponse as protojson writes it.

NameTypeReqDescription
acceptDocumentsboolean–read the edited documents from the documents field, which a model of several documents needs; without it such a model is refused
documentstring–the document whose declarations the operations target, named as the parse named it; empty is the model's first document
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
operationsnull|array–edits to apply, all or none, each a protojson EditOperation with one arm: {"setValue":{"target":qualified name,"value":expression text}}, {"rename":{"target":..,"newName":..}}, {"addMember":{"owner":…
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning

Structured output declared, but exposes no named fields.

No examples provided.

apply_model_edit ~189

Edit a model by operations on its elements rather than by text: setValue, rename, addMember, addConnection, addSequence (action-body items), delete, move, and the diagram-layout annotations setLayout, setRoute, setCanvas, setStyle, setNote, setPicture. Targets and owners are qualified names as render_view reports them in nodes[].fqn. Returns the text edits the operations amount to, per document, and the operations refused with why; writes the files only with apply=true.

NameTypeReqDescription
applyboolean–write every affected file, all or none, each replaced atomically (its mode is kept, other inode metadata is not); false (the default) only returns the edits
operations–yesthe operations, applied in order against the document's current text
pathstringyesthe document the operations address, absolute or relative to the workspace root
NameTypeReqDescription
appliedbooleanyeswhether the edits were written to disk
changesnull|arrayyesthe text edits the operations amount to, per document; empty when every operation was refused
refusednull|array–operations not carried out, by index, with the failure code and message (ranges inside are LSP ranges, 0-based)
versionintegeryesthe version of the document the edits apply to

No examples provided.

check ~87

Ask an SMT solver whether a constraint, requirement or satisfaction can be satisfied at all (%check, experimental), with a satisfying assignment when it can. Needs z3 or cvc5 installed; the status is unavailable otherwise.

NameTypeReqDescription
namestringyesqualified name of the constraint, requirement, satisfaction, part or analysis case
sessionstring–session name; omit for the default session
NameTypeReqDescription
reportsnull|arrayyes–
textstringyes–

No examples provided.

check_behavior ~682

Search every schedule of an action or state machine (the CheckBehavior RPC, the REPL's %check-property/%check-diverge settings about %action/%state): a property false at a stable state, a deadlock, a failure or a feature whose final value the schedule decides is witnessed and replayed. `verdict` is holds, fails or undecided; `violations`, `divergences` and `finals` carry each witness as its replay schedule, draws and choices, and the witness file when asked for. With checkInput or checkAssume the symbolic engine answers with `claim`, the inputs it ranged over and its witnesses. Bounded by checkDepth, checkStates and checkTimeout. The result is the CheckBehaviorResponse as protojson writes it.

NameTypeReqDescription
actionSymbolIdstring–qualified name of the action definition or usage to check; give this or stateMachineSymbolId
checkAssumenull|array–constraints or requirements the symbolic engine assumes (-check-assume)
checkDepthinteger–moves one schedule may make; 0 is the engine's default (-check-depth)
checkDivergenull|array–features whose final value the schedule may decide (-check-diverge); the action's own bare, a node's as node.pin, the performer's as this.<name>
checkInputnull|array–inputs left free for the symbolic engine to range over (-check-input)
checkPropertynull|array–constraints or requirements evaluated at every stable state; one false at a state is a violation (-check-property)
checkStatesinteger–distinct states the search may visit; 0 is the engine's default (-check-states)
checkTimeoutnumber–seconds the search and each solver query may take; 0 is none (-check-timeout)
checkUnrollinteger–loop iterations the symbolic engine unrolls; 0 is its default (-check-unroll)
checkWitnessboolean–carry each violation's and divergent value's witness file in the answer, for a replay schedule to follow (-check-witness)
enginestring–the engine asked: check (the default), smt, or one list_engines names
inputsobject–input parameter name to value, each a protojson Value. Example arms: {"intValue":"7"}, {"realValue":1.5}, {"boolValue":true}, {"stringValue":"x"}
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
performerSymbolIdstring–qualified name of a part/usage, or a path from one, whose object performs the behavior; empty performs it outside any object
sourcesnull|array–documents given inline, parsed with paths as one model
stateMachineSymbolIdstring–qualified name of the state definition or usage to check; give this or actionSymbolId
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning

Structured output declared, but exposes no named fields.

No examples provided.

close_document ~60

Release a document held open by open_document: the server goes back to the file on disk (or forgets the document when there is no file). Nothing is written.

NameTypeReqDescription
pathstringyesan open document, absolute or relative to the workspace root
NameTypeReqDescription
diagnosticsnull|arrayyesthe diagnostics of the text now held
openbooleanyeswhether the server now holds an open buffer for the document
pathstringyes–
versionintegeryesthe buffer's version, incremented by each update

No examples provided.

code_actions ~98

List the quick fixes and refactorings available for a range of a document, each with the edits it would make. Nothing is applied; write the edits with your own file tools or use the rename/format/apply_model_edit tools with apply=true.

NameTypeReqDescription
pathstringyesthe document, absolute or relative to the workspace root
rangenull|object–the lines of interest (1-based); omitted, the whole document
NameTypeReqDescription
actionsnull|arrayyes–

No examples provided.

compare_results ~494

Run every configuration a SysML v1 tool's results sidecar indexes against the migrated model (the CompareResults RPC, the CLI's -compare-results with -action, -runs, -seed, -draws, -clock-step and -observe): each on its target, for its recorded run count under its duration mode, or the runs and draws given, and table the tool's and OpenSysML's min, mean, p50, p90 and max of each observable with their relative difference. `configurations` carry each one's status (holds, fails, unresolved), its rows, the distributions compared, the errors and notes, and the lines the CLI prints. The result is the CompareResultsResponse as protojson writes it.

NameTypeReqDescription
actionsnull|array–the configurations compared, by qualified or simple name (the CLI's -action); every indexed configuration when empty
clockStepnull|number–the clock step replacing every configuration's, in seconds; 0 is a continuous clock (the CLI's -clock-step)
drawsstring–the draw policy replacing every configuration's durationSimulationMode: random, min, max or average (the CLI's -draws)
enginestring–the engine selection, as list_engines names them
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
observenull|array–the stored observables compared, each with the feature of the run that answers it (the CLI's -observe)
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
resultsstringyesthe results sidecar as JSON, as sysml -migration-results writes it
runsinteger–the runs made of every configuration when positive (the CLI's -runs); else each configuration's own numberOfRuns, or one
seednull|integer–the seed the runs derive theirs from (the CLI's -seed); without one, runs that draw at random are refused unless draws fixes them
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning

Structured output declared, but exposes no named fields.

No examples provided.

completion ~76

Propose completions at a position: keywords, names in scope and members of the type being accessed.

NameTypeReqDescription
pathstringyesthe document, absolute or relative to the workspace root; a sysml://stdlib/<file> URI for a standard library document
positionobjectyesthe position (1-based line and character column)
NameTypeReqDescription
isIncompleteboolean––
itemsnull|arrayyes–

No examples provided.

configure ~166

Ask an SMT solver which variants an element's conditions permit (%configure, experimental): a consistent selection, the check of the selections given, or every consistent selection up to a limit. A part or definition is configured over every assertion about its objects. Read-only: no variant is bound.

NameTypeReqDescription
allboolean–enumerate every consistent selection instead of one. Not with selections
limitinteger–with all: at most this many selections
namestringyesqualified name of the constraint, requirement, satisfaction, part or definition whose variations are configured
selectionsnull|array–variants to fix, written variation=variant; the selection is checked and a conflict named. Not with all
sessionstring–session name; omit for the default session
NameTypeReqDescription
reportsnull|arrayyes–
textstringyes–

No examples provided.

convert ~620

Convert a SysML v2 model between the representations OpenSysML writes — textual notation, RDF Turtle, the API's JSON element form — (the Convert RPC, the CLI's -convert). Name the model by modelHash, paths or sources (the source the parse read is converted), or by filePath or inline content read afresh. Nothing is written to disk: the converted document comes back as `content` for the agent to write. A SysML v1 model is refused with INVALID_ARGUMENT: use migrate. The result is the ConvertResponse as protojson writes it.

NameTypeReqDescription
compactboolean–for api-json from notation: write the compact document (api-json-compact/1) instead of the element array
contentnull|string–the document to convert, inline (an empty string is an empty document); fromFormat must then say what it is
documentsnull|array–for a parsed model, the documents whose elements are written, named as the parse named them; empty writes every document
filePathstring–a file to convert, read afresh in the format its extension names (or fromFormat), absolute or relative to the workspace root; instead of modelHash, paths or sources
fromFormatstring–sysml, kerml, text, ttl, turtle, rdf, api-json or json; empty infers from filePath's extension and is notation for a parsed model
idFormstring–how derived element ids are spelled when notation is written as a graph (ttl or api-json): qualified (the default) or uuid
includeCheckDiagnosticsboolean–notation sources: report the semantic check's diagnostics alongside the output, each with its severity and code as parse reports them; off, only syntax errors are reported
includeLibraryStubsboolean–for api-json: include ownerless standard-library stubs for legacy readers; off by default
keepDerivednull|array–with omitDerived: the derived properties still written, as owner or qualifiedName
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
omitDerivedboolean–with compact: leave out every derived property of the metamodel except keepDerived
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning
toFormatstringyesformat to write: sysml, kerml, text, ttl, turtle, rdf, api-json or json
tolerateSyntaxErrorsboolean–notation to notation only: write the notation back out even when the parser could not read all of it, reporting syntax errors as diagnostics

Structured output declared, but exposes no named fields.

No examples provided.

debug_breakpoints ~116

Set breakpoints at nodes of the debugged action (%break), optionally clearing the earlier ones, and report the breakpoints it then has; with nothing to set, lists them. A node the action has none of fails, naming its nodes.

NameTypeReqDescription
clearboolean–remove the breakpoints set before, before setting the new ones
sessionstring–session name; omit for the default session
setnull|array–node names to break at; debug_continue then stops when a token reaches one
NameTypeReqDescription
activeStatesnull|array––
breakpointsnull|array–action: the nodes breakpoints are set at
currentStatestring–state machine: the active state, or one per orthogonal region
endedbooleanyescompleted or terminated
kindstringyesaction or state for the executor described (with both debugged, the one still running, else the action); check when the behavior was checked over every schedule rather than stepped; empty when no deb…
lastEventAtnumber––
namestring–the behavior as named
pausedAtstring–action: the breakpoint the run last stopped at
performerstring–the object performing it
qualifiedstring–its qualified name
queuedEventsinteger––
resultsnull|array–action: the values its features hold, outputs included
signalsInFlightnull|array–signals sent and not yet dispatched to the machine
statestring–the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated
stateDatanull|array––
stateStacknull|array–the active configuration, outermost first
suspendReasonstring–why the machine cannot progress
textstringyeswhat the prompt printed
timenumber–state machine: the clock
tokensnull|array–action: the active tokens

No examples provided.

debug_continue ~47

Run the debugged action to completion, or to the first breakpoint a token reaches (%continue), and report its results.

NameTypeReqDescription
sessionstring–session name; omit for the default session
NameTypeReqDescription
activeStatesnull|array––
breakpointsnull|array–action: the nodes breakpoints are set at
currentStatestring–state machine: the active state, or one per orthogonal region
endedbooleanyescompleted or terminated
kindstringyesaction or state for the executor described (with both debugged, the one still running, else the action); check when the behavior was checked over every schedule rather than stepped; empty when no deb…
lastEventAtnumber––
namestring–the behavior as named
pausedAtstring–action: the breakpoint the run last stopped at
performerstring–the object performing it
qualifiedstring–its qualified name
queuedEventsinteger––
resultsnull|array–action: the values its features hold, outputs included
signalsInFlightnull|array–signals sent and not yet dispatched to the machine
statestring–the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated
stateDatanull|array––
stateStacknull|array–the active configuration, outermost first
suspendReasonstring–why the machine cannot progress
textstringyeswhat the prompt printed
timenumber–state machine: the clock
tokensnull|array–action: the active tokens

No examples provided.

debug_current ~73

Report where the debugging session stands without changing it: the action's execution state, tokens, breakpoints and feature values (%tokens), or the machine's current state, clock, event queue, signals in flight and state data (%current, %events).

NameTypeReqDescription
sessionstring–session name; omit for the default session
NameTypeReqDescription
activeStatesnull|array––
breakpointsnull|array–action: the nodes breakpoints are set at
currentStatestring–state machine: the active state, or one per orthogonal region
endedbooleanyescompleted or terminated
kindstringyesaction or state for the executor described (with both debugged, the one still running, else the action); check when the behavior was checked over every schedule rather than stepped; empty when no deb…
lastEventAtnumber––
namestring–the behavior as named
pausedAtstring–action: the breakpoint the run last stopped at
performerstring–the object performing it
qualifiedstring–its qualified name
queuedEventsinteger––
resultsnull|array–action: the values its features hold, outputs included
signalsInFlightnull|array–signals sent and not yet dispatched to the machine
statestring–the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated
stateDatanull|array––
stateStacknull|array–the active configuration, outermost first
suspendReasonstring–why the machine cannot progress
textstringyeswhat the prompt printed
timenumber–state machine: the clock
tokensnull|array–action: the active tokens

No examples provided.

debug_start ~160

Start a debugging session on an action (%action) or a state machine (%state), performed by an object when one is named. The action is not stepped: debug_step advances one token step, debug_continue runs to completion or a breakpoint. A machine takes its entry; debug_step, advance and send drive it. Starting again replaces the session.

NameTypeReqDescription
kindstringyesaction, or state for a state machine
namestringyesqualified name of the action or machine; for state, also an object the session holds whose exhibited machine to attach to
objectstring–an object the session holds (name, #id or path) performing the behavior
sessionstring–session name; omit for the default session
NameTypeReqDescription
activeStatesnull|array––
breakpointsnull|array–action: the nodes breakpoints are set at
currentStatestring–state machine: the active state, or one per orthogonal region
endedbooleanyescompleted or terminated
kindstringyesaction or state for the executor described (with both debugged, the one still running, else the action); check when the behavior was checked over every schedule rather than stepped; empty when no deb…
lastEventAtnumber––
namestring–the behavior as named
pausedAtstring–action: the breakpoint the run last stopped at
performerstring–the object performing it
qualifiedstring–its qualified name
queuedEventsinteger––
resultsnull|array–action: the values its features hold, outputs included
signalsInFlightnull|array–signals sent and not yet dispatched to the machine
statestring–the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated
stateDatanull|array––
stateStacknull|array–the active configuration, outermost first
suspendReasonstring–why the machine cannot progress
textstringyeswhat the prompt printed
timenumber–state machine: the clock
tokensnull|array–action: the active tokens

No examples provided.

debug_step ~73

Advance the debugged action one token step, or the debugged state machine one step (%step): one event dispatched, one change event, one round of do actions. A token waiting only on the clock is not stepped; advance moves the clock.

NameTypeReqDescription
sessionstring–session name; omit for the default session
NameTypeReqDescription
activeStatesnull|array––
breakpointsnull|array–action: the nodes breakpoints are set at
currentStatestring–state machine: the active state, or one per orthogonal region
endedbooleanyescompleted or terminated
kindstringyesaction or state for the executor described (with both debugged, the one still running, else the action); check when the behavior was checked over every schedule rather than stepped; empty when no deb…
lastEventAtnumber––
namestring–the behavior as named
pausedAtstring–action: the breakpoint the run last stopped at
performerstring–the object performing it
qualifiedstring–its qualified name
queuedEventsinteger––
resultsnull|array–action: the values its features hold, outputs included
signalsInFlightnull|array–signals sent and not yet dispatched to the machine
statestring–the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated
stateDatanull|array––
stateStacknull|array–the active configuration, outermost first
suspendReasonstring–why the machine cannot progress
textstringyeswhat the prompt printed
timenumber–state machine: the clock
tokensnull|array–action: the active tokens

No examples provided.

debug_stop ~42

End the debugging session (%stop), letting go of its run; objects the session holds stay.

NameTypeReqDescription
sessionstring–session name; omit for the default session
NameTypeReqDescription
textstringyes–

No examples provided.

definition ~80

Find where the name at a position is declared. Standard library declarations are reported as sysml://stdlib/<file> resources.

NameTypeReqDescription
pathstringyesthe document, absolute or relative to the workspace root; a sysml://stdlib/<file> URI for a standard library document
positionobjectyesthe position (1-based line and character column)
NameTypeReqDescription
locationsnull|arrayyes–

No examples provided.

diagnostics ~293

Report every diagnostic of a parsed model (the GetDiagnostics RPC), as `sysml -validate` does: each with its severity, code, message and position. Parse with `strictConformance` for the strict mode of `sysml -validate -strict`; `disableLint` and `enableLint` select the lints as `sysml -disable-lint`/`-enable-lint` do. The result is the DiagnosticsResponse as protojson writes it.

NameTypeReqDescription
disableLintnull|array–lints left out of the diagnostics, by code (sysml -disable-lint): undeclared-signal, port-type-mismatch, deferred-keeper-unmarked or rounded-real-literal
enableLintnull|array–opt-in lints kept in the diagnostics, by code (sysml -enable-lint): rounded-real-literal; off unless named, disableLint wins
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning

Structured output declared, but exposes no named fields.

No examples provided.

document_symbols ~61

Outline a document: the elements it declares, nested as they are owned, with their kinds and ranges.

NameTypeReqDescription
pathstringyesthe document, absolute or relative to the workspace root; a sysml://stdlib/<file> URI for a standard library document
NameTypeReqDescription
symbols–yes–

No examples provided.

documents ~27

List the document definitions (doc def) declared across the workspace, which render_document renders to Markdown.

Input schema present but exposes no named parameters.

NameTypeReqDescription
documentsnull|arrayyes–

No examples provided.

evaluate ~285

Evaluate a SysML expression against a parsed model (the Evaluate RPC, the REPL's %eval): arithmetic, feature reads, quantities with units, collection operators. The result is the EvaluateResponse as protojson writes it: `result` is a Value (64-bit integers are JSON strings, as the proto3 JSON mapping writes them), `error` is set when the expression could not be evaluated. The text spells the value as the REPL prints it.

NameTypeReqDescription
contextSymbolIdstring–qualified name of the namespace the expression's names resolve in; empty is the model root
expressionstringyesthe SysML expression, as 2 + 2 or Demo::sedan.mass
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning
subjectSymbolIdstring–qualified name of a part/usage to instantiate and evaluate against, so a feature reads that object's value rather than its declared default

Structured output declared, but exposes no named fields.

No examples provided.

evaluate_calc ~293

Invoke a calculation (the EvaluateCalc RPC, the REPL's %calc): a calc definition with positional arguments answers its `result`; a calc usage named with no arguments binds its inputs from its own members and answers every output feature in `outputs`. The result is the EvaluateCalcResponse as protojson writes it.

NameTypeReqDescription
argumentsnull|array–positional arguments, each a protojson Value; a calc usage given none binds its inputs from its own members and answers every output. Example arms: {"intValue":"7"}, {"realValue":1.5}, {"boolValue":t…
enginestring–the analysis engine asked; empty is auto
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning
symbolIdstringyesqualified name of the calc definition or usage

Structured output declared, but exposes no named fields.

No examples provided.

execute_action ~716

Run an action definition or usage to completion and report its output parameters (the ExecuteAction RPC, the REPL's %run). Inputs are bound by parameter name. Under an explore schedule every linearization the model admits is run and the answer is the set of distinct `outcomes` with how the exploration ended, instead of one run's outputs. The run is bounded by the service's OPENSYSML_MAX_* budgets; a budget hit is reported in `error`. `advance`, `seed`, `draws` and `clockStep` are the run options of `sysml -advance`, `-seed`, `-draws` and `-clock-step`. With `trace` the answer also carries every record the run made (token steps, waits, accepts, decisions, assignments, completion), up to a failure; `events` are posted to the performer in order, each once every token waits. The result is the ExecuteActionResponse as protojson writes it.

NameTypeReqDescription
actionSymbolIdstringyesqualified name of the action definition or usage to run
advancenull|number–simulated time in seconds to run for (sysml -advance): the behavior is started and its clock moved by this much; an action not completed by then reports that in error. Unset runs to completion
clockStepnumber–the step in seconds the run's clock ticks by (sysml -clock-step); 0 is a continuous clock
drawsstring–how the run resolves RandomFunctions draws (sysml -draws): random (default, from seed), min, max or average
eventsnull|array–signals or items to post to the performer in order, each once every token of the run waits (the REPL's %send); needs performerSymbolId
inputsobject–input parameter name to value; each value is a protojson Value. Example arms: {"intValue":"7"}, {"realValue":1.5}, {"boolValue":true}, {"stringValue":"x"}, {"quantity":{"realMagnitude":5.0,"unit":"m"…
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
performerSymbolIdstring–qualified name of a part/usage, or a path from one as Mission::mission.vehicle, whose object the action is performed on; empty performs it outside any object
schedulestring–scheduling policy for choice points: declared, reverse (the default), seed:<n>, or explore[:runs=<n>,depth=<d>] which runs every linearization and answers with outcomes
seednull|integer–seed the model's own draws (weighted decisions, random functions) are taken from (sysml -seed); the same seed draws the same run
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning
traceboolean–also answer the run's typed trace (token steps, waits, accepts, decisions, assignments, completion), up to a failure; unavailable under explore

Structured output declared, but exposes no named fields.

No examples provided.

execute_state ~555

Run a state machine over a sequence of events and report the states visited, the final context and the simulation clock (the ExecuteState RPC, the REPL's %run on a state). With trace the answer also carries every record the run made (entry, exit, transition, accept, send, choice), up to a failure. Under an explore schedule every linearization is run and the answer is the set of distinct `outcomes`. With `advance` the events are sent and the clock then moved by that much, as `sysml -state X -advance T` does; without it the machine runs to quiescence. The run is bounded by the service's OPENSYSML_MAX_* budgets. The result is the ExecuteStateResponse as protojson writes it.

NameTypeReqDescription
advancenull|number–simulated time in seconds to run for (sysml -advance): the behavior is started and its clock moved by this much; an action not completed by then reports that in error. Unset runs to completion
clockStepnumber–the step in seconds the run's clock ticks by (sysml -clock-step); 0 is a continuous clock
drawsstring–how the run resolves RandomFunctions draws (sysml -draws): random (default, from seed), min, max or average
eventsnull|array–event names to send, in order
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
performerSymbolIdstring–qualified name of a part/usage, or a path from one, whose object exhibits the machine; empty runs it outside any object
schedulestring–scheduling policy for choice points: declared, reverse (the default), seed:<n>, or explore[:runs=<n>,depth=<d>]
seednull|integer–seed the model's own draws (weighted decisions, random functions) are taken from (sysml -seed); the same seed draws the same run
sourcesnull|array–documents given inline, parsed with paths as one model
stateMachineSymbolIdstringyesqualified name of the state definition or usage to run
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning
traceboolean–also answer the run's typed trace (entries, exits, transitions, accepts), up to a failure; unavailable under explore

Structured output declared, but exposes no named fields.

No examples provided.

explain ~78

Ask an SMT solver which conditions of an unsatisfiable element conflict (%explain, experimental): a minimal set of conditions, each with the element declaring it and its location.

NameTypeReqDescription
namestringyesqualified name of the constraint, requirement, satisfaction, part or analysis case
sessionstring–session name; omit for the default session
NameTypeReqDescription
reportsnull|arrayyes–
textstringyes–

No examples provided.

explain_diagnostic ~116

Explain a diagnostic code (as the CLI's -explain does): what it means, how to resolve it and the specification clause or validation constraint behind it. Every diagnostic the `parse`, `diagnostics` and `workspace_diagnostics` tools report carries one of these codes. With no code, list every code with its one-line summary.

NameTypeReqDescription
codestring–the diagnostic code, as a diagnostic's code field or a text line's error[code] carries it; empty lists every code with its one-line summary
NameTypeReqDescription
codestringyesthe stable code
codesnull|array–with no code asked for, every code with its one-line summary
meaningstringyeswhat the diagnostic means and how to resolve it
rulestring–for a member of a code family, the rule the member names
severitystringyeserror, warning or info
specstring–the specification clause or validation constraint behind the rule
summarystringyesone-line summary
tierstringyesthe validation tier that emits it

No examples provided.

export_graphs ~204

Export the lowered graph of an action or state machine — the subject's and every behavior it performs — as the canonical graphs:<version> JSON external analysis engines read (the ExportGraphs RPC). The result is the ExportGraphsResponse as protojson writes it, the JSON in `content`; the text names the subject and version on its first line and carries the JSON after it.

NameTypeReqDescription
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning
subjectstringyesqualified name of an action or state machine, definition or usage

Structured output declared, but exposes no named fields.

No examples provided.

features ~154

Show an object's feature values and what its behaviors are doing (%features): the values its attributes hold, the objects its parts and ports hold, its connectors, and the state of each machine it exhibits and action it performs. Objects come from repl_command `%instantiate <name>` or from runs.

NameTypeReqDescription
allboolean–expand every nested object; overrides depth
depthnull|integer–expand nested objects to this depth without a size bound; omit for the prompt's bounded listing
objectstringyesan object the session holds: its name, #id, or a path such as car.fl or #1.wheels[2]
sessionstring–session name; omit for the default session
NameTypeReqDescription
graph––the object and everything reachable from it as the runtime API's Instantiate writes it (opensysml.v1 JSON); absent when the build does not link the graph writer
textstringyesthe listing as %features prints it: each feature's value and what the object's behaviors are doing

No examples provided.

format ~138

Format a SysML v2 / KerML document, or only the lines of a range, in the canonical style. Returns the edits and the resulting text; writes the file only with apply=true. A document that does not parse is left unchanged.

NameTypeReqDescription
applyboolean–write the formatted text to the file, replacing it atomically (its mode is kept, other inode metadata is not); false (the default) only returns the edits
pathstringyesthe document to format, absolute or relative to the workspace root
rangenull|object–format only the lines this range touches; omitted, the whole document
NameTypeReqDescription
appliedbooleanyeswhether the text was written to disk
editsnull|arrayyesthe edits that format the document; empty when it is already formatted
pathstringyes–
textstringyesthe document's text with the edits applied

No examples provided.

hover ~77

Explain the element at a position: its kind, qualified name, type, value and documentation, as Markdown.

NameTypeReqDescription
pathstringyesthe document, absolute or relative to the workspace root; a sysml://stdlib/<file> URI for a standard library document
positionobjectyesthe position (1-based line and character column)
NameTypeReqDescription
markdownstringyesthe hover text, Markdown; empty when nothing is at the position
rangenull|object–the span the hover applies to

No examples provided.

import_data ~384

Set the feature values a CSV, TSV, JSON or JSON Lines file assigns, one row per element (the ImportData RPC, the CLI's -import with -import-as, -import-map, -import-format and -import-dry-run): a feature the element declares has its value set, one it inherits is redefined in the element's body with the value, as one edit per file; a value the model refuses leaves every row unapplied and answers `error`. `files` carry each assignment with the element, feature, value and the inherited feature it redefines; the edited text comes back as `content` (one document) or `documents` with the `modelHash` of the imported model, nothing is written to disk. A dry run answers the assignments alone. The result is the ImportDataResponse as protojson writes it.

NameTypeReqDescription
acceptDocumentsboolean–accept every edited document in documents when the model has several
importAsstring–what each row is made into (the CLI's -import-as): values, the default, sets the features of the element the row names
importDryRunboolean–report the values the imports would set, changing nothing (the CLI's -import-dry-run)
importsnull|arrayyesthe data files, applied in order as one edit each
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning

Structured output declared, but exposes no named fields.

No examples provided.

import_diagram ~339

Import a draw.io (diagrams.net) file that render_view wrote with form drawio and a user edited in draw.io: what moved, resized, folded, re-routed or recoloured, the page size, a note's text and a picture's file become DiagramLayout annotations (Layout, Route, Style, Canvas, Note, Picture) in the view's body, and a name retyped in a node, port or edge label becomes a rename of the element, declaration and references alike, applied as apply_model_edit applies its operations. Cells the rendering lacks, cells naming no element, deleted cells, a label edited beyond its name, an invalid or taken name, an emptied note and a picture source no file under the view's directory names are reported, never created, deleted or guessed. Answers the planned edits and text changes; writes the files only with apply=true.

NameTypeReqDescription
applyboolean–write the edits to disk; omitted, a dry run answering the edits and the text changes they amount to
contentstring–the draw.io file's text, as render_view form drawio wrote it and draw.io saved it, compressed or not; alternative to file
filestring–the draw.io file to import, absolute or relative to the workspace root; alternative to content
inlineboolean–write the annotations beside the elements rather than in the view's body
pathstringyesthe document declaring the view, absolute or relative to the workspace root
viewstring–the view to import when the file has several pages; omitted, the one page's view
NameTypeReqDescription
appliedbooleanyeswhether the edits were written to disk
changesnull|arrayyesthe text edits, per document
deletednull|array–elements whose cells the file lost; nothing is deleted for them
editsnull|arrayyesthe DiagramLayout annotations the import plans, each from one cell
noticesnull|array–changes the file shows that no annotation carries yet
refusednull|array–the planned edit the model editor refused, with why
unknownnull|array–cells naming no element; nothing is created for them
unmatchednull|array–elements the file names that the rendering lacks; their cells are not imported
viewstringyesthe view the file draws

No examples provided.

inlay_hints ~69

List the inferred types and values the editor would show inline for the features of a document or range.

NameTypeReqDescription
pathstringyesthe document, absolute or relative to the workspace root
rangenull|object–the lines of interest (1-based); omitted, the whole document
NameTypeReqDescription
hintsnull|arrayyes–

No examples provided.

instances ~49

List the objects a session holds (%instances): each with its id, type and lifetime, the ones a later instantiation displaced included.

NameTypeReqDescription
sessionstring–session name; omit for the default session
NameTypeReqDescription
instancesnull|arrayyes–
textstringyeswhat %instances printed

No examples provided.

instantiate ~206

Build an object of a part definition or usage and report its feature values (the Instantiate RPC, the REPL's %instantiate): every attribute's value or default, nested parts as instance ids, with every reachable instance in `instances`. The service keeps the object for the model: run_document_query on the same modelHash can bind it. The result is the InstantiateResponse as protojson writes it.

NameTypeReqDescription
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning
symbolIdstringyesqualified name of the part definition or usage to instantiate

Structured output declared, but exposes no named fields.

No examples provided.

list_engines ~174

List the analysis engines this build registers (the ListEngines RPC, as the CLI's -engines does): each with the questions it answers (evaluate, outcomes, holds, sensitive, satisfiable, sweep, compute), the strongest evidence it can produce, the bounds it takes, and whether it can run here. The names are what the verification tools' `engine` argument takes; empty there means auto. With `probe` each external engine is started once and checked against its manifest, as `sysml -engines -probe` does. The result is the ListEnginesResponse as protojson writes it.

NameTypeReqDescription
probeboolean–start each external engine's process once and check its handshake against its manifest, reporting the outcome as its status (sysml -engines -probe); false starts nothing

Structured output declared, but exposes no named fields.

No examples provided.

migrate ~470

Migrate a SysML v1 model — UML XMI with the SysML profile, an Eclipse UML2 .uml file or a Cameo/MagicDraw .mdzip archive — to SysML v2 in one of the representations convert writes (the Migrate RPC, the CLI's -migrate). Migration is not lossless: every v1 element is mapped, approximated, left unmapped or skipped, and `report` accounts for each. Nothing is written to disk: the migrated model comes back as `content`, with any image files it refers to in `files`. The result is the MigrateResponse as protojson writes it.

NameTypeReqDescription
contentnull|string–the v1 document inline, base64-encoded (an .mdzip archive is binary); fromFormat must then say what it is
filePathstring–the v1 model file to migrate (.xmi, .uml or .mdzip), absolute or relative to the workspace root
fromFormatstring–xmi (UML XMI 2.5.1 with the SysML profile), uml (Eclipse UML2) or mdzip (Cameo/MagicDraw); empty infers from filePath's extension
imageBaseUrlstring–absolute http(s) URL a server-relative image reference in a v1 comment is resolved against
layoutContentstring–the MTIP export inline, instead of layoutPath
layoutPathstring–an MTIP export of the model's diagrams (Model_mtip.xml) laying the migrated views out, absolute or relative to the workspace root
reportboolean–carry every element's verdict (mapped, approximated, unmapped, skipped) and the report text; the summary and counts come regardless
resultsboolean–carry the result snapshots the v1 tool stored with the model, as sysml -compare-results reads them
strictboolean–write only notation a pinned SysML v2 production admits; a construct whose only v2 form is an OpenSysML extension is reported unmapped instead
toFormatstringyesformat to write: sysml, kerml, text, ttl, turtle, rdf, api-json or json

Structured output declared, but exposes no named fields.

No examples provided.

open_document ~137

Hold a document open with the given text, as an editor buffer the server analyzes instead of the file on disk, so text can be checked (diagnostics, hover, render) before it is written. Nothing is written to disk; close_document reverts to the file. format, rename and apply_model_edit with apply=true write the buffer, unless the file changed on disk since it was opened. Returns the diagnostics of the text.

NameTypeReqDescription
pathstringyesthe document, absolute or relative to the workspace root; it need not exist on disk yet
textstringyesthe full text to hold as the document's content
NameTypeReqDescription
diagnosticsnull|arrayyesthe diagnostics of the text now held
openbooleanyeswhether the server now holds an open buffer for the document
pathstringyes–
versionintegeryesthe buffer's version, incremented by each update

No examples provided.

optimize ~79

Ask an SMT solver for the best values an analysis case's objectives admit (%optimize, experimental), each objective improved as its trade-study definition says, within the case's conditions.

NameTypeReqDescription
namestringyesqualified name of the constraint, requirement, satisfaction, part or analysis case
sessionstring–session name; omit for the default session
NameTypeReqDescription
reportsnull|arrayyes–
textstringyes–

No examples provided.

parse ~249

Parse SysML v2 / KerML documents as one model and return its modelHash, the root namespace of each document and every diagnostic (the ParseSources RPC). Parsing is content-addressed: the same documents give the same modelHash, and the hash is what every other runtime tool takes as modelHash, so parse once and pass the hash, or give those tools the same paths/sources and they parse implicitly. A model is only readable when no diagnostic has severity error. The result is the ParseSourcesResponse as protojson writes it; the text lists each root and the diagnostics as the CLI prints them.

NameTypeReqDescription
baseModelHashstring–the modelHash of an earlier parse of these documents; the answer's affected then lists the documents whose results may differ from it
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root; a name declared in one resolves in the others
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning

Structured output declared, but exposes no named fields.

No examples provided.

query ~351

Select elements of a parsed model with a SysML v2 API & Services Query — scope, select, where, orderBy — or OSLC query text (the Query RPC). Each matched element answers its qualified name, metamodel type and the properties select asked for. A query the service cannot evaluate fails with INVALID_ARGUMENT rather than answering empty. The result is the QueryResponse as protojson writes it.

NameTypeReqDescription
modelHashstring–the model_hash a parse answered; give this, or paths and/or sources to parse first
oslcQuerystring–OSLC Query 3.0 parameter text, instead of query
pathsnull|array–model files to parse as one model, absolute or relative to the workspace root
queryobject–the standard's Query as protojson writes it: {"scope":[qualified names],"select":[properties],"where":{"primitive":{"property":"@type","operator":"PRIMITIVE_OPERATOR_EQUAL","value":["PartUsage"]}},"o…
sourcesnull|array–documents given inline, parsed with paths as one model
strictConformanceboolean–judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning

Structured output declared, but exposes no named fields.

No examples provided.

Install

How do I install the OpenSysML MCP server server?

OpenSysML MCP server runs locally as an npm package, launched with npx -y @openmbee/sysml-mcp -root .. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @openmbee/sysml-mcp

# add to Claude Code
claude mcp add org-opensysml-sysml-mcp -- npx -y @openmbee/sysml-mcp -root .
Common questions

What is the OpenSysML MCP server server?

OpenSysML MCP server is listed in the public MCP registry as org.opensysml/sysml-mcp. SysML v2 and KerML for coding agents: workspace diagnostics and edits, execution, REPL sessions. This page covers its npm package (@openmbee/sysml-mcp).

Is the OpenSysML MCP server server safe to use?

OpenSysML MCP server scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 6 November 2026. It declares no install or post-install scripts. 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 OpenSysML MCP server server expose?

OpenSysML MCP server exposes 83 tools: advance, apply_edits, apply_model_edit, check, check_behavior, and 78 more. Their descriptions and schemas cost roughly 18,022 tokens of context every time the server is loaded.

Is the OpenSysML MCP server server still maintained?

OpenSysML MCP server is still listed as active in the MCP registry. We last reached this channel on 6 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 OpenSysML MCP server server under?

OpenSysML MCP server declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

What did VerifyMCP test on the OpenSysML MCP server server?

VerifyMCP ran 16 checks on OpenSysML MCP server, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.