Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "check_account_and_credits", "check_simulation_model", "convert_distribution_to_range" and 7 more; removed "describe_distribution", "estimate", "feedback" and 8 more; changed the definition of "buy_credits" (12 tools before, 11 now)
Buy Neumann credits with your saved cardPurchasesBuys Neumann creditsusingbyacharging the paymentmethodcard already savedfromonayourprioraccount.StripeCreditsCheckoutpaysession.for simulations run with an account. Use this when anauthenticatedaccount isrunninglow on credits andneedsthemoreuser has agreed tokeepthesubmittingpurchase.runsIfornoanalysescard is saved yet,withoutit buys nothing and charges nothing. Instead it returns payment_status checkout_required and ahumancheckout_url:re-enteringthe user opens that link in a browser to save a card,details.thenExample:you{"call this tool again. It returns the credits":100}Cost:bought,chargesthe new balance, the payment status and, when a cardalreadyissavedneeded,ontheyourcheckout_url.account;Cost:itchargesmintsyourcreditssavedrathercardthanforspendingeachthem.credit,SeecurrentlyGET$0.50/billing/pricingperforcredit (check_account_and_credits shows thecurrentliveper-creditprice);price.needs an account.
{"description":"Arguments for ``buy_credits`` (neumann#192; mirrors fermi's schema).\n\nAuthentication is required (unlike the free tools above): an anonymous\ncaller gets an ``authentication_required`` tool error. No price literal\nhere by design — see GET /billing/pricing for the current per-credit cost.","properties":{"api_key":{"anyOf":[{" ⟨4 unchanged words⟩ }],"default":null,"description":"Your Neumann APIkeykey.fromRequiredPOSTunless/api/v1/accounts.yourRequiredconnectionunlessisyousignedareinauthenticatedwithviabilling permission (the neumann:billing scope). Get one by creating anAuthorization
{"$defs":{"AnonymousLimits":{"description":"Theanonymous tier'slimitshardthatbounds,applyrenderedwithoutfroman``Settings``.account.","properties":{"max_nodes":{"description":"MaximumMost nodesin(inputsanplusanonymousformulagraph.nodes) allowed without an account.","title":"Max Nodes","type":"integer"},"max_trials":{"description":"MaximumMost trials allowed inaonesingle
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Buy Neumann credits with your saved card"}
Check your account, credits and free runs left — Shows who Neumann thinks you are and what you can still do: your credit balance if you have an account, or your free runs left today and when they reset if you do not. Use this when you need to know, before or after a run, whether a call will use credits or a free run, how much is left, or whether you are signed in. An api_key that is not recognized returns an unauthorized error. It returns whether you are anonymous or an account, your account id and status, credit balance, free runs left today with the reset time and the no-account size limits, the price of one credit in US dollars, and your…
Check a simulation model for errors before running it — Checks a model for mistakes before you run it and lists every problem it finds. It looks for loops with no delay, nodes that are not connected, unknown distributions, missing or invalid distribution parameters, and broken formulas. A loop, including an edge from a node to itself, is allowed and is not an error when at least one edge in it has delay 1 or more. Use this when you have built or edited a model and want to fix it without spending a run. To see what a run will cost, use estimate_simulation_size_and_cost instead. It returns is_valid and a list of issues. Each issue gives the rule bro…
Turn distribution parameters into a min–max range — Turns a distribution's parameters into the low and high ends of the range that holds a chosen share of outcomes, by default the middle 90%. It also gives the mean, median, mode, standard deviation and any percentiles you ask for. If you give a threshold, it gives the chance of landing below and above it. Use this when you have distribution parameters, from a model or from fermi (a companion forecasting server from Kromatic, the company behind Neumann, whose estimates carry next_steps.simulate.root_node), and want to know what they mean in plain numbers. Its reverse is convert_range_to_distrib…
Turn a min–max guess into distribution parameters — Turns a low-to-high guess, such as "between 80 and 120, 90% sure", into the exact parameters a model input needs. A distribution is the shape of the uncertainty, for example normal (a bell curve), log_normal (skewed and never negative), triangle or uniform. The low and high values are the edges of the range you are that sure of, not hard limits. Use this when you have a rough estimate and need distribution parameters instead of guessing them. Its reverse is convert_distribution_to_range. It returns the distribution type and its parameters, ready to use as a model input's distribution_params. …
Estimate a simulation's cost and size before running it — Predicts how large a run of a model will be and how many credits it will cost, without running it. Use this before running a large or unfamiliar model, or to check that an account can afford it. It does not look for mistakes; use check_simulation_model for that. It returns the number of trials, time periods, nodes and edges, the estimated peak memory in MB, a complexity score, the size tier (small or large) and the credit cost for an account. A run is small when trials × nodes × time periods is at most 100,000, and large otherwise. Accounts have no fixed trial or node limit. That cost is what…
Get the results of a simulation you already ran — Gets the saved status and summary of a simulation you already ran, using its run_id. Use this when you need an earlier result again, for example in a later turn, without running the model again. You never need it to wait for a run: run_monte_carlo_simulation returns its full result when it finishes. Only run_monte_carlo_simulation gives out a run_id. It returns the run's status, size tier, trial counts and start time, and a summary of each node's statistics (mean, standard deviation, minimum, maximum, percentiles and histogram), or the error if the run failed. Only the caller who started the …
Rank which inputs drive an outcome most (one-at-a-time sensitivity) — Ranks a model's uncertain inputs by how much each one moves a chosen outcome, and returns the data for a tornado chart. A tornado chart is a bar chart with one horizontal bar per input, sorted with the biggest swing at the top. This is a one-at-a-time (OAT) sensitivity analysis. Every input is held at its median while one input at a time is set to low, middle and high values from its own distribution (by default its 5th, 50th and 95th percentiles). The tool records how the outcome's average changes. Use this when you need to know which assumption matters most, so you know what to research or …
Run a Monte Carlo simulation of a model — Runs a Monte Carlo simulation of a model and returns the full range of possible outcomes, not one guessed number. A model is a set of uncertain inputs, the formulas that combine them, and the links between them. The simulation draws random values for every input many times; each draw is a trial, and one call is one run. Use this when you need to know how likely different outcomes are for a plan built on uncertain inputs. It returns, for every node and time period, the mean, standard deviation, minimum, maximum, 10th to 90th percentiles (the value a given share of trials fall below) and a hist…
Send feedback or a bug report to the Neumann team — Emails your feedback, feature request or bug report to the Neumann team, with a copy to the email address you give. Use this when something in Neumann is wrong, missing or confusing and a person should see it. Check with the user first, because it sends a real email and shares their address. It returns status "sent" and a confirmation message. No account is needed. If you pass an api_key, your account id is included in the email. Cost: free; uses no credits and no free runs.
Summarize worst, median and best outcomes — Runs a model once and reports one outcome's worst, median and best values. By default, worst is the lowest value in any trial, median is the middle value, and best is the highest value. Worst always means lowest, so for a cost the worst case is the cheapest one. You can ask for other percentiles instead, such as the 10th and 90th. Use this when you want a short worst, typical and best case story rather than the full distribution. For the full distribution, use run_monte_carlo_simulation. To find which input matters most, use rank_inputs_by_impact. It returns each scenario's outcome value and …
Describe a distribution — Converts distribution_params back into plain numbers: mean, median, std, mode, requested quantiles, a central interval, and (with a threshold) the probability above/below it. Use this when you were handed a root node -- from fermi's next_steps.simulate.root_node or a graph you are editing -- and need to know what log_normal {mu: 9.2, sigma: 0.6} actually means in plain numbers, rather than hand-computing quantiles yourself. Example: {"distribution_type":"log_normal","distribution_params":{"mu":9.2,"sigma":0.6},"percentile_range":0.9,"threshold":15000} Cost: free -- no credits debited, and no …
Estimate run size and cost — Pre-flight-sizes a graph without running it: estimated peak memory, engine complexity, which tier (small/large) it would run as, and the credit cost. Use this when you want to know what a run will cost or how heavy it is before committing to it, especially for a large or unfamiliar graph. Example: {"graph":{"root_nodes":[{"id":"root","distribution_type":"normal","distribution_params":{"mean":100,"std":15}}],"calc_nodes":[{"id":"out","formula":"{e1}"}],"edges":[{"id":"e1","source":"root","target":"out"}],"run_params":{"trials":1000,"time_periods":12}}} Cost: free -- no credits debited, and no …
Send feedback to the Neumann team — Sends feedback, a feature request, or a bug report straight to the Neumann team, CC'ing your sender_email so you keep a copy. Use this when something about the service is wrong, missing, or confusing and you want a human to see it directly rather than guessing at a workaround. Anonymous submissions are allowed. Example: {"feedback_type":"feature_request","message":"Add CSV export for run results.","sender_email":"agent@example.com"} Cost: free -- no credits debited, and no anonymous daily run spent. Anonymous callers may use it at any volume.
Read a run's results — Fetches the status and, once available, the summarised result for a previously-submitted run by its run_id. Results are readable only by the caller who created the run; anonymous results expire 24 hours after their run was created. Use this when you want to re-check or re-fetch a run you already submitted (e.g. via run_simulation) without resubmitting the graph -- run_simulation itself already blocks until done and returns the full result directly, so this is not a poll-until-ready step for it. Example: {"run_id":"run_8f3c2a"} Cost: free -- no credits debited, and no anonymous daily run spent…
Run a tornado sensitivity analysis — Runs a one-at-a-time tornado sensitivity analysis: sweeps each root node over a set of quantiles (others held at baseline) and measures how the target node responds, ranked by impact. Use this when you need to know which uncertain input most drives an outcome, so you know what to de-risk or estimate more carefully first. Example: {"graph":{"root_nodes":[{"id":"root","distribution_type":"normal","distribution_params":{"mean":100,"std":15}}],"calc_nodes":[{"id":"out","formula":"{e1}"}],"edges":[{"id":"e1","source":"root","target":"out"}],"run_params":{"trials":1000,"time_periods":12}}} Cost: an…
Run a Monte Carlo simulation — Runs a Monte Carlo simulation over a graph of probabilistic root and calculated nodes, returning the full output distribution instead of one guessed number. Use this when you need the range and likelihood of outcomes for a plan driven by uncertain inputs, not just its average case. Both tiers run to completion and return the full result in this same call, never a run_id to poll. Distribution params by type: normal{mean,std} log_normal{mu,sigma} uniform{low,high} triangle{min_val,max_val,mode_val} beta{alpha,beta} poisson{lambda_val} bernoulli{p}. Example: {"graph":{"root_nodes":[{"id":"root",…
Summarize best/median/worst scenarios — Runs a simulation once and summarises a target node's worst/median/best outcomes (any percentiles), each paired with a best-effort driving input per root node. Use this when you need a quick worst-case/median/best-case narrative for a plan rather than the full distribution. Example: {"graph":{"root_nodes":[{"id":"root","distribution_type":"normal","distribution_params":{"mean":100,"std":15}}],"calc_nodes":[{"id":"out","formula":"{e1}"}],"edges":[{"id":"e1","source":"root","target":"out"}],"run_params":{"trials":1000,"time_periods":12}}} Cost: an anonymous call spends 1 of 3 free runs per UTC …
Share a run result — Creates (or fetches the existing) public share link for a PERSISTED run from the stored-graph flow, renderable as HTML/JSON/SVG. Use this when you want to hand a result to someone without giving them API access -- only for a run saved via the stored-graph flow: a run_simulation result is ephemeral and has no usable run_id. Requires authentication (api_key argument or an Authorization: Bearer token) to CREATE the link; the resulting share_url itself needs no credential to view. Example: {"run_id":"run_8f3c2a"} Cost: free -- no credits debited and no anonymous daily run spent -- but it requires…
Convert an estimate into distribution parameters — Converts a human-style estimate (a min/max range at a stated confidence, or a most-likely value) into the distribution_params a root node needs. Use this when you have a rough verbal estimate like 'between 80 and 120, 90% confident' and need engine-ready parameters rather than guessing them yourself. Example: {"distribution_type":"normal","min_estimate":80,"max_estimate":120,"percentile_range":0.9} Cost: free -- no credits debited, and no anonymous daily run spent. Anonymous callers may use it at any volume.
Validate a simulation graph — Checks a graph for structural problems (cycles, dangling edges, unknown distributions, missing refs) before you run it, returning a list of issues by rule and severity. Use this when you built or edited a graph by hand and want to catch mistakes before spending a run on it. Distribution params by type: normal{mean,std} log_normal{mu,sigma} uniform{low,high} triangle{min_val,max_val,mode_val} beta{alpha,beta} poisson{lambda_val} bernoulli{p}. Example: {"graph":{"root_nodes":[{"id":"root","distribution_type":"normal","distribution_params":{"mean":100,"std":15}}],"calc_nodes":[{"id":"out","formu…
Check account and quota — Reports who you are to Neumann and what you may still do: anonymous or an account, the account id and credit balance, or the free anonymous runs left in the current UTC day and when the allowance refills -- plus the per-credit price and your last ten ledger entries. Use this when you need to know, before or after a run, whether a call will be billed to credits or to the free anonymous allowance, how much of either is left, or whether an account was matched at all. Example: {} Cost: free -- no credits debited, and no anonymous daily run spent. Anonymous callers may use it at any volume.
Certificate recorded, valid to 2026-12-11
Authorization not required
Unknown → Live
First tool surface recorded: 12 tools (server version 0.2.6)
https://neumann.kromatic.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 6 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed