just-prs-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PRS_MCP_HOST | No | HTTP server host | |
| PRS_MCP_MODE | No | Server mode: essentials or extended | essentials |
| PRS_MCP_PORT | No | HTTP server port | |
| PRS_MCP_HF_TOKEN | No | HuggingFace token for catalog upload | |
| PRS_MCP_CACHE_DIR | No | Root directory for cached data | |
| PRS_MCP_LOG_LEVEL | No | Logging level | |
| PRS_MCP_TRANSPORT | No | Transport type (stdio, http, etc.) | |
| FASTMCP_DOCKET_URL | No | Redis URL for background task backend | |
| PRS_MCP_DEFAULT_PANEL | No | Default reference panel | |
| PRS_MCP_DUCKDB_MEMORY_LIMIT | No | Memory limit for DuckDB | |
| PRS_MCP_DEFAULT_GENOME_BUILD | No | Default genome build (e.g., GRCh37, GRCh38) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_scoresA | Search the PGS Catalog for polygenic scores by free text. Case-insensitive substring match across PGS ID, score name, reported
trait, and EFO trait. Optionally filter to a genome build (GRCh37 /
GRCh38, harmonized cross-build scores included). Returns up to |
| score_infoA | Get cleaned metadata for a single PGS score by its ID (e.g. 'PGS000001'). |
| best_performanceA | Look up the best evaluation performance for a score (largest sample, EUR-preferred). Returns parsed effect sizes (OR/HR/Beta) and classification metrics (AUROC/C-index) plus pre-formatted display strings. |
| search_traitsA | Search the PGS Catalog REST API for traits by term (e.g. 'type 2 diabetes'). |
| trait_infoA | Fetch a trait by EFO ID (e.g. 'EFO_0001645') with its associated PGS IDs. |
| normalize_vcfA | Normalize a VCF to a quality-filtered genotype Parquet (background task). Strips the chr prefix, renames id→rsid, computes genotype from GT, applies
optional quality filters (FILTER allow-list, min DP, min QUAL), and writes
zstd-compressed Parquet. The output is a drop-in genotype source for
Runs as a real MCP background task: the client gets a task id immediately and polls for the result. Normalization is the slow step (seconds to minutes depending on VCF size). |
| compute_prsA | Compute a polygenic risk score for one VCF against one PGS score. Downloads the harmonized scoring file (cached) and scores the genotypes.
Pass |
| percentileA | Estimate the population percentile (0-100) for a computed PRS value. Uses the 3-tier fallback: precomputed reference-panel distributions
(best), then a theoretical distribution, then an AUROC approximation.
|
| absolute_riskA | Estimate absolute disease risk from a PRS z-score and population prevalence. Joins the score's trait to prevalence + effect-size data. |
| assess_qualityA | Classify and interpret a PRS result's quality (pure logic — no I/O).
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| compute_prs_for_trait | Prompt template: find and compute PRS for a trait against a VCF. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| panels | Reference panels, supported genome builds, and the active cache directory. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/winternewt/just-prs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server