@pipeworx/gprofiler

Connect: https://gateway.pipeworx.io/gprofiler/mcp · Install: one-click buttons

No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.

Tools: 3

Functional enrichment for a gene list against GO, KEGG, Reactome, WikiPathways, TRANSFAC, miRTarBase, CORUM, HPA and HPO, plus gene/protein identifier conversion and cross-species ortholog mapping — from g:Profiler at the University of Tartu.

Tools

  • gprofiler_enrich(organism, query[], sources?, user_threshold?, no_iea?, ordered?, domain_scope?, background?, significant?, limit?) — g:GOSt. Returns each enriched term with an ALREADY-ADJUSTED p-value (g:SCS), term size, query size, overlap, precision and recall. Per-gene intersections and ontology parents are dropped: they dominate the payload and nothing reads them in an answer.
  • gprofiler_convert_ids(organism, query[], target?, numeric_namespace?) — g:Convert. Maps between gene/protein/transcript/probe namespaces and reports hitsForInput, so an ambiguous symbol shows up as ambiguous instead of quietly resolving to one gene.
  • gprofiler_orthologs(organism, target, query[]) — g:Orth via Ensembl Compara. Human TP53 → mouse Trp53, with one-to-many mappings flagged rather than collapsed.

Auth

Keyless. g:Profiler asks programmatic callers to identify themselves; the pack sends a pipeworx-mcp-gprofiler User-Agent.

Data sources

  • POST https://biit.cs.ut.ee/gprofiler/api/gost/profile/ — enrichment.
  • POST https://biit.cs.ut.ee/gprofiler/api/convert/convert/ — ID conversion.
  • POST https://biit.cs.ut.ee/gprofiler/api/orth/orth/ — orthologs.
  • Docs: https://biit.cs.ut.ee/gprofiler/page/apis

Traps

The organism code is g:Profiler’s own and nothing else works. First letter of the genus plus the full species name, lowercase: hsapiens, mmusculus, rnorvegicus, drerio, dmelanogaster, celegans, scerevisiae, athaliana. "human" and "9606" are both rejected. This is the common first failure, and it is a loud one, which is the good case.

A single gene passed as a bare string would be split into characters upstream. The pack accepts a string and splits it on whitespace/comma/semicolon before sending, so "TP53" becomes ["TP53"] rather than four failed lookups returned as a clean 200.

An empty enrichment result is ambiguous and the pack says so. No significant term is a real answer for a small or functionally unrelated list — and it is also exactly what a wrong organism code or unrecognised identifiers produce. The note field points the caller at gprofiler_convert_ids to tell the two apart.

pValue is already multiple-testing corrected (g:SCS by default). Do not correct it again.

n_incoming > 1 on a conversion means the INPUT matched more than one record, not that the output is multi-valued. Surfaced as hitsForInput and collected in ambiguousInputs.

Enrichment against all sources on a large list is genuinely slow (seconds, not milliseconds). Pass sources when you know which annotation set you want.

Tools

  • gprofiler_enrich — “What pathways are enriched in [gene list]” / “run GO enrichment on these genes” / “what biological processes do [genes] share” / “functional annotation of my differentially expressed genes” — AUTHORI
  • gprofiler_convert_ids — “Convert these gene symbols to Ensembl IDs” / “what is the Ensembl/Entrez/UniProt ID for [gene]” / “map my probe IDs to gene names” / “translate this gene list into [namespace]” — AUTHORITATIVE identi
  • gprofiler_orthologs — “What is the mouse ortholog of [human gene]” / “find the human equivalent of [zebrafish/fly/yeast gene]” / “map this gene list to [species]” — AUTHORITATIVE cross-species ortholog mapping (g:Orth) via

Tools

  • gprofiler_convert_ids — Convert these gene symbols to Ensembl IDs / what is the Ensembl/Entrez/UniProt ID for [gene] / map my probe IDs to gene names / translate this gene list into [namespace] — AUTHORITATIVE identifier con
  • gprofiler_enrich — What pathways are enriched in [gene list] / run GO enrichment on these genes / what biological processes do [genes] share / functional annotation of my differentially expressed genes — AUTHORITATIVE f
  • gprofiler_orthologs — What is the mouse ortholog of [human gene] / find the human equivalent of [zebrafish/fly/yeast gene] / map this gene list to [species] — AUTHORITATIVE cross-species ortholog mapping (g:Orth) via Ensem

Regenerated from source · build September 18, 2026