MCP server: One MCP server.

Agentic Target Evidence

@athrilMCP server · External

Read-only biomedical evidence tools for drug-target validation: DepMap, gnomAD, OpenTargets, PubMed…

MCP gateways & tool hubsv0.1.4Apache-2.0Python
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

Dockerghcr.io/athril/agentic-target-evidence/mcp-gateway:v0.1.4

Run

docker run -i --rm ghcr.io/athril/agentic-target-evidence/mcp-gateway:v0.1.4

MCP client config

{
  "mcpServers": {
    "agentic-target-evidence": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/athril/agentic-target-evidence/mcp-gateway:v0.1.4"
      ]
    }
  }
}
README6 min read
TestingCI codecov
Containersmcp-servers mcp-gateway agents-knowledge agents-reasoning report-agent planner chat
ToolingPython uv Ruff Checked with mypy
StackLangGraph MCP Langfuse Postgres
MetaLicense Contributions welcome Code of Conduct

A multi-agent system that gathers and interprets evidence on whether a gene is a viable drug target for a disease. Given a (gene, disease, direction) triple — e.g. BRCA1, breast cancer, inhibit — it retrieves evidence from ~two dozen biomedical sources, screens and interprets it through six independent lenses (genetics, biology, safety, clinical, commercial, regulatory), and produces a provenanced dossier: a consensus verdict, a single 0–100 suitability score, per-lens narratives, and a categorized, link-rich evidence list.

Every source connector — DepMap, gnomAD, ClinicalTrials.gov, OpenTargets, PubMed, FAERS, and ~20 more — lives once under src/mcp_servers/ and is consumed two ways: in-process by the pipeline's agents (fast, typed, no protocol tax), or through the MCP gateway, which composes the same connectors into one MCP server exposing ~40 read-only tools to any MCP host — Claude Desktop, Claude Code, your own agent — for ad hoc lookups outside a full run. A bundled chat assistant offers the same lookups from a browser. See § MCP gateway & servers below.

Built on LangGraph (orchestration) + MCP (the data layer), with full tracing (Langfuse + OpenTelemetry), Postgres-backed checkpointing, and configurable local/cloud LLM routing.

Every verdict is LLM-generated over retrieved evidence — a preliminary research aid, not ground truth. It is built to accelerate the evidence-gathering phase of target validation, not to replace expert review. See NOTICE.md for the full disclaimer, licenses, and data notices.

📄 See it in action: Example dossier — TRPC6 in Focal Segmental Glomerulosclerosis. A real end-to-end run: consensus verdict, 0–100 suitability score, six per-lens narratives, and a link-rich evidence list over 135 kept sources.


Quickstart

bash
uv sync                  # Python ≥ 3.12, via uv: https://docs.astral.sh/uv/
cp .env.example .env      # fill in any keys you want; most sources are keyless

make up                   # infra + Langfuse + OTEL + the app, as containers
make run GENE=BRCA1 DISEASE="breast cancer"

Output lands under results/report/{gene}/{disease}/{direction}/report.md. The Langfuse trace UI is at http://localhost:3000. Windows: use make.bat instead of make — see docs/tutorial.md.

Don't want a full run? Ask one-off questions against the same connectors (e.g. "What's TRPC6's DepMap dependency score?") via the bundled chat UI or Claude Desktop/Code — see docs/mcp_tutorial.md.

Pre-built images

make up builds all service images locally. Every tagged release also publishes the same images to GHCR, so you can pull instead of building:

bash
docker pull ghcr.io/athril/agentic-target-evidence/mcp-servers:latest
docker pull ghcr.io/athril/agentic-target-evidence/mcp-gateway:latest
docker pull ghcr.io/athril/agentic-target-evidence/agents-knowledge:latest
docker pull ghcr.io/athril/agentic-target-evidence/agents-reasoning:latest
docker pull ghcr.io/athril/agentic-target-evidence/report-agent:latest
docker pull ghcr.io/athril/agentic-target-evidence/planner:latest
docker pull ghcr.io/athril/agentic-target-evidence/chat:latest

latest tracks the most recent release; pin a version instead (e.g. :v0.1.2) for reproducibility. To use these instead of a local build, replace a service's build: block in docker-compose.yml with image: ghcr.io/athril/agentic-target-evidence/<target>:<tag>.


MCP gateway & servers

