このMCPでできること
Builds, validates, calibrates, compares, and simulates Petri-net process models using event logs, scenarios, invariants, and diagnostics.
ツール
入力スキーマ
{'type': 'object', 'required': ['fromModel', 'fromPort', 'toModel', 'toPort'], 'properties': {'toPort': {'type': 'string', 'description': 'element id of the declared input port on toModel'}, 'toModel': {'type': 'string', 'description': 'id of the model receiving the connection'}, 'fromPort': {'type': 'string', 'description': 'element id of the declared output port on fromModel (see GET /api/models/{id}/ports)'}, 'fromModel': {'type': 'string', 'description': "id of the model supplying the connection's output"}, 'transform': {'type': 'string', 'description': "how fromPort's value becomes toPort's. A plain non-negative number is applied by sim_run_pipeline as a scale factor on the resampled rate; any other text (a unit note, a resample window, an aggregation) is recorded, reported by sim_run_pipeline as an assumption, and treated as 1:1"}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'log'], 'properties': {'id': {'type': 'string', 'description': 'model id to calibrate'}, 'log': {'type': 'string', 'description': 'the event log, as CSV text'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'verify': {'type': 'boolean', 'description': 'run the permutation experiment (costs simulation; default false, and classes then say they are candidates)'}, 'inline_context': {'type': 'boolean', 'description': 'embed the full JSON-LD @context map in the result instead of the URL it is served from (https://sim.pflow.xyz/ns/v1/context). Default false: the URL resolves to the identical map, so only set this for an offline consumer that cannot fetch it.'}}}
入力スキーマ
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'source code to analyse'}, 'name': {'type': 'string', 'description': 'name for the derived model'}, 'focus': {'type': 'string', 'description': 'control-flow (default), state-machine, resources or concurrency'}, 'language': {'type': 'string', 'description': 'source language hint, e.g. go, python, javascript'}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'scenarios'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'full': {'type': 'boolean', 'description': 'include the sample-grid time series in every result (large; default false); a scenario with its own "summary": true is left summarized regardless'}, 'scenarios': {'type': 'string', 'description': 'JSON array of at most 20 scenarios, each with a name, e.g. [{"name":"today","hours":8},{"name":"one more","hours":8,"marking":{"staff/available":3}},{"name":"bigger batches","hours":8,"params":{"batch_size":6}}]; each is held to sim_scenario\'s caps'}}}
入力スキーマ
{'type': 'object'}
入力スキーマ
{'type': 'object', 'required': ['component'], 'properties': {'id': {'type': 'string', 'description': 'model to compose onto; omit to start fresh'}, 'name': {'type': 'string', 'description': 'model name for the stored result (kept from the base when composing onto an id)'}, 'attach': {'type': 'string', 'description': 'JSON object mapping port name -> existing place id'}, 'params': {'type': 'string', 'description': 'JSON object overriding param defaults, e.g. {"staff": 3}'}, 'prefix': {'type': 'string', 'description': 'instance prefix for created elements (default: component name)'}, 'component': {'type': 'string', 'description': 'registry component name (see sim_components)'}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'log'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'log': {'type': 'string', 'description': 'the event log, as CSV text'}}}
入力スキーマ
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'collection name'}}}
入力スキーマ
{'type': 'object', 'required': ['model'], 'properties': {'model': {'type': 'string', 'description': 'the model JSON'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'hours': {'type': 'number', 'description': 'horizon (default 8, max 168)'}, 'realizations': {'type': 'number', 'description': 'SSA runs averaged, max 200 (default 24)'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'seed': {'type': 'number', 'description': 'PRNG seed (default 1)'}, 'cases': {'type': 'number', 'description': 'cases to generate (default 200, max 2000 over MCP)'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id to delete'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'seed': {'type': 'number', 'description': 'seed shared by every run, so differences measure the knob and not the dice (default 7)'}, 'hours': {'type': 'number', 'description': 'horizon per run (default 8, max 168)'}, 'realizations': {'type': 'number', 'description': "runs averaged per measurement, max 200. Leave unset and the default ADAPTS: a 24-realization pilot that doubles while the baseline outcome sits inside its own noise floor, up to 200 (or maxRealizations, if set); the report's realizations field and sample-size finding record where it settled and why. Set it and that exact count is used, never more. If the report still says underpowered after adapting, raise hours or set a count explicitly."}, 'inline_context': {'type': 'boolean', 'description': 'embed the full JSON-LD @context map in the result instead of the URL it is served from (https://sim.pflow.xyz/ns/v1/context). Default false: the URL resolves to the identical map, so only set this for an offline consumer that cannot fetch it.'}, 'maxRealizations': {'type': 'number', 'description': 'bounds how far the adaptive default may escalate (default 200, the same ceiling an explicit realizations refuses above). Ignored once realizations is set. For a caller with its own latency budget, not for narrowing a report.'}}}
入力スキーマ
{'type': 'object', 'required': ['a', 'b'], 'properties': {'a': {'type': 'string', 'description': 'model id (before)'}, 'b': {'type': 'string', 'description': 'model id (after)'}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'groups'], 'properties': {'id': {'type': 'string', 'description': 'model id (needs simulation.objective, players with turnPlace)'}, 'groups': {'type': 'string', 'description': 'JSON object: group name -> transition ids sharing one fitted multiplier, e.g. {"detectors":["x_win_0","o_win_0"],"draw":["call_draw"]}'}, 'options': {'type': 'string', 'description': 'JSON: {"games":20,"positions":40,"iters":40,"horizon":3,"realizations":40,"seed":11,"engine":""} (the defaults shown; 0 or unset takes the default). Caps: games at most 100, positions at most 100, iters at most 100, realizations at most 200, horizon at most 10000; over a cap, a negative value or an unknown key is refused'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'entity id to look up'}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'player'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'player': {'type': 'string', 'description': 'player name from simulation.players'}, 'horizon': {'type': 'number', 'description': 'model time to explore ahead (default 3, max 10000)'}, 'marking': {'type': 'string', 'description': 'JSON object, sparse marking override (the position to evaluate from); default = the initial marking'}, 'realizations': {'type': 'number', 'description': 'SSA rollouts per candidate move (default 40, max 200)'}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'operations'], 'properties': {'id': {'type': 'string', 'description': 'model id to edit'}, 'name': {'type': 'string', 'description': 'optional name for the edited model'}, 'operations': {'type': 'string', 'description': 'JSON array of operations'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'binding id'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id (content hash)'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id'}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'license'], 'properties': {'id': {'type': 'string', 'description': 'model id to dedicate'}, 'license': {'type': 'string', 'description': 'one of CC0-1.0, CC-BY-4.0, CC-BY-SA-4.0'}}}
入力スキーマ
{'type': 'object', 'required': ['subject', 'predicate', 'object'], 'properties': {'object': {'type': 'string', 'description': 'id of the entity the relation points to'}, 'subject': {'type': 'string', 'description': 'id of the entity the relation starts from'}, 'predicate': {'type': 'string', 'description': 'the relationship, e.g. hasMember, cites, supersedes — no fixed vocabulary'}}}
入力スキーマ
{'type': 'object'}
入力スキーマ
{'type': 'object'}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'map id'}}}
入力スキーマ
{'type': 'object'}
入力スキーマ
{'type': 'object', 'required': ['data'], 'properties': {'data': {'type': 'string', 'description': 'the table as a JSON object'}}}
入力スキーマ
{'type': 'object'}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'subject id to traverse from'}, 'predicate': {'type': 'string', 'description': 'restrict to this predicate; omit for every outgoing relation'}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'parameters', 'objectives'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'seed': {'type': 'number', 'description': 'sampling seed, a whole number (default 42)'}, 'hours': {'type': 'number', 'description': 'horizon per run (default 8, above 0 and at most 10000)'}, 'samples': {'type': 'number', 'description': 'Monte Carlo samples (default 100, 1..1000; outside that is refused)'}, 'objectives': {'type': 'string', 'description': 'JSON array of {"place": id, "direction": "max"|"min"}'}, 'parameters': {'type': 'string', 'description': 'JSON object transition_id → [min, max] rate range, e.g. {"finish_brew": [10, 40]}'}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'param_x', 'param_y', 'observable', 'range_x', 'range_y'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'hours': {'type': 'number', 'description': 'horizon per run (default 8, above 0 and at most 10000)'}, 'param_x': {'type': 'string', 'description': 'first transition id'}, 'param_y': {'type': 'string', 'description': 'second transition id'}, 'range_x': {'type': 'string', 'description': 'JSON [start, stop, n] for param_x: non-negative rates, n a whole number 2..40'}, 'range_y': {'type': 'string', 'description': 'JSON [start, stop, n] for param_y: non-negative rates, n a whole number 2..40'}, 'log_scale': {'type': 'boolean', 'description': 'space the grid in log10 (default false)'}, 'observable': {'type': 'string', 'description': 'place id whose final value fills the grid'}}}
入力スキーマ
{'type': 'object', 'required': ['parent', 'text'], 'properties': {'text': {'type': 'string', 'description': 'the natural-language instruction'}, 'parent': {'type': 'string', 'description': 'id to run the prompt against — a model, prompt, artifact, or map'}, 'system': {'type': 'string', 'description': 'optional system-level instructions, in addition to the parent context this tool always supplies'}}}
入力スキーマ
{'type': 'object', 'properties': {'ids': {'type': 'string', 'description': 'JSON array of model ids to consider, e.g. ["id1","id2"]. Omit to scan every model ListFor("") would list (the public catalog), truncated to limit.'}, 'limit': {'type': 'number', 'description': 'maximum number of models to diagnose (default 10, 1..25; over 25 is refused, and so are explicit ids naming more models than limit) — a cost control, since this runs a simulation per model'}, 'realizations': {'type': 'number', 'description': "realizations per model's Diagnose run (default 8, 1..16; outside that is refused) — deliberately small, this only needs to name a shape, not measure precise influence"}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'scenario': {'type': 'string', 'description': "optional scenario JSON to run for the data tabs; sim_scenario's defaults (hours 8, realizations 16, seed 20260809) fill whatever is omitted"}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'html'], 'properties': {'id': {'type': 'string', 'description': 'model id the app presents'}, 'html': {'type': 'string', 'description': 'the complete self-contained HTML document'}}}
入力スキーマ
{'type': 'object', 'required': ['id', 'scenarios'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'scenarios': {'type': 'string', 'description': 'JSON array of scenarios, each with a name, e.g. [{"name":"today","hours":8},{"name":"one more","hours":8,"marking":{"staff/available":3}}]; sim_compare\'s defaults (hours 8 and realizations 16 per scenario, seed 20260809) fill whatever is omitted'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id to run'}, 'scenario': {'type': 'string', 'description': "scenario JSON (hours, samples, seed, marking, rates, schedule, summary — the same shape sim_scenario takes); sim_scenario's defaults (hours 8, realizations 16, seed 20260809) fill whatever is omitted, and the receipt's scenario records the filled-in values so its replay reproduces this run. The result hash covers the result as returned, so a summary: true scenario certifies the summarized form and replays to it"}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id to refine'}, 'tags': {'type': 'string', 'description': 'JSON object of place OR transition id -> {key: value}, e.g. {"nurse_avail":{"refine.shift":"night"}}. Keys not prefixed refine. are stored as metadata and refine nothing. classify.go\'s colour refinement seeds from both places\' and transitions\' tags, so either kind of id works here.'}, 'signer': {'type': 'string', 'description': 'optional {"type":"eth"|"ed25519","address":"..."} — signs the lineage claim so it is the refiner\'s word rather than the server\'s account of a session'}, 'signature': {'type': 'string', 'description': 'optional hex signature over the CID of the signed claim; see modelstore.SignedClaim for the exact bytes. An unverifiable signature is refused, not stored with a flag.'}, 'assertedClasses': {'type': 'string', 'description': 'JSON array, e.g. [{"id":"items","members":["item0","item1"],"note":"one stocking decision"}]'}}}
入力スキーマ
{'type': 'object', 'required': ['prompt'], 'properties': {'text': {'type': 'string', 'description': "override the original prompt's text; default reuses it verbatim"}, 'prompt': {'type': 'string', 'description': 'id of the sim_prompt (or earlier sim_reroll) to re-run'}, 'system': {'type': 'string', 'description': "override the original prompt's system text; default reuses it verbatim"}}}
入力スキーマ
{'type': 'object', 'required': ['bindingIds'], 'properties': {'seed': {'type': 'number', 'description': "shared seed across every model's run (default 1)"}, 'hours': {'type': 'number', 'description': 'horizon in hours, shared across every model in the pipeline (default 8)'}, 'bindingIds': {'type': 'string', 'description': 'JSON array of binding ids to run together, e.g. ["id1","id2"] — every model these bindings touch is included automatically.'}, 'realizations': {'type': 'number', 'description': 'realizations per model (default 0, which the engine runs as a single realization — one SSA trajectory per model, so set it, e.g. 16 as sim_scenario defaults to, when the resampled series should be a mean rather than one draw; max 200)'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'scenario': {'type': 'string', 'description': 'scenario JSON, e.g. {"hours":8,"samples":60,"realizations":16,"seed":7,"marking":{"staff/available":3},"params":{"batch_size":6},"schedule":{"arrive":[{"until":2,"value":12},{"until":8,"value":4}]},"engine":"ssa","summary":false}; hours defaults to 8, samples to 60, realizations to 16, seed to 20260809, summary to false (full trajectory); hours above 10000, realizations above 200 or samples above 5000 are refused'}}}
入力スキーマ
{'type': 'object', 'required': ['old', 'new'], 'properties': {'new': {'type': 'string', 'description': 'model id of the successor'}, 'old': {'type': 'string', 'description': 'model id being replaced'}}}
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'model id'}, 'properties': {'type': 'string', 'description': 'JSON array of properties, e.g. [{"kind":"deadlock-free"},{"kind":"mutual-exclusion","places":["win_x","win_o"]},{"kind":"invariant","expr":"a + 2*b == 10"}]. Default: bounded + deadlock-free.'}}}
最近のツール変更
類似のMCPサーバー
Clink Forge
Provides pay-per-call access to attested government datasets, primarily CDC and HHS health data plus EPA air-quality observations.
osint
Provides source-cited US data and schemas for power systems, AI infrastructure, semiconductor production and trade, robotics, and…
Us Iso Grid
Provides real-time and recent electricity grid data for CAISO, ERCOT, and NYISO, including demand, forecasts, fuel mix, emissions…
AOI — Environmental Intelligence for AI Agents
Provides paid, quote-based environmental intelligence assessments covering climate risk, emissions, biodiversity, air quality, ha…
Pharma Intel
Combines clinical trial, FDA, PubMed, drug identification, safety, pipeline, sales, patent, and pharmaceutical sponsor data for d…
Data Gov Sg
Provides Singapore government datasets and environmental feeds, including air quality, dataset metadata, and routed structured re…
Nih Reporter
Searches and analyzes NIH-funded research projects, awards, publications, funding trends, expirations, investigators, organizatio…
Georgia Energy
Exposes live and historical Georgian electricity-grid telemetry, generation, demand forecasts, prices, publications, and tenders.