ZI

ZincBind MCP Server — Zinc Binding Sites Database

Explore the ZincBind MCP server to access a comprehensive database of protein zinc binding sites, coordination structures, and metalloproteomics research data.

Quick Install
npx -y @QuentinCody/zincbind-mcp-server

Overview

The ZincBind MCP Server provides programmatic access to a curated database of protein zinc-binding sites and their coordination geometries. It bundles structured metalloproteomics data (site annotations, coordinating residues, ligands, experimental PDB references, and derived geometry information) behind an HTTP API and an MCP-compliant discovery surface so LLM-based agents and bioinformatics tools can discover and call it reliably.

This server is useful for developers building analysis pipelines, interactive agents, or web interfaces that need to look up or search zinc-binding motifs. By exposing both search endpoints and site-level detail endpoints, the service can be used for automated annotation, cross-referencing PDB entries, querying coordination environments, or serving training / evaluation data for computational metalloproteomics workflows.

Features

  • MCP-compliant discovery endpoint for LLM tool integrations and agent frameworks
  • Full-text and structured search across protein names, UniProt/PDB IDs, residues and coordination types
  • Detailed site records: coordinating residues, geometry (tetrahedral, trigonal, etc.), metal-ligand distances, and experimental references
  • RESTful JSON API suitable for programmatic use and microservices
  • Local deployment (Python + FastAPI / uvicorn) and Docker support
  • Configurable data backend (SQLite/Postgres) and caching for scaled queries
  • Lightweight documentation and example queries for developers

Installation / Configuration

Quick start (local development)

# clone the repo
git clone https://github.com/QuentinCody/zincbind-mcp-server.git
cd zincbind-mcp-server

# create a virtualenv and install
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# set basic environment variables (example)
export ZINCBIND_DB_URL="sqlite:///./zincbind.db"
export ZINCBIND_HOST="127.0.0.1"
export ZINCBIND_PORT=8080

# initialize database (if provided)
python scripts/init_db.py --db-url "$ZINCBIND_DB_URL"

# run the server with uvicorn
uvicorn zincbind.app:app --host "$ZINCBIND_HOST" --port "$ZINCBIND_PORT"

Docker

# build
docker build -t zincbind-mcp-server .

# run (map port and set DB URL via env)
docker run -e ZINCBIND_DB_URL=sqlite:///data/zincbind.db -p 8080:8080 zincbind-mcp-server

Configuration (typical environment variables)

  • ZINCBIND_DB_URL — SQLAlchemy-style database URL (sqlite:///…, postgresql://…)
  • ZINCBIND_HOST — bind address (default 0.0.0.0)
  • ZINCBIND_PORT — server port (default 8080)
  • ZINCBIND_CACHE_TTL — optional caching TTL for search results (seconds)
  • ZINCBIND_ENABLE_CORS — enable CORS for web clients (true/false)

Adjust the variables in your systemd, Docker, or container orchestrator configuration as needed.

Available Resources

The server exposes the following principal HTTP resources (JSON):

MethodPathPurpose
GET/mcp/discoverMCP discovery document: tool descriptions and input/output schemas for LLM agents
POST/mcp/runMCP tool invocation endpoint for agents
GET/api/search?q=…Text and structured search across zinc-binding sites
GET/api/site/{site_id}Complete record for a specific zinc-binding site
GET/api/pdb/{pdb_id}Lookup sites associated with a PDB entry
GET/api/statsBasic dataset statistics (counts, last update)

API responses use JSON and standard HTTP codes. The discovery endpoint follows the Model Context Protocol shape so agent frameworks can programmatically list available tools.

Resource: GitHub repository and source

  • https://github.com/QuentinCody/zincbind-mcp-server

Use Cases

  1. Automated annotation in a proteomics pipeline

    • Example: a pipeline processing MS-identification results can call /api/search?q=UniProt:Q9XYZ1 to find known zinc sites in a candidate protein and annotate peptides near coordinating residues.

    Example curl:

    curl "http://localhost:8080/api/search?q=Q9XYZ1" | jq .
    
  2. Integrating with an LLM agent as a tool

    • Use the /mcp/discover endpoint so an agent can learn available tool actions (search, fetch site details). Agents then call /mcp/run for structured queries (e.g., “find all tetrahedral zinc sites in PDZ domains”), receiving JSON results the agent can reason over.
  3. Interactive web visualization of metal sites

    • A web app can query /api/site/{site_id} to fetch residue lists, coordination distances and PDB references, then render a 3D viewer (Mol* / NGL) and annotate coordinating residues.
  4. Bulk data export and research

    • Researchers can export site lists (via paginated /api/search) for statistical analysis of coordination geometries across protein families.

Examples

Search for zinc sites by PDB ID:

curl "http://localhost:8080/api/pdb/1A2B" | jq .

Fetch a single site record:

curl "http://localhost:8080/api/site/zb_000123" | jq .

MCP discovery (agent integration):

curl "http://localhost:8080/mcp/discover" | jq .

Notes for Developers

  • The server is intended to be embedded into larger toolchains; it focuses on structured data access rather than heavy visualization.
  • Add database indexes for high-volume deployments (on PDB/UniProt ID and residue columns).
  • Consider an external cache (Redis) for read-heavy workloads; the server supports TTL-based caching via configuration.
  • See the repository README and example scripts for schema details, sample data loaders, and test queries.