Skip to main content

Furox Scientific Toolkit — MCP Gateway

Provider-neutral Model Context Protocol gateway for seven existing Furox-Art public repositories. The upstream packages stay independent, with their original names and version histories. This repository is an integration hub, not a merge of source trees.

Status: local stdio and authenticated stateless Streamable HTTP transports are implemented. The public Render deployment at https://scientific-toolkit.onrender.com/health has been verified on 2026-10-08: 7 installed CLI executables and 12/12 authenticated loopback MCP HTTP startup checks passed, including six safe scientific CLI adapter calls. This proves deployment plumbing, not scientific correctness or external Claude/ChatGPT client login. OAuth issuer/JWKS remains not configured.

Seven upstream repositories

Public repository Role MCP tool(s)
axiomize Scientific models and verification axiomize_intake, axiomize_model
scientific-computing-system Pure-Python numerical computation cds_stats
scientific-computing-system-2.0 NumPy/SciPy computation cds2_stats
plan-auditor Independent execution verification plan_auditor_inspect, plan_auditor_audit
quantum-reasoning-skill Reasoning protocol/skill inspector quantum_skill_validate
axiomize-quantum-skills-2.0 Bundled modeling + branch-scoring controller axiomize_reason_score
eq-layer Response-control and intent routing eq_layer_route

axiomize-quantum-skills-2.0 already packages Axiomize, so this hub does not register its Axiomize MCP tools a second time. quantum-reasoning-skill is a skill protocol, not a quantum computer or a validated performance improvement. EQ-Layer is communication-control infrastructure, not a scientific data validator.

Local installation

Requires Python 3.10+. From this repository directory:

python -m pip install -e .
# Select upstream packages you actually need:
python -m pip install axiomize scientific-computing-system
python -m pip install scientific-computing-system-2.0
python -m pip install plan-auditor quantum-reasoning-skill eq-layer
# The bundled Axiomize/quantum package may replace the standalone
# Axiomize CLI. Install it in a separate environment (below).
python -m scientific_toolkit_mcp

To enable the bundled reasoning controller separately, create a dedicated virtual environment and install axiomize-quantum-skills-2.0 there. Then set SCITOOL_REASON_BIN to that environment's axiomize-reason executable. This avoids the shared axiomize CLI clashing with standalone Axiomize.

The final command starts an MCP stdio process. It waits for JSON-RPC requests on stdin and writes JSON-RPC only to stdout; it is not a text chat or HTTP server.

Any compatible local stdio MCP client: add this server to your MCP configuration (adjust python or use the absolute path to the correct venv Python):

{
  "mcpServers": {
    "scientific-toolkit": {
      "command": "python",
      "args": ["-m", "scientific_toolkit_mcp"]
    }
  }
}

In a running MCP client, call toolkit_catalog to see all seven repos, and toolkit_doctor to check which upstream CLIs are installed. Missing packages produce explicit NOT_INSTALLED errors rather than fabricated data.

Remote MCP: provider-neutral Streamable HTTP

The 7-repository catalog is available through compatible remote MCP clients using POST /mcp (stateless JSON-RPC), when authenticated. GET /health is public. A Render deployment currently serves https://scientific-toolkit.onrender.com/mcp; use the private credential configured in Render and never publish that token. To run your own instance instead:

# Generate a long random secret outside the repo and store it as a provider secret.
# Supply SCITOOL_MCP_BEARER_TOKEN through environment configuration.
python -m scientific_toolkit_mcp.http_server

Required variable: SCITOOL_MCP_BEARER_TOKEN (nonempty, kept outside Git). Optional variables: PORT (default 8000) and SCITOOL_ALLOWED_ORIGINS (comma-separated exact origin URLs). No web origin is allowed by default. Non-browser clients normally omit Origin; browser-origin requests require a configured allowlist entry and receive restricted CORS headers. Do not put bearer secrets in browser JavaScript or check them into a Git repository. Use TLS/HTTPS at the hosting reverse proxy and restrict access to trusted users.

Remote clients must support MCP Streamable HTTP and an explicit bearer-token header. Use the URL https://YOUR-HOST/mcp and set Authorization: Bearer YOUR_SECRET in that client's supported configuration. Some clients require OAuth discovery/registration instead and therefore cannot connect directly to this bearer-only server without an OAuth-compatible proxy. This is a client capability distinction, not a Claude/ChatGPT/Cursor restriction.

