OpenBind MCP Server
by QuentinCody
README.md
# OpenBind MCP server
Public OpenBind experimental evidence and model/benchmark discovery for Bio MCP.
Archetype: embedded, versioned data plus read-only Fragalysis REST. No API key.
Four operations, each with its `mcp_` alias: `openbind_search`,
`openbind_execute`, `openbind_query_data`, `openbind_get_schema`.
| Virtual endpoint | Coverage |
| --- | --- |
| `/releases`, `/targets` | Bundled EV-A71/CVA16 2A release; discovery records for FatA and dengue/Zika RdRp |
| `/binding-events` | 925 experimental binding events, chemistry, affinity and separate quality flags |
| `/affinity-fits` | 2,733 original kinetic fit rows, units, controls and analysis-selection flags |
| `/screening` | 566 structural binders and 1,518 suspected nonbinders |
| `/benchmark-results` | Published affinity, pose, fine-tuning and screening summary tables |
| `/models`, `/software` | OpenBind-0, earlier fine-tuned model, consortium repositories and external compute requirements |
| `/artifacts` | Original archives, immutable source URLs, licenses and checksums |
| `/fragalysis/targets` | Live public target discovery (includes other Fragalysis projects) |
| `/fragalysis/observations`, `/fragalysis/observations/{id}` | Live observations with upstream-provided structure/map/ligand URLs |
Use `openbind_search` to discover schemas. Example `openbind_execute` code:
```js
return await api.get('/binding-events', {event_id: 'A71EV2A-x1776a'});
```
```js
return await api.get('/affinity-fits', {used_in_analysis: 'true', limit: 5000});
```
Local pages default to 20 rows, maximum 5,000; follow `next_offset` until null.
Live Fragalysis pages have a maximum of 100. Responses above 30KB use shared
SQLite staging; take the handle and table names from `_staging`, then use the
query/schema tools. `workspace` on execute opts into cross-server WorkspaceDO
staging; pass that same `workspace` to query/schema calls (also returned in
`_staging.workspace`). Snapshot queries have no runtime network dependency.
Worker bindings: `OPENBIND_DATA_DO` stores per-server staged data;
`WORKSPACE_DO` connects the shared workspace Worker; `CODE_MODE_LOADER` runs
sandboxed JavaScript. No secret environment variables are required.
Resources under `resource://openbind/`: `catalog`, `query-notes`,
`pagination-rate-limits`, `entity-model`, `dataset-map`.
## Scientific interpretation and provenance
The experimental protein is Coxsackievirus A16 2A protease, used as a surrogate
for Enterovirus A71. Keep that distinction. Binding events, unique compounds
and repeated kinetic fits have different denominators. Assayed CXSMILES and
bound SMILES are separate fields. Missing affinities remain null. `KD`, `kd`
and `ka` have different units and meanings. Structural non-observation does
not establish biochemical inactivity; model confidence does not measure affinity.
The [benchmark repository](https://github.com/OpenBind-Consortium/EV-A71_2A_benchmark)
declares data CC0-1.0 and code Apache-2.0. Bundled source provenance records
include that license declaration and commit-pinned SHA-256 hashes. External
archives retain their own licensing metadata; inspect their records before reuse.
Attribution: OpenBind Consortium; preprint DOI `10.64898/2026.08.27.747600`.
No participant-only data, hosted model inference or docking job submission is exposed.
## Development and refresh
From the monorepo root:
```sh
pnpm --filter openbind-mcp-server dev
pnpm --filter openbind-mcp-server run type-check
pnpm exec vitest run servers/openbind-mcp-server/src
node scripts/verify-server.mjs openbind --local
node servers/openbind-mcp-server/test/structured-content-regression.mjs
# With the deployed shared workspace binding:
node servers/openbind-mcp-server/test/structured-content-regression.mjs https://openbind-mcp-server.quentincody.workers.dev/mcp --workspace
python3 scripts/openbind/import-release.py
```
The last command requires GitHub raw and Zenodo access, including the 124MB
experimental ZIP. `--cache` supports previously downloaded originals and still
verifies hashes. Refresh is deliberate: review release/target identity, licenses,
artifact hashes and scientific labels before updating pins and fixtures.
Drift risk: high for evolving releases and Fragalysis; review every two weeks
and on each public release. Search backing is a committed catalog. Gaps: August
targets have discovery records rather than bundled rows; OB0 preview benchmark
and bulky pose/MSA archives remain external. Consider a versioned OpenAPI spec
when OpenBind publishes a stable supported API.
See [project integration assessment](https://github.com/QuentinCody/bio-mcp-client/blob/main/docs/research/openbind-integration.md)
for opportunities, scope limits and rollout validation.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues