@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-geneintersectionsand ontologyparentsare 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 reportshitsForInput, 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 congprofiler_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 fgprofiler_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