The toolkit_catalog covers all seven repositories. Authenticated HTTP clients may call the read-only plan_auditor_inspect only after the administrator configures SCITOOL_WORKSPACE_DIR to a trusted existing project directory. plan_auditor_audit can execute arbitrary project verification code and therefore remains local-only (10 remote tools out of 11 local tools). Setting SCITOOL_ALLOW_AUDIT_EXECUTION=1 does not override this HTTP safeguard. Missing upstream CLI packages return NOT_INSTALLED, never a fabricated PASS. Install the desired upstream packages in your deployment and use isolated environments for colliding Axiomize CLIs. No hosting fees are necessary to use the local stdio gateway.

Portability

  • Local: Claude Desktop, Cursor, Codex, and other stdio-capable MCP clients (configure each with its own supported launcher settings).
  • Remote: any Streamable-HTTP MCP client that accepts a custom bearer header.
  • Model-agnostic: the MCP server performs no proprietary LLM calls or inference.
  • Cross-application compatibility still requires live client-specific testing.

Optional executable overrides

For independent virtual environments, set environment variables to executable paths only, not commands with arguments:

Environment variable Default executable
SCITOOL_AXIOMIZE_BIN axiomize
SCITOOL_CDS_BIN cds
SCITOOL_CDS2_BIN cds2
SCITOOL_AUDITOR_BIN plan-auditor
SCITOOL_QUANTUM_BIN quantum-reasoning
SCITOOL_REASON_BIN axiomize-reason
SCITOOL_EQ_BIN eq-layer

Verification safety

The Plan Auditor audit operation executes the plan's configured checks. It is disabled by default. To opt in for a trusted local workspace, configure both:

  • SCITOOL_WORKSPACE_DIR: an already-existing trusted project directory
  • SCITOOL_ALLOW_AUDIT_EXECUTION=1: grants the audit tool permission to run those checks

plan_auditor_inspect also requires the configured workspace but does not assert task completion. All executable commands use fixed allowlisted command forms and subprocess without a shell. No user-selected paths or arbitrary command strings are accepted via MCP. Restrict access to the client session: the HTTP gateway requires authentication and never exposes the executable audit tool. It exposes read-only plan inspection only for a configured trusted workspace.

Scope, evidence, and limitations

  • Axiomize model operations require the actual upstream Model IR request; the gateway does not invent missing model assumptions or validation outcomes.
  • The two numerical packages have independent statistics adapters; their outputs and numerical algorithms are not silently conflated.
  • Each subprocess response includes exit code and stdout. Nonzero exit codes are MCP errors, and UNKNOWN is never promoted to a successful verification.
  • The bundled reasoning tool's thresholds remain uncalibrated reference defaults.
  • Any compatible AI client can serve as an orchestrator, not the validator: scientific claims still require reproducible numerical and empirical evidence.
  • This repo does not represent an incorporated legal company or promise Claude startup program eligibility. No deployment costs have been paid.

Tests

python -m unittest discover -s tests -v

CI exercises JSON-RPC initialization, list/call, seven-repository catalog, input validation, fail-closed audit defaults, upstream failures, and fake-CLI transport. The fake executable tests validate the integration plumbing; actual upstream numerical correctness remains the responsibility of each repository's own tests and a future cross-package integration suite.

Independent integration evidence

Three CI suites provide progressively stronger, but limited, verification:

  1. Protocol/unit tests check stdio and authenticated HTTP handling, argument validation, safe defaults, and fail-closed errors. Fake CLI tests are plumbing tests, not scientific evidence.
  2. Published upstream package smoke checks install all seven distributions separately and invoke their real CLIs through the gateway. The Plan Auditor profile checks the installed CLI and refusal to audit an unconfigured plan, not successful verification of research. This workflow also checks the live Render /health route and ensures that unauthenticated MCP tool calls receive HTTP 401.
  3. Official SDK interoperability starts a temporary authenticated HTTP server, connects with the official MCP Python client, negotiates a session, enumerates the ten remote-safe tools, and calls toolkit_catalog. A generated CI-only token is used.

Deployment scope: CI tests both isolated packages and all seven installed in one environment. The live Render service also passed 12/12 authenticated HTTP tests using its own private bearer credential over loopback; this includes six tool-execution paths and the seven-CLI availability check. No external ChatGPT/Claude OAuth sign-in was tested. The optional OAuth resource verifier is implemented, but a trusted authorization server must still be connected before OAuth-based clients can log in. Never publish or transmit the production bearer secret in GitHub or screenshots.