Every biomedical source connector lives under src/mcp_servers/ as a self-contained tools.py + MCP server.py pair — 27 source connectors, ~46 read-only tools, spanning 30+ named public sources (some connector folders bundle more than one upstream API — see docs/data_sources.md) plus your own internal data:

ChEMBL · ClinGen · ClinicalTrials.gov · ClinVar · DepMap · DGIdb · ENCODE · Expression Atlas · GBD (IHME) · GenCC · gnomAD · Google Patents · GTEx · GWAS Catalog · HGNC · HPA · IMPC · Monarch Initiative · MONDO · OMIM · OpenAlex · OpenFDA · OpenTargets · Orphanet · Project Score · PubMed · SCImago (SJR) · SPOKE · TTD · UniProt · USPTO · internal data (your org's private tables)

Full per-source details (what each provides, licensing/gating status) in docs/data_sources.md. The MCP gateway (src/mcp_gateway/server.py) dynamically discovers and composes all of them into one MCP server, with no hand-maintained registry — drop a new src/mcp_servers/<name>/server.py in and it's mounted automatically (subject to feature gates; internal_data is never mounted).

Three ways to reach it, without running the full pipeline:

ClientWhat it is
Chat assistantA Gradio chat UI backed by a local Ollama model — make chat or see docs/mcp_tutorial.md.
Claude Desktop / Claude CodeConnect over stdio alongside your other MCP servers.
Any other MCP clientCall the tools programmatically over HTTP (bearer-token auth via MCP_GATEWAY_TOKEN).

Self-hosting the gateway alone (no pipeline, no other services) is a single container: docker run -p 8765:8765 ghcr.io/athril/agentic-target-evidence/mcp-gateway:latest — it defaults to HTTP on 0.0.0.0:8765. Point any MCP client at http://<host>:8765/mcp.

To use it from Claude Desktop or Claude Code without cloning the repo, have the client launch the same image over stdio — add this to claude_desktop_config.json (or .mcp.json):

json
{
  "mcpServers": {
    "agentic-target-evidence": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT=stdio",
               "-e", "NCBI_API_KEY", "-e", "USPTO_API_KEY",
               "ghcr.io/athril/agentic-target-evidence/mcp-gateway:latest"]
    }
  }
}

Both keys are optional (-e NAME with no value forwards it from your environment). The gateway is also listed in the official MCP Registry as io.github.athril/agentic-target-evidence.

For all bulk retrieval the pipeline never talks to the gateway — it imports each tools.py directly, keeping the hot path free of protocol overhead. The gateway is a second, additive surface onto the same connectors, for ad hoc use outside a full run. (The one in-pipeline gateway client is the synthesis-phase Investigator agent, which calls retrieval tools over MCP to close evidence gaps before the report; it degrades gracefully if the gateway is down.) For the design — exposure model, security, transports, discovery internals — see docs/mcp_gateway.md; for a step-by-step walkthrough, see docs/mcp_tutorial.md.


Documentation

Full documentation lives in docs/. Start there — it has reading paths for "I just want to run it," "I want to understand the design," and "I want to contribute." A few entry points:

DocWhat it covers
docs/README.mdStart here. Doc set index, full table of documents, and reading paths by goal (run it, understand the design, contribute).
docs/tutorial.mdRun an analysis and read the resulting dossier.
docs/mcp_tutorial.mdAd hoc tool access via the MCP gateway and chat assistant, step by step.
docs/mcp_gateway.mdMCP gateway reference: exposure model, security, transports, discovery internals.
docs/data_sources.mdEvery source connector, what it provides, and its licensing/gating status.
docs/restricted.mdStep-by-step setup for gated sources (OMIM, SCImago, GBD, TTD): API keys, data downloads, verification.
docs/architecture.mdThe full design: pipeline graph, HITL, capabilities, observability.
docs/developers.mdExtension points and conventions for contributing.
docs/faq.mdNuances and easy-to-get-wrong points, as Q&A.

Contributing

Contributions are welcome — see CONTRIBUTING.md for setup, conventions, and how to submit a change, and docs/developers.md for extension points. Please also read our Code of Conduct.


License

Apache-2.0. Some data sources carry narrower terms and are gated off by default — see docs/data_sources.md for the reference table, docs/restricted.md for step-by-step setup, and NOTICE.md for the full disclaimer and per-source licenses.


Contact

Patryk Orzechowski, Ph.D.

Email LinkedIn Google Scholar

Similar modules

Browse MCP gateways & tool hubs