Verify before you assert.
biosingularity is API- and MCP-first — built to be called by an agent or a product before it states a biomedical claim. One call in, one verdict out: pass / review / reject, with a receipt behind every finding. No model in the verdict path, so it's deterministic — the same input always yields the same verdict.
Discover the contract without reading this page: /api/capabilities (JSON) · /llms.txt
1 · MCP server
The first-class agent surface: 15 tools over stdio. Install the package, then register
biosingularity-mcp as a custom MCP server.
pip install 'biosingularity[mcp,store]'
claude mcp add biosingularity -- biosingularity-mcp
Or add it to any MCP client's config:
{
"mcpServers": {
"biosingularity": { "command": "biosingularity-mcp" }
}
}
Start with these three; the rest are there when you need them:
2 · HTTP API
Metered. Send your key as x-api-key; pass an Idempotency-Key
to make a call safely retryable. The key is reserved before any work runs, so an exhausted quota returns
429 without spending a verifier call.
curl -H "x-api-key: bsk_…" -H "Idempotency-Key: $(uuidgen)" \
"https://<your-host>/api/verify?q=BRCA1%20rs80357906%20is%20benign%3B%20treat%20with%20cerivastatin"
| Endpoint | Returns | Runs on |
|---|---|---|
GET /api/verify?q= | full verdict + claims[] + receipts | demo + hosted |
GET /api/discovery?q= | publish / review / reject | hosted |
GET /api/audit?q= | retraction / erratum audit of cited DOIs | demo + hosted |
GET /api/target?gene=&disease= | gene–disease corroboration | demo + hosted |
GET /api/entities?drug=&nct= | drug / trial verifier | demo + hosted |
GET /api/provenance?ref= | durable receipt lookup | hosted |
GET /api/health | datalake reachability (no auth) | hosted |
GET /api/capabilities | this contract, as JSON (no auth) | public |
3 · Response shape
Threshold on recommend. Every flagged claim carries a receipt
— a link to the exact source record — and grounded is true only when that receipt exists.
{
"recommend": "pass | review | reject",
"overall_severity": "red | amber | info | green",
"confidence": 0.0,
"summary": "…",
"counts": { "red": 0, "amber": 0, "info": 0, "green": 0 },
"coverage": { "level": "low|partial|high", "ratio": 0.0,
"claims_checked": 0, "statements": 0 },
"claims": [
{ "kind": "reference", "ref": "10.1038/nature04533",
"severity": "red", "detail": "Retracted in PubMed / retraction index.",
"receipt": "https://pubmed.ncbi.nlm.nih.gov/…", "grounded": false }
],
"graph": { "nodes": [], "edges": [],
"relations": { "supports": 0, "contradicts": 0, "cautions": 0,
"retracts": 0, "replicates": 0, "unverified": 0 } }
}
4 · The verify-before-assert loop
Call biosingularity with your drafted answer, then act on the one verdict field:
| recommend | Meaning | What your agent should do |
|---|---|---|
| reject | Grounded on retracted, contradicted, or unsafe evidence. | Block or retry. Do not surface the claim; show the receipt as the reason. |
| review | Weak, single-source, unverifiable, or low coverage. | Don't auto-assert. Route to a human, a second source, or the full-depth API. |
| pass | All checkable claims grounded, nothing flagged. | Proceed. Optionally attach an attest_answer receipt for audit. |
The discovery gate (/api/discovery, verify_discovery) uses the same
loop with publish / review / reject in place of pass. A false pass is the only
unforgivable failure — anything unverifiable degrades to review, never waved through.
5 · Drop-in system-prompt snippet
Paste this into the system prompt of any agent that makes biomedical claims:
Before you assert any biomedical claim (a cited paper, a variant's
pathogenicity, a gene-disease link, a drug's safety or interactions, or a
trial's status), call the biosingularity `verify_answer` tool with your
drafted answer.
- If it returns recommend="reject", do NOT state the claim — surface the
receipt and correct it.
- If "review", hedge and cite the flagged item; don't assert it as settled.
- Only assert freely on recommend="pass".
Never override a reject with your own confidence: the verdict is
deterministic and carries a source receipt; your prior does not.
6 · Discover the contract
Need a key, the MCP connector, or a design-partner run on your own outputs? Request access →