Skip to main content
Glama

propaths-mcp

An MCP server that exposes the ProPaths verified protein-interactome as read-only tools for AI agents. It is a thin client over the public ProPaths API (https://www.propaths.net), so every tool returns exactly the API's JSON. No account, no API key.

ProPaths reads a protein's primary literature and returns a verified graph of typed, directed, mechanistic interactions plus a pathway ontology. One protein (ATXN3) is fully mapped today.

Quickstart (Claude Desktop / any MCP client)

Add this to your MCP client config. uvx fetches and runs the server; nothing to clone or install.

{
  "mcpServers": {
    "propaths": {
      "command": "uvx",
      "args": ["propaths-mcp"]
    }
  }
}

Then ask, e.g., "search ProPaths for SCA3 and summarize its strongest mechanistic interaction." The agent will call search_proteins then get_protein, and drill in with get_interaction.

Prefer the raw API? It is public and keyless:

curl https://www.propaths.net/api/protein/ATXN3
curl 'https://www.propaths.net/api/search?q=SCA3'

Related MCP server: dotdog

Tools

Tool

What it does

search_proteins(q, limit=20)

Find a protein by symbol, alias, or name (start here)

get_protein(symbol)

Compact interactome overview (the main entry point)

get_interaction(interaction_id, query=None)

One interaction's full mechanism + evidence

get_interaction_between(a, b)

The interaction(s) between two proteins, in one call

list_interactions(symbol, kind=, type=, pathway=, min_evidence=, sort=, limit=)

Filtered/sorted headline rows

list_interaction_types()

The controlled vocabulary (edge kinds, types, directions) + counts

get_pathway(pathway_id)

A pathway node with its lineage and member interactions

get_pathway_tree()

The full pathway scaffold (resolves pathway ids to names)

get_highlights()

The best-evidenced interactions

export_network(symbol, format="tsv")

Export a protein's network as TSV / SIF / GraphML (Cytoscape, networkx)

describe_schema()

The graph vocabulary + how to use the tools (offline)

Also exposed as MCP resources (propaths://schema, propaths://interaction-types, propaths://pathways/tree, and the propaths://protein/{symbol} template) and prompts (profile-protein, strongest-evidence, explain-pathway).

All tools are read-only and idempotent.

Configuration

Env var

Default

Purpose

PROPATHS_API_URL

https://www.propaths.net

API base URL. Point at http://localhost:8000 to run against a local API.

Run without uvx

pip install propaths-mcp
propaths-mcp            # runs the stdio server
# or: python -m propaths_mcp

Before it is published, you can run straight from the repo:

uvx --from git+https://github.com/Tahsin-Kazi/propaths-mcp propaths-mcp

Notes

  • Read-only and public; reads are rate-limited per client. Write/enrichment access and a hosted MCP are gated. Get in touch.

  • Errors are graceful: a missing protein returns {"error": "...", "status": 404}; an unreachable API raises with a hint.

Docs: https://www.propaths.net/quick-start · License: MIT

Available Tools

11 tools
describe_schemaA
Read-onlyIdempotent

Explain the graph's vocabulary and how to use these tools: edge kinds, interaction types, direction semantics, orientation, and the recommended call flow. Static guidance that works even if the API is unreachable.

Inputs: no named parameters.

export_networkA
Read-onlyIdempotent

Export a protein's interactome as text for external tools.

format = tsv (edge list / spreadsheet), sif or graphml (Cytoscape, networkx, igraph, Gephi). Edges carry their biological orientation (an upstream partner points into the protein), so the graph is directed.

Inputs: symbol (required), format. Returns: result

get_highlightsA
Read-onlyIdempotent

A curated entry point: the best-evidenced interactions, ranked by supporting evidence. Good for a quick, strong overview.

Inputs: no named parameters.

get_interactionA
Read-onlyIdempotent

One interaction's full enriched record by id.

Includes mechanism prose, direction, per-function effects, kinetics, and evidence. Pass query (a participating symbol) to orient source/target so the query protein reads as the source.

Inputs: interaction_id (required), query.

get_interaction_betweenA
Read-onlyIdempotent

The interaction(s) between two named proteins, oriented from a.

Use this for "what does A do to B" in one call, instead of pulling get_protein and scanning for the partner.

Inputs: a (required), b (required).

get_pathwayA
Read-onlyIdempotent

A single pathway by id: the node, its ancestors and children, and the interactions placed in it. The pathway-first way into the graph.

Inputs: pathway_id (required).

get_pathway_treeA
Read-onlyIdempotent

The full pathway scaffold as a flat node list.

Assemble the tree client-side via each node's parentId. Use this to resolve the canonicalPathwayId values returned on interactions into human-readable pathway names.

Inputs: no named parameters.

get_proteinA
Read-onlyIdempotent

Overview map for one protein, the main entry point.

Returns a COMPACT overview sized for an agent: protein metadata, counts, the top-level pathway roots, and one headline row per interaction (id, oriented source/target, kind, direction, type, a one-line supportSummary, resolved pathway names, and function/evidence counts). It deliberately omits the heavy per-edge mechanism and evidence prose (the full protein page is ~700K tokens for a hub protein).

Drill into any row by id for full depth: get_interaction(id) for an edge's mechanism + kinetics + evidence.

Inputs: symbol (required).

list_interactionsA
Read-onlyIdempotent

Filtered, sorted, headline-only list of a protein's interactions.

kind = activates|inhibits|binds|regulates; type = direct|indirect; pathway = a pathway-name substring; min_evidence = minimum supporting papers; sort = evidence|functions|partner. Lighter than get_protein; use it for targeted questions ("best-evidenced inhibitory edges in ERAD"), then drill in with get_interaction(id).

Inputs: symbol (required), kind, sort, type, +4 more.

list_interaction_typesA
Read-onlyIdempotent

The controlled vocabulary with plain-language meanings and live counts: edge kinds, interaction types, directions, and the mechanisms present in the graph. Call this before filtering so you use valid values.

Inputs: no named parameters.

search_proteinsA
Read-onlyIdempotent

Search proteins by symbol prefix (case-insensitive).

Returns matching symbols with HGNC id and description. Use this first to resolve a protein of interest, then call get_protein.

Inputs: q (required), limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 11 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: search_proteins for finding proteins, get_protein for overview, get_interaction for deep detail, list_interactions for filtered lists, get_pathway/get_pathway_tree for pathway navigation, export_network for output, and describe_schema for guidance. Even closely related tools like get_interaction_between and get_interaction are differentiated by their argument (pair vs. ID) and described usage.

    Naming Consistency5/5

    All tool names follow a consistent get_/list_/search_/export_/describe_ + noun pattern, all in snake_case. The verb clearly indicates the action (get for single resource, list for collection, search for prefix query, export for output, describe for metadata) and the noun identifies the resource (protein, interaction, pathway, network, schema).

    Tool Count5/5

    11 tools is well within the recommended 3-15 range and each tool addresses a specific need for exploring a biological interaction graph. The count feels neither thin nor bloated—there are distinct entry points, filtering utilities, vocabulary support, and export functionality without redundant overlaps.

    Completeness5/5

    The tool surface covers the full read-only lifecycle of the domain: find a protein (search_proteins), get overview (get_protein), drill into details (get_interaction), filter (list_interactions), navigate pathways (get_pathway, get_pathway_tree), discover vocabularies (list_interaction_types), get curated highlights (get_highlights), and export (export_network). The inclusion of describe_schema ensures agents can self-orient, and there are no obvious dead ends—every tool's output either stands alone or provides IDs that are directly consumed by other tools.

    Maintenance

    ActivityStale
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      A
      maintenance
      An MCP server that gives AI assistants access to biological and biomedical RDF databases via SPARQL at the RDF Portal, as well as selected REST APIs (NCBI E-utilities, UniProt, ChEMBL, PDB, Reactome, Rhea, MeSH, and more).
      2
      29
      21
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables AI assistants to search, browse, analyze, and export biological pathway data from Reactome through natural language.
      56
      62 npm
      6
      Apache 2.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to query the Reactome biological pathway knowledge-base for pathways, participants, and orthologous events using natural language.
      98 npm
      MIT