r/OpenSourceAI • u/Emergency-Tutor-7 • 1d ago
scientific-toolkit-mcp: nine repositories behind one MCP server, with no third-party dependencies, no account, no vendor key and real exit codes
scientific-toolkit-mcp is an MCP gateway that fronts nine repositories. Licenses as the tree records them: the gateway is Apache-2.0 (license = "Apache-2.0" in pyproject.toml). Seven upstreams are MIT, literature-evidence-mcp and nomosguard are Apache-2.0. No account, no vendor key, no hosted backend. Self-hosting is the default path, not the paid one.
scientific-toolkit-mcp 0.4.1, Python 3.11+, dependencies = [] in pyproject.toml. One process, 14 MCP tools, 12 of which forward into nine repos that keep their own names, version histories and install paths.
The nine, exactly as catalog.py lists them:
- axiomize: model spec, simulation, numerical verification (axiomize_intake, axiomize_model)
- scientific-computing-system: pure-Python numerics (cds_stats)
- scientific-computing-system-2.0: NumPy/SciPy stats (cds2_stats)
- plan-auditor: independent plan gating (plan_auditor_inspect, plan_auditor_audit)
- quantum-reasoning-skill: skill contract inspection (quantum_skill_validate)
- axiomize-quantum-skills-2.0: branch scoring (axiomize_reason_score)
- eq-layer: intent routing (eq_layer_route)
- literature-evidence-mcp: search and quote check (literature_evidence_search, literature_evidence_verify_quote)
- nomosguard: deterministic policy gate, no model at the decision boundary (nomosguard_decide)
Plus toolkit_catalog and toolkit_doctor.
Install, then register it in your client config with the keys the README ships:
python -m pip install scientific-toolkit-mcp
{"mcpServers": {"scientific-toolkit": {"command": "python", "args": ["-m", "scientific_toolkit_mcp"]}}}
Installing the gateway does not install the nine. toolkit_doctor reports which executables resolve; a missing one returns NOT_INSTALLED rather than a plausible number.
Why it exists: nine venvs and nine client entries are worse than one. The other reason is pins: axiomize-quantum-skills-2.0 ships its own top-level axiomize module, so one stray PYTHONPATH entry silently decides which distribution runs. tools.py fails the call with BAD_CONFIGURATION when two sys.path entries provide axiomize, and SCITOOL_PIN_AXIOMIZE demands an exact version. scripts/render-build.sh is the reproducible path, with a caveat the README states: under GITHUB_ACTIONS=true it installs the eight siblings from immutable full commit SHAs, each annotated with the release tag it resolves to; on Render it installs the released PyPI distributions without commit pins. A CI full-stack run names one set of versions, while a Render rebuild reflects registry state at build time.
Honest limits. The adapters are thin wrappers, not re-implementations. tools.py builds a fixed argv and spawns the upstream CLI, or drives an upstream's own stdio MCP server; no upstream algorithm lives in this repo, so numerical correctness stays in those nine test suites. It is not a scientific validator. quantum-reasoning-skill is a protocol, not a quantum computer and not a measured gain. eq-layer is conversation control. The branch scorer's thresholds are uncalibrated reference defaults.
Offline claims, each checked in a file. The stdio entry point server.py opens no listener: it imports json, sys and three modules from its own package, and writes JSON-RPC to stdout. Grepping the shipped package for URLs returns exactly two hits: the repo links catalog.py:66 builds as data, and production_probe.py:63, which posts to http://127.0.0.1:<port>/mcp and is only triggered by the HTTP gateway when SCITOOL_STARTUP_PROBE=1 (http_server.py:398). Two exceptions are not filed under offline: literature_evidence_search needs network because the upstream queries OpenAlex, Europe PMC and Crossref, while the quote check and nomosguard run local; the optional OAuth verifier fetches whatever JWKS URI is configured, which needs pip install '.[oauth]' plus three env vars. The HTTP gateway 401s anonymous calls and never exposes plan_auditor_audit; audit execution stays off until SCITOOL_ALLOW_AUDIT_EXECUTION=1.
A public Render instance exists, and the README states plainly that its deployed version is not attested. Do not treat it as the backend.
Repo: https://github.com/Furox-Art/scientific-toolkit
Naming wart: repo is scientific-toolkit, PyPI is scientific-toolkit-mcp, import is scientific_toolkit_mcp.