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.

PyPI version Python versions License: MIT CI

MIT · public · benchmarked.

Research agents hallucinate bioinformatics math. This project builds the missing layer: battle-tested scientific computation wrapped in a clean, 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 logic, checked 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

Published on PyPI as biotools-mcp (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

# Or plain pip
pip install 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 Motif scan (IUPAC/brackets in motif; subject bases literal; 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%) — bioagent-bench subset 7/7, bioTaskBench subset 8/8. Pinned harness, see the results file for task-level detail.

uv run python benchmarks/run_bioagent_bench.py    # 7/7
uv run python benchmarks/run_biotaskbench.py      # 8/8
uv run python benchmarks/harness.py --suite all   # combined 15/15

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.

Documented solutions

Past problems and the patterns they produced live in docs/solutions — including the uvx grandchild-process leak in subprocess tests, mcp SDK v2 tool-registration conventions, and the CI matrix Python-version trap. Relevant when implementing or debugging in those areas.

Development

uv sync --extra dev
uv run pytest          # reference-vector suite (skips slow packaging by default)
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; a tag-pushed v* triggers the PyPI publish workflow.

Contributing

See CONTRIBUTING.md — verification is non-circular (reference-vector fixtures from published values), degenerate inputs must fail loudly, and benchmark tasks are never dropped to keep numbers green. Changes are tracked in CHANGELOG.md.

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.1.tar.gz (56.7 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.1-py3-none-any.whl (32.8 kB view details)

Uploaded Python 3

File details

Details for the file biotools_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: biotools_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 56.7 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.1.tar.gz
Algorithm Hash digest
SHA256 f189b7d38d1ddc72b4e54239d73b99a2b5e463deefa30de24ec3f17fa38b01e8
MD5 e351d9bf0c72af8742934c10eec428bb
BLAKE2b-256 655dcda08f2e315fffb6a0f9323c36c7a0b920f8d53d0e05f3082b4870777321

See more details on using hashes here.

File details

Details for the file biotools_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: biotools_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 32.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 68197d207dffd437c5dc838b3ed8671d5371296a512f1a423f986dd4022d1b49
MD5 016da6eefd3188baaa69d11c35321493
BLAKE2b-256 226fcedc60c73c6ae7d174a5236959ba3e09aa5b9fec23fbbe0774c55deaf3c2

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