Medium Risk

pysr_uncertainty

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 fit ...

Risk signalsAccepts freeform code/query input (expression) · Bulk/mass operation — affects multiple targets

Part of the Occam server.

pysr_uncertainty can modify Occam data, with no limits today. PolicyLayer puts allow, deny, and rate-limit rules on every call. Live in minutes.

SECURE OCCAM →

Free to start. No card required.

AI agents use pysr_uncertainty to create or modify resources in Occam. Write operations carry medium risk because an autonomous agent could trigger bulk unintended modifications. Rate limits prevent a single agent session from making hundreds of changes in rapid succession. Argument validation ensures the agent passes expected values.

Without a policy, an AI agent could call pysr_uncertainty repeatedly, creating or modifying resources faster than any human could review. PolicyLayer's rate limiting ensures write operations happen at a controlled pace, and argument validation catches malformed or unexpected inputs before they reach Occam.

Write tools can modify data. A rate limit prevents runaway bulk operations from AI agents.

policy.json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "pysr_uncertainty": {
      "limits": [
        {
          "counter": "pysr_uncertainty_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}

See the full Occam policy for all 4 tools.

Get this rule live on your own Occam server in minutes. PolicyLayer enforces it on every call, before it runs.

ENFORCE ON MY OCCAM →

These attack patterns abuse exactly the kind of access pysr_uncertainty gives an agent. Each links to the full case and the policy that stops it:

Browse the full MCP Attack Database →

Every attack above starts with a tool call. PolicyLayer checks each one against your policy first, so pysr_uncertainty only ever does what you allow.

SECURE OCCAM →

Other write tools across the catalogue. The same approach applies to each: rate-limit and validate the arguments.

What does the pysr_uncertainty tool do? +

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 fit constants. Returns frequentist bootstrap confidence intervals, not Bayesian credible intervals — posterior inference over expression structures is an open research problem. This tool freezes the expression chosen by the caller and bootstraps only its numeric constants; uncertainty about *which* expression is correct is not quantified. Bootstrap semantics: - If y_sigma is supplied, uses parametric bootstrap (y_b = y + Normal(0, y_sigma)). CI reflects user-stated measurement noise. - Otherwise uses residual bootstrap: fit once, resample residuals. CI reflects estimated-from-residuals noise. Only Float constants in the expression become free parameters. Integers stay structural (the 2 in x2 is a function-class choice, not a fit constant). Expressions with no Float constants (e.g. "x + y") will be rejected with a validation error. Expression grammar: the expression string is parsed by sympy. Accepted operators are the same set pysr_run emits: unary sin, cos, tan, exp, log, log2, log10, sqrt, abs, sinh, cosh, tanh; binary +, -, *, /, ^ (or ). Whitespace and parenthesization are free. Every free symbol in the expression must correspond to an entry in feature_names — an unrecognised symbol is silently treated as a fresh sympy Symbol and the fit will fail downstream rather than reject early. Parse failures (syntax errors, malformed operators) surface as tool errors. If feature_names is supplied, its length must equal the number of columns in X; a mismatch is rejected with a validation error. Pricing: always free, regardless of dataset size. This tool has no payment parameter and is never subject to the x402/Stripe gate. Large bootstrap jobs still count against the shared rate limit below, so budget n_resamples accordingly. Rate limit: 10 requests/hour per IP, 200/hour global, max queue depth 20 (shared with sindy_run and pysr_run).. It is categorised as a Write tool in the Occam MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.

How do I enforce a policy on pysr_uncertainty? +

Register the Occam MCP server in PolicyLayer and add a rule for pysr_uncertainty: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Occam. Nothing to install.

What risk level is pysr_uncertainty? +

pysr_uncertainty is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.

Can I rate-limit pysr_uncertainty? +

Yes. Add a rate_limit block to the pysr_uncertainty rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block pysr_uncertainty completely? +

Set action: deny in the PolicyLayer policy for pysr_uncertainty. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides pysr_uncertainty? +

pysr_uncertainty is provided by the Occam MCP server (https://occam.fit/mcp/). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policy on every Occam tool call.

Deterministic rules across all 4 Occam tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

4,600+ MCP servers and 31,000+ tools scanned and risk-classified.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.