A no-network, sandboxed numeric oracle exposed as an MCP server. It evaluates agent-authored numeric expressions / evaluators at caller-supplied sample points inside a restricted subprocess (no network, no filesystem writes, bounded time and memory) and returns the per-point values plus a stable content hash of the executed source.
It is a pure evaluation oracle: it has no awareness of any claim or "right
answer". It exists so a verification system can compare two independently
constructed evaluators numbers-vs-numbers rather than trusting an LLM's prose.
It is the optional gpd-compute MCP server bridged by
Get Physics Done.
- No network. Sockets are disabled in the sandbox; the evaluator source is AST-validated to forbid imports before it ever runs.
- No API keys, no external services. Everything runs locally.
- Bounded. Hard wall-clock timeout plus CPU / memory / file-size limits.
- Deterministic. The same source + points + precision yields the same values; the content hash is taken over AST-normalized source.
evaluate_expression(submission, sample_points, precision)— evaluate and return values +evaluator_hash.evaluator_hash(submission)— hash only (no execution), to re-confirm a hash.probe_capability(restatement)— cheap check of whether v1 can build an oracle for a quantity class (returnsno_oracle_yetfor classes like interacting-QFT path integrals or GR-tensor canonicalization).describe_runtime()— static self-description (assertsno_network: true).
pip install gpd-compute
gpd-compute # starts the MCP server over stdioReliable: closed-form expressions, definite integrals / series, special-function
identities (gamma, Bessel, hypergeometric, zeta, elliptic), asymptotic / limiting
behavior via a sample-point ladder, and dimensionless ratios. Classes without a
soundly constructible numeric evaluator return an explicit no_oracle_yet signal
rather than a fabricated number.
License: MIT.