MCP serverxyz.pflow.sim/whatif
Conversational what-if simulation: build, diagnose and compare Petri-net models; CC0 catalog.
Overview
Score?
UNRATED 0.671
of what a free look can see, on 17 looks
Looks
35
last 9 hr ago
Tools
54
changed 9 hr ago
More info
URL
sim.pflow.xyz/mcp
streamable-http
Says it is
sim.pflow.xyz 1.0.0
protocol 2025-06-18
In the record since
32 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.671 · highest on record 0.8561
Toolsfrom sha256:825123b6bf…2d64e9 · +0 −0 9 hr ago
| Tool | Schema |
|---|---|
| sim_accept_migration Carry offered taxonomic edges of a superseded model forward to its current successor. edges lists 1 to 25 edge ids that sim_migration_offers(model) offered; pass successor (the cur |
input · no output |
| sim_bind Record a checked connection between two stored models' declared ports, fromModel's fromPort (a place tagged port.output) feeding toModel's toPort (a transition tagged port.input), |
input · no output |
| sim_calibrate Calibrate a model against YOUR event log — the reading that meets reality. Upload CSV (case_id, activity, timestamp; the shape sim_dataset emits, activities = transition ids), and |
input · no output |
| sim_canonical Tell whether two differently-labelled models are actually the same net: an isomorphism-invariant id computed from the model's EXACT automorphism orbits (orbits.go), not the colour- |
input · no output |
| sim_check_witness Re-check a stored structural witness against both stored models with the independent checker (pkg/morphism), which does no search. Given a structural edge's id, checks every witnes |
input · no output |
| sim_classify Discover the parameter classes of a stored model and return them as JSON-LD with empty annotation slots for you to fill in (label, comment, unit, domain, substitutes — nothing else |
input · no output |
| sim_code_to_flow Derive a Petri-net model from source code with the configured LLM (control flow, state machine, resources or concurrency focus), validate it, and store it as a NEW model you own. R |
input · no output |
| sim_compare Run several scenarios against one model on one shared seed and return them side by side — the seed sharing is server-enforced, so differences are the scenarios, not the dice. Retur |
input · no output |
| sim_components List the component registry: pre-baked subnet templates (arrivals, service, hazard, inventory, decision, mailbox, datastore) with the calibration discipline baked into the arcs and |
input · no output |
| sim_compose Instantiate a registry component into a model and store the result as a NEW content-addressed model you own (lineage recorded when composing onto an existing id). Omit id to start |
input · no output |
| sim_conformance Check how well a stored model matches an observed event log WITHOUT rewriting its rates — the read sim_calibrate bundles into calibration, offered on its own and in full: fitness ( |
input · no output |
| sim_create_collection Mint a named Collection you own and return its content id. A collection carries no member list of its own — a mutable list would change the collection's own id every time something |
input · no output |
| sim_create_model Store a Petri-net model (JSON with name/places/transitions/arcs) and return its content id. Models are immutable; a changed model is a new id. Structural validation rejects malform |
input · no output |
| sim_create_system Define a System (ROADMAP.md Phase 11f): a content-addressed, stored set of models and the bindings between them, so the catalog can answer questions about them together. Pass colle |
input · no output |
| sim_crosscheck Run every applicable READING of a model against the others and report agreement or divergence with the reason: discrete SSA means vs the continuous mean-field solve, algebraically |
input · no output |
| sim_dataset Generate a synthetic event log from a stored model (seeded SSA playout; case-per-arrival). Returns CSV. Deterministic: same id, same seed, same bytes. |
input · no output |
| sim_delete_model Delete a model you created. Refused for the curated catalog, for models you do not own, and for models already dedicated to the commons (a dedication is irrevocable). |
input · no output |
| sim_diagnose Returns what one more of each resource (and a change in each rate) is worth to the outcome, each ranked against a measured noise floor — no fitness test to write. Also reports gene |
input · no output |
| sim_diff Structural difference between two stored models: places, transitions and arcs added or removed, and surviving elements whose numbers changed (initial, capacity, rate, stages, arc w |
input · no output |
| sim_distill Distill exact search into the play scorer: fit rate multipliers for named transition groups so play's rankings agree with exact minimax, on positions sampled by random self-play an |
input · no output |
| sim_edges List every relation touching an entity, as either subject or object. Answered from an index by subject and object; each call re-lists the store so edges written by other instances |
input · no output |
| sim_evaluate Score a player's legal next moves with the PLAY method (the blog post's move picker): apply each candidate hypothetically and score the expected objective of the position it leads |
input · no output |
| sim_extend Apply structural edits to a stored model and store the result as a NEW model you own, with lineage back to the original — the same vocabulary the guided builder uses behind its int |
input · no output |
| sim_get_binding Fetch a stored Binding by id, with its check computed now (binds-port-v1; binds-port-v2 for a binding that declares a unit conversion, which is returned as convert; binds-port-v3 f |
input · no output |
| sim_get_model Fetch a stored model's full Petri-net JSON by id. |
input · no output |
| sim_invariants Derive a model's full algebraic invariant structure: conservation laws (Farkas P-invariants — weighted place sums every run preserves, the arithmetic a trust panel should show), fi |
input · no output |
| sim_license_model Dedicate a model you created to the commons under CC0-1.0, CC-BY-4.0, CC-BY-SA-4.0. It then appears in every user's listing with the license shown, and the dedication is IRREVOCABL |
input · no output |
| sim_link Record a typed edge between two stored entities (models, prompts, artifacts, maps, collections, bindings, relations — not witnesses), using a registered predicate. sim_link writes |
input · no output |
| sim_list_bindings List the content id of every stored Binding. |
input · no output |
| sim_list_models List the models visible to you: the curated catalog, models dedicated to the commons (their entry carries the license), and your own (marked mine). Other users' undedicated models |
input · no output |
| sim_map_get Fetch a stored Map's key->value data by id. |
input · no output |
| sim_map_list List the content id of every stored Map. |
input · no output |
| sim_map_put Store a key->value lookup table as its own content-addressed entity — a generated parameter sweep, a rate table, a component registry, anything shaped as key->value rather than fre |
input · no output |
| sim_migration_offers List what happens to the edges of a superseded model. Taxonomic edges (hasMember, @type, broader, related, closeMatch, cites, about) are OFFERED: each row gives the edge as it woul |
input · no output |
| sim_my_sheets List the sheets this user has published, with their URLs. |
input · no output |
| sim_neighbors One-hop traversal from an entity, read through the predicate registry. With no predicate: the object of every relation where the entity is the subject. With a predicate: the entiti |
input · no output |
| sim_optimize Multi-objective optimisation over transition rates for a stored model: Monte Carlo samples the rate ranges, runs each combination to the horizon with the continuous engine, and ret |
input · no output |
| sim_param_heatmap Two-rate grid for a stored model: vary two transition rates over ranges, run each combination to the horizon with the continuous engine, and return the observable's final value as |
input · no output |
| sim_prompt Ask an LLM to derive something from a stored entity: a variant model, a report, a piece of generated code — whatever the prompt asks for. The parent's JSON rides along as context, |
input · no output |
| sim_propose_types Propose candidate @type values for one or more stored models, e.g. "QueueingSystem" or "ResourcePool", from a small Diagnose run this tool performs on each model (nothing is cached |
input · no output |
| sim_prove Prove a structural relation between two stored models and record it with its witness. isomorphicTo: an exact canonical-labelling search (the one behind sim_canonical, seeded with e |
input · no output |
| sim_publish Publish a stored model into the signed-in user's Google Sheets: the model workbook (live formulas when honest, a refusal tab when not), a server-run scenario as data tabs, and traj |
input · no output |
| sim_publish_app Publish the generated application for a model you own — the single-file HTML a generator produced from the model's `view` prompt. Served at /app/<id> in a sandboxed opaque origin ( |
input · no output |
| sim_publish_compare Publish a multi-scenario comparison into the signed-in user's Google Sheets — sim_compare's export, the counterpart of sim_publish for a single scenario. Runs every scenario on one |
input · no output |
| sim_query Answer a question over the edge graph between stored models: bounded paths, closure over transitive predicates, and conjunctive patterns of up to 4 triples joined on shared ?variab |
input · no output |
| sim_reach Returns whether the marking to is reachable from the marking from in ONE stored net (a model, or a system that is one net): yes with a firing trace, no with a re-checkable P-invari |
input · no output |
| sim_receipt Run a seeded scenario and get back the result PLUS a signed run receipt: an Ed25519 certificate over (model id, scenario, result hash, service revision). Anyone can check it two wa |
input · no output |
| sim_refine Refine a model's parameter classes by editing what the model SAYS (tags on a place or transition, or assertedClasses), then re-derive. Returns a NEW model id (ids are content addre |
input · no output |
| sim_reroll Re-run a stored sim_prompt against the SAME parent it originally ran against — a sibling attempt, never a chain: it never derives from the previous attempt's output, only from the |
input · no output |
| sim_run_pipeline Returns one scenario result per model that a set of stored Bindings (see sim_bind) touches, run as a composed pipeline, with the assumptions the composition makes, inTransit (per d |
input · no output |
| sim_scenario Run a seeded what-if scenario against a stored model: marking overrides, rate overrides, piecewise rate schedules, and params assignments to the model's declared structural paramet |
input · no output |
| sim_supersede_model Mark an old version of your model as replaced by a newer one. The old id keeps working and its commons dedication (if any) stands — only the listing moves on to the successor. Both |
input · no output |
| sim_system Returns a stored System's view ({id}), the models whose ports can bind to one declared port ({model, port, direction?, among?}), or the stored systems that name a model or a bindin |
input · no output |
| sim_verify Verify declared properties of a stored model: deadlock-free, bounded, mutual-exclusion, invariant expressions, reachable/unreachable targets. Verdicts are proved/refuted/unknown — |
input · no output |
Verify it yourself
npx teppi-check https://sim.pflow.xyz/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1FZ2R4DK314ZC7EFPKAN7AT