MCP server
gi-mcp exposes the six Genomic Intelligence tasks — promoter, splice,
enhancer, chromatin, expression, annotation — to LLM hosts that speak the
Model Context Protocol: Claude Desktop,
Claude Code, Cursor, or your own agent. You drive DNA analysis in natural
language ("fetch TP53 and scan it for promoters") and the model calls the
right tools.
It runs locally as a thin protocol translator: it owns no inference and
stores no key, forwarding each request to the /v1 API under your partner
key. Same contract as getting-started.md, reachable from
an LLM instead of curl.
1. Get a key
The MCP server is bring-your-own-key. Email contact@genomicintelligence.ai
for a gi_… partner key; your caps come with it (see
reference/limits.md for the numbers). The same key works
for both the REST API and the MCP server.
2. Install & connect
gi-mcp runs with uv — uvx fetches and runs
it with no manual install. Install uv with
curl -LsSf https://astral.sh/uv/install.sh | sh.
In every client the pattern is the same: run uvx gi-mcp with GI_API_KEY in
the environment.
Claude Desktop — edit claude_desktop_config.json (macOS:
~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then
fully quit and reopen:
{
"mcpServers": {
"genomic-intelligence": {
"command": "uvx",
"args": ["gi-mcp"],
"env": { "GI_API_KEY": "gi_..." }
}
}
}
Claude Code (CLI):
claude mcp add genomic-intelligence --env GI_API_KEY=gi_... -- uvx gi-mcp
Cursor / Windsurf / Zed use the same JSON shape as Claude Desktop in their
own MCP config files. Your own agent: point any MCP-capable client at the
stdio command uvx gi-mcp with GI_API_KEY set.
Pin a specific release for reproducibility with uvx gi-mcp@<version>; pick up
new releases with uvx --refresh gi-mcp.
Verify: your client should list the genomic-intelligence server. Ask "List the available promoter models" — it runs the catalog tool and returns the registry. Calls count against your key's caps; the server stores no key and owns no inference.
3. Try it
Paste these into a freshly-connected client to check the live connection end-to-end — one per task plus the composite workflow, ordered from simplest (no inference) to full fetch→predict chains.
| # | Task | Prompt |
|---|---|---|
| 0 | warm-up | "What Genomic Intelligence models are available for the expression task?" |
| 1 | promoter | "Fetch a 100 kb window around human TP53 from Ensembl and scan it for promoter regions — show me the strongest hits." |
| 2 | expression | "Predict HBB expression in K562 cells." |
| 3 | splice | "Fetch the human HBB gene sequence and predict its splice sites." |
| 4 | enhancer | "Fetch the Drosophila ftz gene and predict enhancer regions." |
| 5 | annotation | "Find the genes in chr8:127,680,000–127,800,000." |
| 6 | composite | "Find the genes in chr8:127,680,000–127,800,000 and predict each one's expression in K562." |
The enhancer model is trained on Drosophila, so example 4 uses a fly gene
(ftz); the other tasks are human.
No key yet? Ask "List the bundled demo sequences, then load the K562 expression one and predict its expression" — the server ships one curated sequence per task, so every prompt above runs without an Ensembl fetch or any quota.
4. How it works
The handle pattern. Genomic sequences are big (expression wants 9,198 bp; promoter accepts up to 500 kbp). Round-tripping those through the LLM twice would blow the context window, so acquisition and prediction are split:
- An acquisition tool fetches/loads a sequence, stores it server-side, and
returns a short handle (
seq_ab12cd34) plus light metadata — never the bases. - A prediction tool takes that handle; the server resolves the bases internally.
Small sequences can still be passed inline. Either way, the bases stay out of the model's context.
What's exposed — the tools group into acquisition (fetch from Ensembl,
by coordinates, by local file, inline, or bundled demos), prediction (the
six tasks, sync or async-with-progress), a composite annotation→expression
workflow, plus read-only resources (model catalog, task docs, your recent
jobs) and slash-command prompts (gi-promoter-screen,
gi-expression-screen). For the exact, current surface, ask your client
"what tools do you have?" once connected — MCP self-describes, so the list is
always accurate for the version you're running.
5. The underlying API
The MCP server is a convenience layer over the /v1 REST contract. If you'd
rather integrate directly, or want to understand error codes, limits, and
response shapes:
- getting-started.md — auth → sync → async with curl + Python.
- reference/errors.md — every
error.code. - reference/limits.md — per-task caps, rate quotas, async TTL.
6. Try without installing (optional)
A hosted endpoint runs at https://mcp.genomicintelligence.ai/mcp
(Streamable-HTTP) for evaluation from an MCP client that supports remote
servers. Run the server locally with
your own key for sustained use, as above.
Contact
contact@genomicintelligence.ai — key issuance, raised caps, bug reports, anything else.