aurora-mcp

ndaniel/aurora-mcp

3.2

If you are the rightful owner of aurora-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 dayong@mcphub.com.

Aurora-MCP is a Model Context Protocol (MCP) server designed to facilitate access to datasets of natural and synthetic small molecules, focusing on identifying potential mitochondrial Complex I inhibitors found in plant species.

Tools
6
Resources
0
Prompts
0

title: Aurora-MCP emoji: 🌿 colorFrom: green colorTo: indigo sdk: docker pinned: false

🌿 Aurora-MCP

Model Context Protocol (MCP) server providing access to datasets of natural and synthetic small molecules, with a focus on identifying potential mitochondrial Complex I inhibitors that may occur in plant species.


🔍 Overview

Aurora-MCP is a Model Context Protocol (MCP) server and data integration layer that connects natural-product, biodiversity, and mitochondrial-inhibitor datasets. It enables LLMs and users to query relationships between plant species, small molecules, and mitochondrial Complex I inhibition—bridging COCONUT, Laji.fi, GBIF, and AI-derived PubMed data through structured joins and metadata schemas.

Aurora-MCP is a lightweight MCP server + Hugging Face Space designed to bridge two complementary knowledge sources:

  1. 🌿 Aurora — natural-product and plant biodiversity data, mapping compounds to genera and species found in Nordic ecosystems.
  2. 🧬 Aurora-Mito-ETL — curated PubMed-derived corpus of small-molecule inhibitors of mitochondrial Complex I (NADH dehydrogenase).

Together they form a conversational dataset where ChatGPT (or any MCP-compatible LLM) can reason over structured biological data, ask questions, and perform targeted searches on small compounds, plants, and mechanistic links between them.


🧠 Concept

Goal: allow scientific dialogue with an LLM grounded in domain data, for example:

“Show me plant-derived compounds that inhibit mitochondrial Complex I.”
“Find PubMed evidence for arctigenin as a Complex I inhibitor.”
“List Nordic plants whose metabolites overlap with known ETC inhibitors.”

Aurora-MCP turns your static text/TSV data into an interactive semantic backend, exposing programmatic tools for searching, linking, and reasoning. a FastAPI‑based MCP endpoint (/mcp) that ChatGPT (or any MCP‑aware client) can connect to. It also provides /healthz for status checks and simple debug HTTP routes for local testing.


🚀 Quick start (local)

# 1. Create a clean environment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# 2. Run the MCP HTTP server
uvicorn mcp_server.server:app --host 0.0.0.0 --port 7860

# 3. Check health
curl -s http://127.0.0.1:7860/healthz | jq

# 4. Optional: test the debug routes
curl -s 'http://127.0.0.1:7860/debug/list_files?path=data' | jq

You should see something like:

{
  "ok": true,
  "mcp": "mounted at /mcp",
  "tools": ["list_files","read_text"]
}

🧠 Using with ChatGPT (MCP)

  1. Deploy this repository to a Hugging Face Space (Docker SDK).
  2. Wait until the Space is running and /healthz returns 200 OK:
    https://huggingface.co/spaces/<you>/<space>/healthz
  3. In ChatGPT → Settings → Connectors / MCP → Add Server
    • Server URL: https://huggingface.co/spaces/<you>/<space>/mcp
  4. Open a new chat and try for example:
    • list_files(path="data")
    • read_text(path="README.md")
    • (Aurora domain tools can be added similarly.)

🐳 Docker (for Hugging Face Spaces)

FROM python:3.12-slim

WORKDIR /app
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PIP_NO_CACHE_DIR=1

RUN apt-get update && apt-get install -y --no-install-recommends     build-essential curl ca-certificates  && rm -rf /var/lib/apt/lists/*

COPY requirements.txt .
RUN pip install --upgrade pip && pip install -r requirements.txt

COPY . .
EXPOSE 7860
ENV PORT=7860

HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=5   CMD curl -fsS http://127.0.0.1:${PORT}/healthz || exit 1

CMD ["uvicorn","mcp_server.server:app","--host","0.0.0.0","--port","7860"]

🧩 Architecture overview

ComponentDescription
FastAPI appHosts the /mcp streaming endpoint and /healthz check
FastMCPMCP server layer that exposes Python functions as MCP tools
ToolsSimple functions (list_files, read_text, etc.) that can be called by MCP clients
Aurora domain(Future) plant‑compound and inhibitor analytics from your Aurora ETL data

📂 Project layout

aurora-mcp/
├── mcp_server/
│   ├── server.py          # FastAPI + FastMCP entrypoint
│   ├── tools/
│   │   └── files.py       # Example tools (list_files, read_text)
│   └── __init__.py
├── data/                  # Local data (ignored by git)
├── requirements.txt
├── Dockerfile
├── huggingface.yaml
└── README.md

✅ Health & debug routes

EndpointPurpose
/healthzlightweight JSON health check
/debug/list_fileslist directory contents (no MCP)
/debug/read_textread a file as plain text

⚙️ Requirements

fastapi>=0.119
uvicorn>=0.37
mcp>=0.17.0
pydantic>=2.11.9
pandas>=2.3.3

Install with:

pip install -r requirements.txt

🧱 Hugging Face Space metadata

# huggingface.yaml
title: Aurora-MCP
sdk: docker
emoji: 🌿
colorFrom: green
colorTo: indigo
pinned: false

🔍 Troubleshooting

SymptomCause / Fix
GET /mcp → 307/500Normal; only MCP clients can connect
Task group is not initializedFixed by FastMCP startup hook
ModuleNotFoundError: mcp.server.fastapiInstall correct SDK: pip install mcp fastapi uvicorn
healthz returns nothingCurl 127.0.0.1 not 0.0.0.0

Author: Daniel Nicorici · University of Helsinki
License: GNU GPL v3
URL:https://github.com/ndaniel/aurora-mcp