Connects Claude to the WHO International Classification of Functioning, Disability and Health through their official ICD API. Exposes six tools: look up specific codes like b280 or d450, search by keywords, browse the four main categories (body functions, structures, activities, environmental factors), navigate code hierarchies, and decode severity qualifiers. Runs on Cloudflare Workers at the edge, so you get global latency without managing infrastructure. Reach for this when you need to map health conditions to functional impacts, document disability assessments, or build clinical documentation tools that go beyond diagnosis codes to capture how conditions affect daily living.
A Model Context Protocol (MCP) server for the WHO International Classification of Functioning, Disability and Health (ICF), deployed on Cloudflare Workers for global edge availability.
Live URL: https://mcp-icf.medseal.app/mcp
The ICF is a WHO classification that complements ICD (diagnosis codes) by describing how health conditions affect a person's functioning in daily life:
A single icf tool with action dispatch (token-efficient). 19 actions:
| Action | Description |
|---|---|
lookup | Look up a specific ICF code (e.g., b280, d450) |
search | Search by keyword (e.g., "walking difficulty", "pain") |
browse | Browse a category (b, s, d, e) or sub-chapter (b1, d4, e3) |
children | Get subcategories of a code |
parent | Navigate up to a code's parent category |
siblings | Codes at the same level (same parent) |
chain | Full hierarchy path from root to a code |
profile | Build a functional profile from multiple codes |
| Action | Description |
|---|---|
qualifier | Component-specific qualifier reference (b=1, s=3, d=2, e=barrier/facilitator) |
validate | Validate code format + qualifiers, verify existence in the WHO API |
parse | Parse fully qualified codes (d450.23, s730.312, e120+3) |
11 standardized RPM instruments with items, scoring, and ICF mappings: GAD-7, PHQ-9, RADAI-5, SLEDAI-2K, WHODAS 2.0, HAQ-DI, PROMIS-10, CAT, ODI, NRS Pain, Short FES-I.
| Action | Description |
|---|---|
instruments | List instruments, optionally filtered by domain |
instrument | Full spec: items, response options, scoring, ICF mappings |
score | Score responses → severity, interpretation, ICF qualifier |
suggest | Suggest instruments for a condition, ICF code, or domain |
mapping | Show an instrument's ICF code mappings |
| Action | Description |
|---|---|
overview | Full ICF classification overview |
api | Raw WHO API request (escape valve) |
help | Action reference with examples |
Example call:
{"action": "score", "name": "GAD-7", "responses": [1, 2, 1, 0, 1, 2, 1]}
Instrument and qualifier actions are pure logic and work without WHO API credentials; code/hierarchy actions require them.
git clone https://github.com/stayce/icf-mcp-cloudflare.git
cd icf-mcp-cloudflare
npm install
Copy the example environment file:
cp .dev.vars.example .dev.vars
Edit .dev.vars with your WHO API credentials for local development.
For production, set secrets:
wrangler secret put WHO_CLIENT_ID
wrangler secret put WHO_CLIENT_SECRET
npm run dev
The server will be available at http://localhost:8787.
npm test
Regression tests cover instrument scoring (all 11 instruments) and qualifier parsing — pure logic, no WHO API credentials needed.
npm run deploy
For custom domain (configured in wrangler.toml):
wrangler deploy --env production
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"icf": {
"type": "url",
"url": "https://mcp-icf.medseal.app/mcp"
}
}
}
Or if deploying your own:
{
"mcpServers": {
"icf": {
"type": "url",
"url": "https://your-worker.workers.dev/mcp"
}
}
}
/ or /health - Health check / server info/mcp - MCP protocol endpoint (streamable HTTP)This server uses the WHO ICD-API which provides programmatic access to both ICD-11 and ICF classifications.
MIT License - see LICENSE
silenceper/mcp-k8s
azure/containerization-assist
io.github.evozim/aws-builder
reza-gholizade/k8s-mcp-server
flux159/mcp-server-kubernetes