Koskamo

CAN-IMMUNE MCP

A read-only MCP server that allows AI assistants to query the CAN-IMMUNE database for cancer neoantigen mutations, peptides, cell lines, tissues, and cached MHC-I binding predictions using plain language.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

CAN-IMMUNE MCP logo, by Li/Purcell Lab - Monash UniversityCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by Li/Purcell Lab - Monash University
You need:No sign-in needed; signing in with Google gives a higher rate limit.
MCP endpoint (Streamable HTTP)
https://canelib.erc.monash.edu/mcp
Vendor documentation

What its tools do

12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

12 of 12 have a description · 0 of 12 declare behavior hints · 11 of 11 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search CAN-IMMUNE for BRAF and summarise its mutations
  • Find the top mutated genes in MDA-MB-231
  • Show cached MHC binding for a peptide with HLA-A*02:11
  • Get database totals for mutations and peptides

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
CAN-IMMUNE 1.29.0
MCP protocol negotiated in check
2025-11-25
Tools
12 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "experimental": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

CAN-IMMUNE is a cancer neoantigen database (COSMIC + DepMap/CCLE + PubMed) of mutations, mutant peptides, cell lines, tissues and predicted MHC binding. Use these tools to look up genes, cell lines, tissues/cancer types, a gene's mutations, and cached MHC-I binding predictions. All data is read-only.

Tools

12 advertised

database_overview
Advertised by the server during the last successful anonymous check.

Get the headline size of the CAN-IMMUNE database in one call. Returns total counts of mutations, genes, and unique mutant peptides, plus how many cell lines, tissues, and cancer types are covered, and the data sources (COSMIC, DepMap/CCLE, PubMed). Use this first to size the resource or to answer "how big is the database / how many X are there" questions. No parameters.

database_overview input schema
{
  "type": "object",
  "title": "database_overviewArguments",
  "properties": {}
}
search_genes
Advertised by the server during the last successful anonymous check.

Find genes by symbol or full name, ranked by how mutated they are. Matches the gene symbol OR the full gene name (partial, case-insensitive) and returns each hit with its total mutation count, unique mutant-peptide count, sample count, and UniProt accession. Use it to locate a gene before calling `get_gene`, or to rank a set of genes by mutation burden. Results are ordered by mutation count (most mutated first).

search_genes input schema
{
  "type": "object",
  "title": "search_genesArguments",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20,
      "description": "Max rows to return (1-100). Default 20."
    },
    "query": {
      "type": "string",
      "title": "Query",
      "description": "Gene symbol or part of a gene name, e.g. 'TP53', 'BRAF', or 'kinase'. Case-insensitive, partial matches allowed."
    }
  }
}
get_gene
Advertised by the server during the last successful anonymous check.

Get the full profile for one gene by exact symbol. Returns total mutations and how they split between cell lines vs tissues, unique mutant peptides, sample and transcript counts, UniProt accession / name / reviewed status, the top ~15 recurrent mutations in that gene, and a link to the gene page. Use this after `search_genes` (or when you already know the symbol) to answer detailed questions about a single gene. Returns an error field if the symbol is not found.

get_gene input schema
{
  "type": "object",
  "title": "get_geneArguments",
  "required": [
    "symbol"
  ],
  "properties": {
    "symbol": {
      "type": "string",
      "title": "Symbol",
      "description": "Exact HGNC gene symbol, e.g. 'TP53', 'KRAS', 'EGFR'. Use search_genes first if unsure of the exact symbol."
    }
  }
}
search_cell_lines
Advertised by the server during the last successful anonymous check.

Find cancer cell lines by name, ranked by mutation burden. Returns each matching cell line with its tissue of origin, cancer type, total mutations, unique mutant peptides, data sources (COSMIC / DepMap-CCLE / PubMed), and Cellosaurus ID. Covers only cell-line models (kept separate from primary tissue samples). Use before `get_cell_line` or `top_genes_in_cell_line`. Ordered by mutation count (most mutated first).

search_cell_lines input schema
{
  "type": "object",
  "title": "search_cell_linesArguments",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 20,
      "description": "Max rows to return (1-100). Default 20."
    },
    "query": {
      "type": "string",
      "title": "Query",
      "description": "Cell-line name or fragment, e.g. 'MDA-MB-231', 'HeLa', 'A549'. Case-insensitive, partial matches allowed; hyphen/spacing variants are normalized."
    }
  }
}
get_cell_line
Advertised by the server during the last successful anonymous check.

Get the full profile for one cancer cell line by exact name. Returns tissue of origin, cancer type, total mutations, unique mutant peptides and genes, data sources, Cellosaurus and DepMap model IDs, gender, category / cell type, and the top ~15 most-mutated genes in that line, plus a link to its page. Use after `search_cell_lines`, or when the exact name is known, for a deep dive on one line. Returns an error field if the name is not found.

get_cell_line input schema
{
  "type": "object",
  "title": "get_cell_lineArguments",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "title": "Name",
      "description": "Exact cell-line name, e.g. 'MDA-MB-231', 'A549'. Use search_cell_lines first if unsure of the exact name."
    }
  }
}
top_genes_in_cell_line
Advertised by the server during the last successful anonymous check.

Rank the most-mutated genes within one specific cell line. Answers "what is the top mutated gene in <cell line>" / "which genes are most altered in <cell line>". Returns genes with their mutation counts for that line, highest first, from precomputed per-cell-line stats (fast). For the whole profile of the line use `get_cell_line` instead.

