biotools-mcp
Verified bioinformatics tools for AI agents — sequence utilities + statistics, backed by BioPython/scipy, exposed as an MCP server, companion Skill, and Python package.
MIT · public · benchmarked.
Research agents hallucinate bioinformatics math. This project builds the missing layer: battle-tested scientific computation wrapped in a clean, verified, agent-native surface.
What's inside
- Sequence utilities — GC content, reverse complement, translation, ORF finding, motif scanning, sequence stats (BioPython-backed; ORF finder + motif-overlap are custom, verified against independent references).
- Statistics — descriptive stats, t-test, chi-square, Mann–Whitney U, correlation (scipy-backed, reference-vector tested against published/R values).
- MCP server — stdio + streamable HTTP, 11 action-oriented tools
(
seq_gc_content,stats_t_test, …), pydantic v2 schemas with structured output. - Companion Skill — agentskills.io spec: when to use which tool, input requirements, and what not to do.
Every tool is reference-vector tested against published values (GenBank records, R t.test
output, Mendel's 1866 pea counts, Anscombe's quartet) — never against the wrapper itself.
Install
Requires Python 3.11+.
# Install as a standalone CLI (MCP server entry point)
uv tool install biotools-mcp
# Or run without installing
uvx biotools-mcp
As a library:
uv add biotools-mcp
from biotools_mcp.seq import gc_content
from biotools_mcp.stats import t_test
print(gc_content("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG").gc_percent) # 56.4103
print(t_test([1, 2, 3], [4, 5, 6]).statistic) # -3.6742
MCP configuration
Point your agent at the server over stdio:
Claude Code (.mcp.json):
{
"mcpServers": {
"biotools-mcp": {
"command": "uvx",
"args": ["biotools-mcp"]
}
}
}
Cursor — Settings → MCP → Add:
{
"mcpServers": {
"biotools-mcp": {
"command": "uvx",
"args": ["biotools-mcp"]
}
}
}
Codex / Gemini CLI — same mcpServers block in the agent's MCP config file.
Streamable HTTP (for remote use):
uvx biotools-mcp --transport streamable-http
Tools
| Tool | Description |
|---|---|
seq_gc_content |
GC content as a percentage (ambiguous bases excluded) |
seq_reverse_complement |
Reverse complement (IUPAC-aware, DNA/RNA) |
seq_translate |
Translate to protein (NCBI tables, incl. mitochondrial) |
seq_orf_finder |
Open reading frames, forward strand, frames 0–2 |
seq_motif_scan |
IUPAC motif scanning with bracket groups + overlap policy |
seq_stats |
Length, mono/di composition, GC skew |
stats_describe |
Descriptive statistics (n, mean, median, var, skew, kurtosis) |
stats_t_test |
Student/Welch two-sample t-test with Cohen's d |
stats_chi_square |
Chi-square test of independence (Yates optional) |
stats_mann_whitney |
Mann-Whitney U test (exact/asymptotic) |
stats_correlation |
Pearson or Spearman correlation |
Benchmarks
Wedge subset of BioAgent Bench + BioTaskBench (sequence utilities + statistics) run against the tools and published in benchmarks/results.md. Every task in the subset runs — failures are published alongside passes.
Current: 15/15 passed (100%) — pinned harness, see the results file for task-level detail.
Companion Skill
The skills/biotools-mcp skill (agentskills.io spec) teaches agents the tool inventory, when to use which tool, input requirements, and what not to do (never compute GC/translation/t-tests by hand). Load it into any skills-compatible agent.
Development
uv sync --extra dev
uv run pytest # reference-vector test suite
uv run python benchmarks/harness.py --suite all # regenerate benchmark results
uvx ruff check src tests benchmarks
CI runs lint + tests on Python 3.11/3.12; a nightly workflow regenerates the benchmark table.
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file biotools_mcp-0.1.0.tar.gz.
File metadata
- Download URL: biotools_mcp-0.1.0.tar.gz
- Upload date:
- Size: 53.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69ab145504b12c044e3dd993d97989d3670e67b3faa8726cf7f6bbca75a8cea2
|
|
| MD5 |
2dbb69c627e598cd1095344ba18776ae
|
|
| BLAKE2b-256 |
a32b1219fef4fe68ceaf25e1ec28f98895019b551d0d44622ea4b1e8b2e74f1e
|
File details
Details for the file biotools_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: biotools_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 30.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
136b721e1744aa9392723abd5ba66cce026f6ca070ec6ba22a7c32cd53244629
|
|
| MD5 |
5a6a10732a421bdd9e0962f5f1ddf083
|
|
| BLAKE2b-256 |
dd8b290715604158917a6fbe05867d03b6a618b64ec13029d3e50e017e0480b5
|