Deploy all seven upstream packages on Render

The currently published Render service originally installed only the MCP gateway with pip install -e .. This repository now includes a separate installation script that installs six upstream distributions into the system environment and the bundled Axiomize variant into an isolated package directory. To apply this to the existing service, set its Build Command in Render to:

bash scripts/render-build.sh

Keep its Start Command unchanged:

python -m scientific_toolkit_mcp.http_server

Do not replace or reveal the existing SCITOOL_MCP_BEARER_TOKEN. Rebuild/redeploy the existing free service after changing the build command. The full-stack installation workflow checks seven real CLI invocations in one CI environment. That does not prove all dependencies fit the Render Free 512 MB runtime limit or that production has installed them: inspect Render build logs and run authenticated calls separately. If the host runs out of memory, use separate workers or a larger instance rather than claiming all seven are running.

Optional OAuth 2.1 resource-server support

The public HTTP gateway supports opt-in verification of RS256-signed OAuth access tokens from an actual independently configured identity provider. It exposes /.well-known/oauth-protected-resource/mcp and includes protected resource metadata in unauthorized responses only when configured.

The OAuth verifier requires pip install -e '.[oauth]' (included in the Render build script) and all of these private Render environment settings:

Environment variable Configuration
SCITOOL_OAUTH_ISSUER Trusted provider's HTTPS issuer URI
SCITOOL_OAUTH_JWKS_URI Provider's HTTPS public JWKS endpoint
SCITOOL_OAUTH_RESOURCE_URI https://scientific-toolkit.onrender.com/mcp
SCITOOL_OAUTH_REQUIRED_SCOPE mcp:tools (provider must issue it)

The gateway checks signature, audience, issuer, subject, expiration and scope, and still recognizes the administrator's original bearer token. The server does not issue tokens, run an OAuth consent screen or register clients. A production identity provider must separately support proper OAuth 2.1, PKCE, client registration/metadata and audience-bound access tokens. An OAuth login via Claude or ChatGPT is not yet confirmed and must not be advertised as active without a real IdP and app-specific authentication test.

Python package and PyPI publishing

The gateway's Python distribution is named furox-scientific-toolkit-mcp (version 0.2.0 in the repository), with import name scientific_toolkit_mcp. Do not assume it is already available on PyPI: publication requires a successful release and the maintainer's Trusted Publisher registration.

The token-free GitHub Actions release workflow includes tests, sdist/wheel building, metadata validation, and an installed-wheel smoke test. See PyPI publishing setup for the exact publisher fields and release procedure.

Installing the gateway does not install the seven upstream scientific tools: use toolkit_doctor to distinguish available programs from missing ones.

Repository and license

Project: https://github.com/Furox-Art/scientific-toolkit

The MCP gateway is licensed under Apache License 2.0, as recorded in the repository root LICENSE. The seven upstream repositories retain their own independent licenses, names and version histories. Public Render health and anonymous access controls have been checked by CI; authorized production calls against upstream scientific programs have not yet been confirmed.

Metadata

Release files for furox-scientific-toolkit-mcp 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for furox-scientific-toolkit-mcp 0.2.0
File Size Uploaded
furox_scientific_toolkit_mcp-0.2.0.tar.gz 28.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for furox-scientific-toolkit-mcp 0.2.0
File Interpreter ABI Platform
furox_scientific_toolkit_mcp-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 55.4 kB

Release files / furox_scientific_toolkit_mcp-0.2.0.tar.gz

Download URL furox_scientific_toolkit_mcp-0.2.0.tar.gz
Size 28.1 kB
Tags Source
SHA-256 checksum
How to use checksums
25792ebcfee22c3d49b00e1825027dc5e6b9ba163e12573f967a39cc965a9f83
BLAKE2b-256 checksum
How to use checksums
a45783c0be0acd90794c5b1bbfd7d8b1476b3bb6c40238fd847e3fb29587382e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / furox_scientific_toolkit_mcp-0.2.0-py3-none-any.whl

Download URL furox_scientific_toolkit_mcp-0.2.0-py3-none-any.whl
Size 27.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
276a118b4f14d032c7c186e1734100ef329e7d317322fc0fdfdabbb01f94f794
BLAKE2b-256 checksum
How to use checksums
564c64df6e737dfc12b5844f7fc1836ebda504798fb6ca4ac0e9b9dd59d62fd9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page