top_genes_in_cell_line input schema
{
  "type": "object",
  "title": "top_genes_in_cell_lineArguments",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "title": "Name",
      "description": "Exact cell-line name, e.g. 'MDA-MB-231'."
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 15,
      "description": "How many top genes to return (1-100). Default 15."
    }
  }
}
list_cancer_types
Advertised by the server during the last successful anonymous check.

List cancer types (histology) ranked by mutation burden. Returns each cancer type / histology with its total mutations, unique samples, and unique genes, most-mutated first. Use to see which cancer types dominate the database or to pick one for further drill-down on the website.

list_cancer_types input schema
{
  "type": "object",
  "title": "list_cancer_typesArguments",
  "properties": {
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 50,
      "description": "Max cancer types to return (1-100). Default 50."
    }
  }
}
list_tissues
Advertised by the server during the last successful anonymous check.

List primary tissues ranked by mutation burden. Returns each tissue (COSMIC primary-tissue samples only, kept separate from cell lines) with its total mutations, unique samples, and unique genes, most-mutated first. Use for tissue-level questions; for cell lines use `search_cell_lines`.

list_tissues input schema
{
  "type": "object",
  "title": "list_tissuesArguments",
  "properties": {
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 50,
      "description": "Max tissues to return (1-100). Default 50."
    }
  }
}
get_gene_mutations
Advertised by the server during the last successful anonymous check.

List individual mutations in a gene (a bounded sample of rows). Each row gives the CAN-IMMUNE mutation ID (CANLIB...), the amino-acid change, the CDS change, mutation type (missense / complex substitution), data source, the sample it came from, its primary site, and the mutant peptide. Ordered by mutation ID. Capped at `limit` rows (max 100) for speed - for the complete table of a heavily-mutated gene, link the user to the gene page on the website.

get_gene_mutations input schema
{
  "type": "object",
  "title": "get_gene_mutationsArguments",
  "required": [
    "gene"
  ],
  "properties": {
    "gene": {
      "type": "string",
      "title": "Gene",
      "description": "Exact gene symbol whose mutations you want, e.g. 'TP53'."
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 50,
      "description": "Max mutation rows to return (1-100). Default 50. This is a bounded sample, not the full list."
    }
  }
}
get_mhc_binding
Advertised by the server during the last successful anonymous check.

Look up a CACHED MHC-I binding prediction for a peptide + HLA allele. Returns the NetMHCpan result (best binding core, %Rank_EL, binder level SB/WB/NB, and neoepitope %Rank_Neo when computed) for predictions already stored in the cache. This tool does NOT run new predictions - it only reads cached ones; if nothing is cached it returns cached=false with a note. To generate a new prediction, use the interactive button on the mutation page of the website.

get_mhc_binding input schema
{
  "type": "object",
  "title": "get_mhc_bindingArguments",
  "required": [
    "peptide",
    "allele"
  ],
  "properties": {
    "allele": {
      "type": "string",
      "title": "Allele",
      "description": "HLA class-I allele in NetMHCpan format, e.g. 'HLA-A*02:11', 'HLA-B*07:02'."
    },
    "peptide": {
      "type": "string",
      "title": "Peptide",
      "description": "The peptide sequence, e.g. 'FLDGNQIVT' (single-letter amino acids)."
    }
  }
}
search
Advertised by the server during the last successful anonymous check.

Search CAN-IMMUNE for genes and cell lines (ChatGPT connector interface). Returns {results: [{id, title, url}]} combining matching genes and cell lines, each with a stable `id` (like 'gene:TP53' or 'cell_line:MDA-MB-231'). Pass that `id` to `fetch` to retrieve the full record. This is the generic search endpoint ChatGPT expects; MCP-native clients can also use the more specific `search_genes` / `search_cell_lines` tools.

search input schema
{
  "type": "object",
  "title": "searchArguments",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "title": "Query",
      "description": "Free-text query matching a gene symbol/name or a cell-line name, e.g. 'BRAF' or 'MDA-MB-231'."
    }
  }
}
fetch
Advertised by the server during the last successful anonymous check.

Fetch the full record for an id returned by `search` (ChatGPT connector interface). Takes an id like 'gene:TP53' or 'cell_line:MDA-MB-231' and returns {id, title, text, url, metadata} where `text` is the full JSON profile (same data as get_gene / get_cell_line). Always call `search` first to obtain a valid id.

fetch input schema
{
  "type": "object",
  "title": "fetchArguments",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "title": "Id",
      "description": "An id from a `search` result, formatted 'gene:<SYMBOL>' or 'cell_line:<NAME>', e.g. 'gene:TP53' or 'cell_line:MDA-MB-231'."
    }
  }
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1316 ms
95th percentile latency
1316 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1316 ms · metadata changed · 12 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http can-immune-mcp https://canelib.erc.monash.edu/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add can-immune-mcp --url https://canelib.erc.monash.edu/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable can-immune-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "can-immune-mcp": {
      "url": "https://canelib.erc.monash.edu/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "can-immune-mcp": {
      "type": "streamableHttp",
      "url": "https://canelib.erc.monash.edu/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start can-immune-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "can-immune-mcp": {
      "type": "http",
      "url": "https://canelib.erc.monash.edu/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http can-immune-mcp https://canelib.erc.monash.edu/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://canelib.erc.monash.edu/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "can-immune-mcp": {
      "serverUrl": "https://canelib.erc.monash.edu/mcp"
    }
  }
}

Let your agent find its tools

Find servers like CAN-IMMUNE MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.