t-neumann/GenomicOps-MCP
If you are the rightful owner of GenomicOps-MCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
GenomicOps-MCP is a dual-mode Python server that provides genomic feature operations through both MCP and FastAPI interfaces.
๐งฌ GenomicOps-MCP
GenomicOps-MCP is a dual-mode Python server that exposes genomic feature operations via:
- ๐ง Model Context Protocol (MCP) โ for integration with Claude Desktop and other AI clients.
- ๐ FastAPI REST API โ for human-readable, local testing and web interaction.
It currently provides tools to query UCSC genome browser tracks, including feature overlaps and assembly listings.
๐ Features
- MCP integration: Claude Desktop and other MCP-compatible LLM clients can call tools like
get_overlapping_features
. - FastAPI web API: Test and debug the same logic locally in a browser or via
curl
. - Unified backend: One codebase (
src/server/mcp_server.py
) supports both modes. - FastMCP-powered: Built with FastMCP for standard-compliant and rapid MCP development.
๐ Project Structure
GenomicOps-MCP/
โโโ src/
โ โโโ server/
โ โโโ mcp_server.py # Main MCP + FastAPI server
โ โโโ tools.py # UCSC tools and helper functions
โโโ pyproject.toml # Managed by uv (Python project metadata)
โโโ uv.lock # uv dependency lockfile
โโโ .gitignore
โโโ README.md
๐งฉ Installation
1๏ธโฃ Prerequisites
- Python โฅ 3.11
- uv (recommended for managing virtual environments and dependencies)
Install uv globally (if not already):
curl -LsSf https://astral.sh/uv/install.sh | sh
2๏ธโฃ Clone and enter the project
git clone https://github.com/YOUR_USERNAME/GenomicOps-MCP.git
cd GenomicOps-MCP
3๏ธโฃ Install dependencies via uv
uv sync
This ensures your environment matches the locked versions in uv.lock
.
๐ง Running in MCP Mode (for Claude Desktop)
Run the server as an MCP endpoint:
uv run src/server/mcp_server.py
This launches the MCP server over stdio, ready for a client like Claude Desktop to connect.
You should see something like:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ _ __ ___ _____ __ __ _____________ ____ ____ โ
โ _ __ ___ .'____/___ ______/ /_/ |/ / ____/ __ \ |___ \ / __ \ โ
โ _ __ ___ / /_ / __ `/ ___/ __/ /|_/ / / / /_/ / ___/ / / / / / โ
โ _ __ ___ / __/ / /_/ (__ ) /_/ / / / /___/ ____/ / __/_/ /_/ / โ
โ _ __ ___ /_/ \____/____/\__/_/ /_/\____/_/ /_____(*)____/ โ
โ โ
โ โ
โ FastMCP 2.0 โ
โ โ
โ โ
โ ๐ฅ๏ธ Server name: ucsc-mcp โ
โ ๐ฆ Transport: STDIO โ
โ โ
โ ๐๏ธ FastMCP version: 2.12.4 โ
โ ๐ค MCP SDK version: 1.16.0 โ
โ โ
โ ๐ Docs: https://gofastmcp.com โ
โ ๐ Deploy: https://fastmcp.cloud โ
โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
[10/08/25 13:26:00] INFO Starting MCP server 'ucsc-mcp' with transport 'stdio'
๐งฉ Add to Claude Desktop
To connect this MCP to Claude Desktop:
Option 1: Manual Configuration
Add this entry to your claude_desktop_config.json
:
{
"ucsc-mcp": {
"command": "/Users/tobias.neumann/.local/bin/uv",
"args": [
"run",
"--project",
"/Users/tobias.neumann/dev/GenomicOps-MCP",
"--with",
"fastmcp",
"fastmcp",
"run",
"/Users/tobias.neumann/dev/GenomicOps-MCP/src/server/mcp_server.py"
],
"env": {},
"transport": "stdio",
"type": null,
"cwd": null,
"timeout": null,
"description": null,
"icon": null,
"authentication": null
}
}
Then restart Claude Desktop โ it should detect ucsc-mcp
and register the get_overlapping_features
tool.
Option 2: FastMCP CLI (Recommended)
You can install the server directly into Claude Desktop with one command:
fastmcp install claude-desktop src/server/mcp_server.py \
--python 3.11 \
--project /Users/YOUR_USERNAME/dev/GenomicOps-MCP
๐ Running in FastAPI Mode (for local testing)
If you want to expose the same functionality as a REST API, use the api
flag:
uv run src/server/mcp_server.py api
Then open your browser at: ๐ http://localhost:8000/docs
Youโll see interactive FastAPI documentation (Swagger UI).
Example endpoints:
Method | Endpoint | Description |
---|---|---|
POST | /overlaps | Query overlapping genomic features |
GET | /assemblies | List supported genome assemblies |
๐งช Example Usage (API)
POST /overlaps
curl -X POST http://localhost:8000/overlaps \
-H "Content-Type: application/json" \
-d '{"region": "chr1:1000-2000", "assembly": "hg38"}'
GET /assemblies
curl http://localhost:8000/assemblies
๐งฐ Development Tips
- Run with uv
uv run src/server/mcp_server.py
- Add new tools
Decorate Python functions with@mcp.tool()
insidemcp_server.py
. - Debug locally
Use FastAPI mode (uv run src/server/mcp_server.py api
) for quick JSON responses.
๐ References
Author: Tobias Neumann
License: MIT
Version: 0.1.0