Skip to main content

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

biotools_mcp-0.1.0.tar.gz (53.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

biotools_mcp-0.1.0-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

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

Hashes for biotools_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 69ab145504b12c044e3dd993d97989d3670e67b3faa8726cf7f6bbca75a8cea2
MD5 2dbb69c627e598cd1095344ba18776ae
BLAKE2b-256 a32b1219fef4fe68ceaf25e1ec28f98895019b551d0d44622ea4b1e8b2e74f1e

See more details on using hashes here.

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

Hashes for biotools_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 136b721e1744aa9392723abd5ba66cce026f6ca070ec6ba22a7c32cd53244629
MD5 5a6a10732a421bdd9e0962f5f1ddf083
BLAKE2b-256 dd8b290715604158917a6fbe05867d03b6a618b64ec13029d3e50e017e0480b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page