Finds the simplest equation consistent with your data. SINDy and PySR symbolic regression via MCP.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://occam.fit/mcp/4 tools · 90msfeature_requestRequest a feature that Occam doesn't support yet.
Use this when you need a capability that Occam doesn't currently
offer. Requests are logged and used to prioritize development.
Rate limit: 5 requests/hour per IP, 50/hour global — stricter than
the compute tools' 10/hour to prevent log floodi…Request a feature that Occam doesn't support yet. Use this when you need a capability that Occam doesn't currently offer. Requests are logged and used to prioritize development. Rate limit: 5 requests/hour per IP, 50/hour global — stricter than the compute tools' 10/hour to prevent log floodi…
| Parameter | Type | Description |
|---|---|---|
| description* | string | A short description of the feature you need. Examples: 'LaTeX output for equations', 'support for ODE constraints', 'GPU-accelerated search', 'larger dataset l… |
sindy_runSparse Identification of Nonlinear Dynamics (SINDy).
Recovers governing differential equations (dx/dt = f(x)) from time
series data. Returns human-readable sparse expressions. Fast (seconds).
For algebraic y = f(x) relationships without time structure, use
pysr_run instead.
Pricing: free tie…Sparse Identification of Nonlinear Dynamics (SINDy). Recovers governing differential equations (dx/dt = f(x)) from time series data. Returns human-readable sparse expressions. Fast (seconds). For algebraic y = f(x) relationships without time structure, use pysr_run instead. Pricing: free tie…
| Parameter | Type | Description |
|---|---|---|
| data* | array | 2D array of time series data. Each row is a timestep, each column is a state variable. Free tier: 100 rows, 8 variables. Paid tier: up to 500,000 rows, 50 vari… |
| t* | array | Timestamps corresponding to each row of data. Length must match row count. |
| feature_names | — | Names for each variable/feature column. Defaults to x0, x1, ... |
| poly_degree | integer | Polynomial library degree for SINDy candidate functions. Default 2. |
| threshold | number | STLSQ sparsity threshold. Higher values produce sparser equations. Default 0.1. |
| max_iter | integer | Maximum STLSQ optimizer iterations. Default 20. |
| payment | — | Payment credential. Accepts either a JSON object or a JSON-encoded string (FastMCP's transport pre-parses strings whose field annotation is non-bare-`str` into… |
pysr_runEvolutionary Symbolic Regression (PySR).
Discovers algebraic equations y = f(x1, x2, ...) from feature/target
data. Returns a Pareto front ranked by the complexity/accuracy
tradeoff. Slower than SINDy (10-60s); searches often terminate early
on convergence. For differential equations from time…Evolutionary Symbolic Regression (PySR). Discovers algebraic equations y = f(x1, x2, ...) from feature/target data. Returns a Pareto front ranked by the complexity/accuracy tradeoff. Slower than SINDy (10-60s); searches often terminate early on convergence. For differential equations from time…
| Parameter | Type | Description |
|---|---|---|
| X* | array | 2D array of input features. Each row is an observation, each column is a feature. Free tier: 100 rows, 8 features. Paid tier: up to 50,000 rows, 20 features. |
| y* | array | Target values, one per row of X. |
| feature_names | — | Names for each variable/feature column. Defaults to x0, x1, ... |
| unary_operators | — | Allowed unary operators, drawn from the fixed supported set: sin, cos, tan, exp, log, log2, log10, sqrt, abs, sinh, cosh, tanh. Custom operators (e.g. 'inv(x)… |
| binary_operators | — | Allowed binary operators, drawn from the fixed supported set: +, -, *, /, ^. Custom operators are NOT supported. Default: +, -, *, /. Pass [] for none. |
| max_complexity | integer | Maximum expression tree size. Higher allows more complex expressions. Default 20, max 25. |
| populations | integer | Number of evolutionary populations for the search. Default 15, max 20. |
| timeout_seconds | integer | Wall clock time limit in seconds. Free tier: max 60. Paid tier: max 300 (5 minutes). Default 60. |
| loss_threshold | — | Optional early-stop threshold on the best loss found. If set, the search terminates as soon as any Pareto-front member reaches a loss at or below this value, e… |
| stall_detection | boolean | When true (default), the server stops the search early if the best loss has not improved by more than 1% during the last third of the time budget. This reclaim… |
| payment | — | Payment credential. Accepts either a JSON object or a JSON-encoded string (FastMCP's transport pre-parses strings whose field annotation is non-bare-`str` into… |
pysr_uncertaintyBootstrap confidence intervals for the numeric constants of a
frozen expression, plus optional prediction bands on an x-grid.
Typical flow: call pysr_run, pick an expression from the response
(best_expression or a pareto_front entry), pass it back here with
the same dataset to get CIs on its f…Bootstrap confidence intervals for the numeric constants of a frozen expression, plus optional prediction bands on an x-grid. Typical flow: call pysr_run, pick an expression from the response (best_expression or a pareto_front entry), pass it back here with the same dataset to get CIs on its f…
| Parameter | Type | Description |
|---|---|---|
| expression* | string | The expression to bootstrap, as returned by pysr_run (`best_expression` or a `pareto_front[i].expression`). Only numeric Float constants are treated as free pa… |
| X* | array | 2D array of input features. Each row is an observation, each column is a feature. Free tier: 100 rows, 8 features. Paid tier: up to 50,000 rows, 20 features. |
| y* | array | Target values, one per row of X. |
| feature_names | — | Names for each variable/feature column. Defaults to x0, x1, ... |
| y_sigma | — | Optional per-point measurement standard deviations, or a single scalar applied to all points. When supplied, the helper uses parametric bootstrap (y_b = y + No… |
| n_resamples | integer | Number of bootstrap resamples. Higher = tighter CIs, more compute. Default 100. |
| alpha | number | Significance level. 0.05 → 95%% CI. Default 0.05. |
| x_grid | — | Optional 2D grid of feature values at which to report a prediction band. Must have the same number of columns as X. Omit to skip prediction-band computation. |
4 of 4 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Finds the simplest equation consistent with your data. SINDy and PySR symbolic regression via MCP.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.