OpenSysML MCP server
NPM · @OPENMBEE/SYSML-MCP
SysML v2 and KerML for coding agents: workspace diagnostics and edits, execution, REPL sessions.
Available components
Last scanned (6 hours ago)
Scores higher than 55% of npm servers
Category Developer Tools
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
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 →
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.
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 →
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 →
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.
| Name | Type | Req | Description |
|---|---|---|---|
| session | string | – | session name; omit for the default session |
| time | number | yes | time units (seconds) to advance the debuggers' clock by, running every event, token and do behavior that comes due; 0 dispatches what is already due |
| Name | Type | Req | Description |
|---|---|---|---|
| activeStates | null|array | – | – |
| breakpoints | null|array | – | action: the nodes breakpoints are set at |
| currentState | string | – | state machine: the active state, or one per orthogonal region |
| ended | boolean | yes | completed or terminated |
| kind | string | yes | action 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… |
| lastEventAt | number | – | – |
| name | string | – | the behavior as named |
| pausedAt | string | – | action: the breakpoint the run last stopped at |
| performer | string | – | the object performing it |
| qualified | string | – | its qualified name |
| queuedEvents | integer | – | – |
| results | null|array | – | action: the values its features hold, outputs included |
| signalsInFlight | null|array | – | signals sent and not yet dispatched to the machine |
| state | string | – | the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated |
| stateData | null|array | – | – |
| stateStack | null|array | – | the active configuration, outermost first |
| suspendReason | string | – | why the machine cannot progress |
| text | string | yes | what the prompt printed |
| time | number | – | state machine: the clock |
| tokens | null|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.
| Name | Type | Req | Description |
|---|---|---|---|
| acceptDocuments | boolean | – | read the edited documents from the documents field, which a model of several documents needs; without it such a model is refused |
| document | string | – | the document whose declarations the operations target, named as the parse named it; empty is the model's first document |
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| operations | null|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":… |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| apply | boolean | – | 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 | – | yes | the operations, applied in order against the document's current text |
| path | string | yes | the document the operations address, absolute or relative to the workspace root |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | yes | whether the edits were written to disk |
| changes | null|array | yes | the text edits the operations amount to, per document; empty when every operation was refused |
| refused | null|array | – | operations not carried out, by index, with the failure code and message (ranges inside are LSP ranges, 0-based) |
| version | integer | yes | the 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.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | qualified name of the constraint, requirement, satisfaction, part or analysis case |
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| reports | null|array | yes | – |
| text | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actionSymbolId | string | – | qualified name of the action definition or usage to check; give this or stateMachineSymbolId |
| checkAssume | null|array | – | constraints or requirements the symbolic engine assumes (-check-assume) |
| checkDepth | integer | – | moves one schedule may make; 0 is the engine's default (-check-depth) |
| checkDiverge | null|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> |
| checkInput | null|array | – | inputs left free for the symbolic engine to range over (-check-input) |
| checkProperty | null|array | – | constraints or requirements evaluated at every stable state; one false at a state is a violation (-check-property) |
| checkStates | integer | – | distinct states the search may visit; 0 is the engine's default (-check-states) |
| checkTimeout | number | – | seconds the search and each solver query may take; 0 is none (-check-timeout) |
| checkUnroll | integer | – | loop iterations the symbolic engine unrolls; 0 is its default (-check-unroll) |
| checkWitness | boolean | – | carry each violation's and divergent value's witness file in the answer, for a replay schedule to follow (-check-witness) |
| engine | string | – | the engine asked: check (the default), smt, or one list_engines names |
| inputs | object | – | input parameter name to value, each a protojson Value. Example arms: {"intValue":"7"}, {"realValue":1.5}, {"boolValue":true}, {"stringValue":"x"} |
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| performerSymbolId | string | – | qualified name of a part/usage, or a path from one, whose object performs the behavior; empty performs it outside any object |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| stateMachineSymbolId | string | – | qualified name of the state definition or usage to check; give this or actionSymbolId |
| strictConformance | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | an open document, absolute or relative to the workspace root |
| Name | Type | Req | Description |
|---|---|---|---|
| diagnostics | null|array | yes | the diagnostics of the text now held |
| open | boolean | yes | whether the server now holds an open buffer for the document |
| path | string | yes | – |
| version | integer | yes | the 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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | the document, absolute or relative to the workspace root |
| range | null|object | – | the lines of interest (1-based); omitted, the whole document |
| Name | Type | Req | Description |
|---|---|---|---|
| actions | null|array | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | null|array | – | the configurations compared, by qualified or simple name (the CLI's -action); every indexed configuration when empty |
| clockStep | null|number | – | the clock step replacing every configuration's, in seconds; 0 is a continuous clock (the CLI's -clock-step) |
| draws | string | – | the draw policy replacing every configuration's durationSimulationMode: random, min, max or average (the CLI's -draws) |
| engine | string | – | the engine selection, as list_engines names them |
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| observe | null|array | – | the stored observables compared, each with the feature of the run that answers it (the CLI's -observe) |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| results | string | yes | the results sidecar as JSON, as sysml -migration-results writes it |
| runs | integer | – | the runs made of every configuration when positive (the CLI's -runs); else each configuration's own numberOfRuns, or one |
| seed | null|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 |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | the document, absolute or relative to the workspace root; a sysml://stdlib/<file> URI for a standard library document |
| position | object | yes | the position (1-based line and character column) |
| Name | Type | Req | Description |
|---|---|---|---|
| isIncomplete | boolean | – | – |
| items | null|array | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | – | enumerate every consistent selection instead of one. Not with selections |
| limit | integer | – | with all: at most this many selections |
| name | string | yes | qualified name of the constraint, requirement, satisfaction, part or definition whose variations are configured |
| selections | null|array | – | variants to fix, written variation=variant; the selection is checked and a conflict named. Not with all |
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| reports | null|array | yes | – |
| text | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| compact | boolean | – | for api-json from notation: write the compact document (api-json-compact/1) instead of the element array |
| content | null|string | – | the document to convert, inline (an empty string is an empty document); fromFormat must then say what it is |
| documents | null|array | – | for a parsed model, the documents whose elements are written, named as the parse named them; empty writes every document |
| filePath | string | – | 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 |
| fromFormat | string | – | sysml, kerml, text, ttl, turtle, rdf, api-json or json; empty infers from filePath's extension and is notation for a parsed model |
| idForm | string | – | how derived element ids are spelled when notation is written as a graph (ttl or api-json): qualified (the default) or uuid |
| includeCheckDiagnostics | boolean | – | 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 |
| includeLibraryStubs | boolean | – | for api-json: include ownerless standard-library stubs for legacy readers; off by default |
| keepDerived | null|array | – | with omitDerived: the derived properties still written, as owner or qualifiedName |
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| omitDerived | boolean | – | with compact: leave out every derived property of the metamodel except keepDerived |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning |
| toFormat | string | yes | format to write: sysml, kerml, text, ttl, turtle, rdf, api-json or json |
| tolerateSyntaxErrors | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| clear | boolean | – | remove the breakpoints set before, before setting the new ones |
| session | string | – | session name; omit for the default session |
| set | null|array | – | node names to break at; debug_continue then stops when a token reaches one |
| Name | Type | Req | Description |
|---|---|---|---|
| activeStates | null|array | – | – |
| breakpoints | null|array | – | action: the nodes breakpoints are set at |
| currentState | string | – | state machine: the active state, or one per orthogonal region |
| ended | boolean | yes | completed or terminated |
| kind | string | yes | action 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… |
| lastEventAt | number | – | – |
| name | string | – | the behavior as named |
| pausedAt | string | – | action: the breakpoint the run last stopped at |
| performer | string | – | the object performing it |
| qualified | string | – | its qualified name |
| queuedEvents | integer | – | – |
| results | null|array | – | action: the values its features hold, outputs included |
| signalsInFlight | null|array | – | signals sent and not yet dispatched to the machine |
| state | string | – | the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated |
| stateData | null|array | – | – |
| stateStack | null|array | – | the active configuration, outermost first |
| suspendReason | string | – | why the machine cannot progress |
| text | string | yes | what the prompt printed |
| time | number | – | state machine: the clock |
| tokens | null|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.
| Name | Type | Req | Description |
|---|---|---|---|
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| activeStates | null|array | – | – |
| breakpoints | null|array | – | action: the nodes breakpoints are set at |
| currentState | string | – | state machine: the active state, or one per orthogonal region |
| ended | boolean | yes | completed or terminated |
| kind | string | yes | action 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… |
| lastEventAt | number | – | – |
| name | string | – | the behavior as named |
| pausedAt | string | – | action: the breakpoint the run last stopped at |
| performer | string | – | the object performing it |
| qualified | string | – | its qualified name |
| queuedEvents | integer | – | – |
| results | null|array | – | action: the values its features hold, outputs included |
| signalsInFlight | null|array | – | signals sent and not yet dispatched to the machine |
| state | string | – | the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated |
| stateData | null|array | – | – |
| stateStack | null|array | – | the active configuration, outermost first |
| suspendReason | string | – | why the machine cannot progress |
| text | string | yes | what the prompt printed |
| time | number | – | state machine: the clock |
| tokens | null|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).
| Name | Type | Req | Description |
|---|---|---|---|
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| activeStates | null|array | – | – |
| breakpoints | null|array | – | action: the nodes breakpoints are set at |
| currentState | string | – | state machine: the active state, or one per orthogonal region |
| ended | boolean | yes | completed or terminated |
| kind | string | yes | action 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… |
| lastEventAt | number | – | – |
| name | string | – | the behavior as named |
| pausedAt | string | – | action: the breakpoint the run last stopped at |
| performer | string | – | the object performing it |
| qualified | string | – | its qualified name |
| queuedEvents | integer | – | – |
| results | null|array | – | action: the values its features hold, outputs included |
| signalsInFlight | null|array | – | signals sent and not yet dispatched to the machine |
| state | string | – | the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated |
| stateData | null|array | – | – |
| stateStack | null|array | – | the active configuration, outermost first |
| suspendReason | string | – | why the machine cannot progress |
| text | string | yes | what the prompt printed |
| time | number | – | state machine: the clock |
| tokens | null|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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | action, or state for a state machine |
| name | string | yes | qualified name of the action or machine; for state, also an object the session holds whose exhibited machine to attach to |
| object | string | – | an object the session holds (name, #id or path) performing the behavior |
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| activeStates | null|array | – | – |
| breakpoints | null|array | – | action: the nodes breakpoints are set at |
| currentState | string | – | state machine: the active state, or one per orthogonal region |
| ended | boolean | yes | completed or terminated |
| kind | string | yes | action 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… |
| lastEventAt | number | – | – |
| name | string | – | the behavior as named |
| pausedAt | string | – | action: the breakpoint the run last stopped at |
| performer | string | – | the object performing it |
| qualified | string | – | its qualified name |
| queuedEvents | integer | – | – |
| results | null|array | – | action: the values its features hold, outputs included |
| signalsInFlight | null|array | – | signals sent and not yet dispatched to the machine |
| state | string | – | the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated |
| stateData | null|array | – | – |
| stateStack | null|array | – | the active configuration, outermost first |
| suspendReason | string | – | why the machine cannot progress |
| text | string | yes | what the prompt printed |
| time | number | – | state machine: the clock |
| tokens | null|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.
| Name | Type | Req | Description |
|---|---|---|---|
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| activeStates | null|array | – | – |
| breakpoints | null|array | – | action: the nodes breakpoints are set at |
| currentState | string | – | state machine: the active state, or one per orthogonal region |
| ended | boolean | yes | completed or terminated |
| kind | string | yes | action 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… |
| lastEventAt | number | – | – |
| name | string | – | the behavior as named |
| pausedAt | string | – | action: the breakpoint the run last stopped at |
| performer | string | – | the object performing it |
| qualified | string | – | its qualified name |
| queuedEvents | integer | – | – |
| results | null|array | – | action: the values its features hold, outputs included |
| signalsInFlight | null|array | – | signals sent and not yet dispatched to the machine |
| state | string | – | the executor's state as the prompt prints it: Ready, Running, Waiting, Suspended, Completed or Terminated |
| stateData | null|array | – | – |
| stateStack | null|array | – | the active configuration, outermost first |
| suspendReason | string | – | why the machine cannot progress |
| text | string | yes | what the prompt printed |
| time | number | – | state machine: the clock |
| tokens | null|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.
| Name | Type | Req | Description |
|---|---|---|---|
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | – |
No examples provided.
definition ~80
Find where the name at a position is declared. Standard library declarations are reported as sysml://stdlib/<file> resources.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | the document, absolute or relative to the workspace root; a sysml://stdlib/<file> URI for a standard library document |
| position | object | yes | the position (1-based line and character column) |
| Name | Type | Req | Description |
|---|---|---|---|
| locations | null|array | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| disableLint | null|array | – | lints left out of the diagnostics, by code (sysml -disable-lint): undeclared-signal, port-type-mismatch, deferred-keeper-unmarked or rounded-real-literal |
| enableLint | null|array | – | opt-in lints kept in the diagnostics, by code (sysml -enable-lint): rounded-real-literal; off unless named, disableLint wins |
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | the document, absolute or relative to the workspace root; a sysml://stdlib/<file> URI for a standard library document |
| Name | Type | Req | Description |
|---|---|---|---|
| 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.
| Name | Type | Req | Description |
|---|---|---|---|
| documents | null|array | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| contextSymbolId | string | – | qualified name of the namespace the expression's names resolve in; empty is the model root |
| expression | string | yes | the SysML expression, as 2 + 2 or Demo::sedan.mass |
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning |
| subjectSymbolId | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| arguments | null|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… |
| engine | string | – | the analysis engine asked; empty is auto |
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning |
| symbolId | string | yes | qualified 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.
| Name | Type | Req | Description |
|---|---|---|---|
| actionSymbolId | string | yes | qualified name of the action definition or usage to run |
| advance | null|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 |
| clockStep | number | – | the step in seconds the run's clock ticks by (sysml -clock-step); 0 is a continuous clock |
| draws | string | – | how the run resolves RandomFunctions draws (sysml -draws): random (default, from seed), min, max or average |
| events | null|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 |
| inputs | object | – | 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"… |
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| performerSymbolId | string | – | 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 |
| schedule | string | – | 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 |
| seed | null|integer | – | seed the model's own draws (weighted decisions, random functions) are taken from (sysml -seed); the same seed draws the same run |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning |
| trace | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| advance | null|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 |
| clockStep | number | – | the step in seconds the run's clock ticks by (sysml -clock-step); 0 is a continuous clock |
| draws | string | – | how the run resolves RandomFunctions draws (sysml -draws): random (default, from seed), min, max or average |
| events | null|array | – | event names to send, in order |
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| performerSymbolId | string | – | qualified name of a part/usage, or a path from one, whose object exhibits the machine; empty runs it outside any object |
| schedule | string | – | scheduling policy for choice points: declared, reverse (the default), seed:<n>, or explore[:runs=<n>,depth=<d>] |
| seed | null|integer | – | seed the model's own draws (weighted decisions, random functions) are taken from (sysml -seed); the same seed draws the same run |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| stateMachineSymbolId | string | yes | qualified name of the state definition or usage to run |
| strictConformance | boolean | – | judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning |
| trace | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | qualified name of the constraint, requirement, satisfaction, part or analysis case |
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| reports | null|array | yes | – |
| text | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | 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 |
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | the stable code |
| codes | null|array | – | with no code asked for, every code with its one-line summary |
| meaning | string | yes | what the diagnostic means and how to resolve it |
| rule | string | – | for a member of a code family, the rule the member names |
| severity | string | yes | error, warning or info |
| spec | string | – | the specification clause or validation constraint behind the rule |
| summary | string | yes | one-line summary |
| tier | string | yes | the 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.
| Name | Type | Req | Description |
|---|---|---|---|
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning |
| subject | string | yes | qualified 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.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | – | expand every nested object; overrides depth |
| depth | null|integer | – | expand nested objects to this depth without a size bound; omit for the prompt's bounded listing |
| object | string | yes | an object the session holds: its name, #id, or a path such as car.fl or #1.wheels[2] |
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| 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 |
| text | string | yes | the 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.
| Name | Type | Req | Description |
|---|---|---|---|
| apply | boolean | – | 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 |
| path | string | yes | the document to format, absolute or relative to the workspace root |
| range | null|object | – | format only the lines this range touches; omitted, the whole document |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | yes | whether the text was written to disk |
| edits | null|array | yes | the edits that format the document; empty when it is already formatted |
| path | string | yes | – |
| text | string | yes | the 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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | the document, absolute or relative to the workspace root; a sysml://stdlib/<file> URI for a standard library document |
| position | object | yes | the position (1-based line and character column) |
| Name | Type | Req | Description |
|---|---|---|---|
| markdown | string | yes | the hover text, Markdown; empty when nothing is at the position |
| range | null|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.
| Name | Type | Req | Description |
|---|---|---|---|
| acceptDocuments | boolean | – | accept every edited document in documents when the model has several |
| importAs | string | – | what each row is made into (the CLI's -import-as): values, the default, sets the features of the element the row names |
| importDryRun | boolean | – | report the values the imports would set, changing nothing (the CLI's -import-dry-run) |
| imports | null|array | yes | the data files, applied in order as one edit each |
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| apply | boolean | – | write the edits to disk; omitted, a dry run answering the edits and the text changes they amount to |
| content | string | – | the draw.io file's text, as render_view form drawio wrote it and draw.io saved it, compressed or not; alternative to file |
| file | string | – | the draw.io file to import, absolute or relative to the workspace root; alternative to content |
| inline | boolean | – | write the annotations beside the elements rather than in the view's body |
| path | string | yes | the document declaring the view, absolute or relative to the workspace root |
| view | string | – | the view to import when the file has several pages; omitted, the one page's view |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | yes | whether the edits were written to disk |
| changes | null|array | yes | the text edits, per document |
| deleted | null|array | – | elements whose cells the file lost; nothing is deleted for them |
| edits | null|array | yes | the DiagramLayout annotations the import plans, each from one cell |
| notices | null|array | – | changes the file shows that no annotation carries yet |
| refused | null|array | – | the planned edit the model editor refused, with why |
| unknown | null|array | – | cells naming no element; nothing is created for them |
| unmatched | null|array | – | elements the file names that the rendering lacks; their cells are not imported |
| view | string | yes | the 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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | the document, absolute or relative to the workspace root |
| range | null|object | – | the lines of interest (1-based); omitted, the whole document |
| Name | Type | Req | Description |
|---|---|---|---|
| hints | null|array | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| instances | null|array | yes | – |
| text | string | yes | what %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.
| Name | Type | Req | Description |
|---|---|---|---|
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | judge the documents as conforming SysML v2: notation no pinned production admits is an error rather than a warning |
| symbolId | string | yes | qualified 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.
| Name | Type | Req | Description |
|---|---|---|---|
| probe | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| content | null|string | – | the v1 document inline, base64-encoded (an .mdzip archive is binary); fromFormat must then say what it is |
| filePath | string | – | the v1 model file to migrate (.xmi, .uml or .mdzip), absolute or relative to the workspace root |
| fromFormat | string | – | xmi (UML XMI 2.5.1 with the SysML profile), uml (Eclipse UML2) or mdzip (Cameo/MagicDraw); empty infers from filePath's extension |
| imageBaseUrl | string | – | absolute http(s) URL a server-relative image reference in a v1 comment is resolved against |
| layoutContent | string | – | the MTIP export inline, instead of layoutPath |
| layoutPath | string | – | an MTIP export of the model's diagrams (Model_mtip.xml) laying the migrated views out, absolute or relative to the workspace root |
| report | boolean | – | carry every element's verdict (mapped, approximated, unmapped, skipped) and the report text; the summary and counts come regardless |
| results | boolean | – | carry the result snapshots the v1 tool stored with the model, as sysml -compare-results reads them |
| strict | boolean | – | write only notation a pinned SysML v2 production admits; a construct whose only v2 form is an OpenSysML extension is reported unmapped instead |
| toFormat | string | yes | format 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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | the document, absolute or relative to the workspace root; it need not exist on disk yet |
| text | string | yes | the full text to hold as the document's content |
| Name | Type | Req | Description |
|---|---|---|---|
| diagnostics | null|array | yes | the diagnostics of the text now held |
| open | boolean | yes | whether the server now holds an open buffer for the document |
| path | string | yes | – |
| version | integer | yes | the 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.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | qualified name of the constraint, requirement, satisfaction, part or analysis case |
| session | string | – | session name; omit for the default session |
| Name | Type | Req | Description |
|---|---|---|---|
| reports | null|array | yes | – |
| text | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| baseModelHash | string | – | the modelHash of an earlier parse of these documents; the answer's affected then lists the documents whose results may differ from it |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root; a name declared in one resolves in the others |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| modelHash | string | – | the model_hash a parse answered; give this, or paths and/or sources to parse first |
| oslcQuery | string | – | OSLC Query 3.0 parameter text, instead of query |
| paths | null|array | – | model files to parse as one model, absolute or relative to the workspace root |
| query | object | – | the standard's Query as protojson writes it: {"scope":[qualified names],"select":[properties],"where":{"primitive":{"property":"@type","operator":"PRIMITIVE_OPERATOR_EQUAL","value":["PartUsage"]}},"o… |
| sources | null|array | – | documents given inline, parsed with paths as one model |
| strictConformance | boolean | – | 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.
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
claude mcp add org-opensysml-sysml-mcp -- npx -y @openmbee/sysml-mcp -root .
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.