cBioPortal MCP — cancer genomics portal. Search public cancer studies (TCGA / CPTAC / etc.) by keyword, get study details + sample counts, resolve a gene symbol to an Entrez id, and list cancer types. Complements the GDC pack. Keyless, open data.
Four well-named, read-only tools with clear descriptions (avg 180 chars, within baseline 194). All tools have complete input schemas with type definitions and required fields. Naming follows verb_noun pattern (search_, get_, list_). Parameter descriptions are present and actionable. Output schemas are not explicitly documented in the code, which is a notable gap. Error handling returns structured objects with error fields but lacks recovery guidance. No tool annotations (readOnlyHint, etc.) despite all being read-only. Missing output schema documentation and recovery hints prevent a higher score.
Resolve a gene to its Entrez gene id and canonical info via cBioPortal. Accepts a HUGO symbol (e.g. "TP53", "BRCA1") or an Entrez gene id. Returns entrez_gene_id, symbol, and type.
Get full details for one cBioPortal cancer study by its study id (e.g. "brca_tcga_pub", "glioma_mskcc_2019"), including description, cancer type, sample count, PMID, and citation.
List cancer types defined in cBioPortal (id, display name, parent type). Useful for resolving cancer-type ids used by studies.
Search public cancer genomics studies in cBioPortal (TCGA, CPTAC, MSK, etc.) by keyword. Matches study name, study id, or cancer-type id (case-insensitive). Returns study ids, names, cancer types, and sample counts. Keyless, open data.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Returns study ids, names, cancer types, and sample counts') but the actual response structure is not formally specified. LLMs cannot plan downstream tool calls or extract fields reliably without documented output schemas.
No tool annotations despite all tools being read-only. The MCP spec supports readOnlyHint, destructiveHint, and idempotentHint annotations. All four tools should declare readOnlyHint=true to signal safety to agents.
Error responses lack recovery guidance. When a study or gene is not found (404), the response returns {error: 'study not found'} but does not suggest next steps (e.g., 'Try search_studies() to find available studies'). Per pattern:recovery-guide, errors should guide the agent toward resolution.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
search_studies parameter 'query' is optional but behavior when omitted is unclear. Description says 'Omit to list studies' but does not specify sort order, default limit, or whether all studies are returned. Ambiguous optional parameters invite misuse.
No pagination support documented. search_studies and list_cancer_types accept a 'limit' parameter but do not return a total count or next_cursor. Large result sets could exceed context windows; pagination guidance is missing.