About Agentic Target Evidence
Agentic Target Evidence gathers biomedical evidence to assess whether a gene is a viable drug target for a disease. Researchers can run a multi-agent analysis or query its read-only source tools; results include a scored, sourced dossier and are intended as preliminary research support.
Key features
- 01Evidence retrieval from biomedical sources
- 02Six-lens target assessment
- 03Consensus verdict and suitability score
- 04Provenance-linked evidence dossier
- 05Browser chat for ad hoc lookups
Use cases
- 01Assess a gene as a target for a disease
- 02Review evidence across genetics, safety, and clinical lenses
- 03Look up a source-specific gene fact
- 04Explore evidence through a chat interface
MCP support
Its MCP gateway combines biomedical connectors into one server with read-only tools for ad hoc queries from MCP clients. The full analysis pipeline also uses the same connectors, primarily in-process.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
docker run -i --rm -e MCP_TRANSPORT -e NCBI_API_KEY -e USPTO_API_KEY ghcr.io/athril/agentic-target-evidence/mcp-gateway:v0.1.4MCP_TRANSPORTRun the gateway over stdio (the image defaults to HTTP).NCBI_API_KEYSecretOptional NCBI E-utilities key; raises the PubMed/ClinVar rate limit from 3 to 10 req/s.USPTO_API_KEYSecretOptional USPTO Open Data Portal key; the USPTO patent tools return nothing without it.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
ghcr.io/athril/agentic-target-evidence/mcp-gateway:v0.1.4stdioTools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEAgentic Target Evidence
| Testing | |
| Containers | |
| Tooling | |
| Stack | |
| Meta |
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
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:
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:
| Client | What it is |
|---|---|
| Chat assistant | A Gradio chat UI backed by a local Ollama model — make chat or see docs/mcp_tutorial.md. |
| Claude Desktop / Claude Code | Connect over stdio alongside your other MCP servers. |
| Any other MCP client | Call 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):
{
"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:
| Doc | What it covers |
|---|---|
| docs/README.md | Start here. Doc set index, full table of documents, and reading paths by goal (run it, understand the design, contribute). |
| docs/tutorial.md | Run an analysis and read the resulting dossier. |
| docs/mcp_tutorial.md | Ad hoc tool access via the MCP gateway and chat assistant, step by step. |
| docs/mcp_gateway.md | MCP gateway reference: exposure model, security, transports, discovery internals. |
| docs/data_sources.md | Every source connector, what it provides, and its licensing/gating status. |
| docs/restricted.md | Step-by-step setup for gated sources (OMIM, SCImago, GBD, TTD): API keys, data downloads, verification. |
| docs/architecture.md | The full design: pipeline graph, HITL, capabilities, observability. |
| docs/developers.md | Extension points and conventions for contributing. |
| docs/faq.md | Nuances 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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.