Infermedica MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Run Infermedica symptom checks, diagnosis, triage and condition lookups.
17 tools: 5 change things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things5Claude Code: ask: see these tools
- Only reads12Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http infermedica https://infermedica.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "infermedica_diagnosis" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "run": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
17 tools
Changes things 5Claude Code: ask
infermedica_diagnosisRun the diagnostic engine over the collected evidence — returns the next question to ask, ranked candidate conditions with probabilities, and a should_stop flag.1 finding
Why it is in this group
- The description's first verb is "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "infermedica_diagnosis" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "run": a word for a change.
Description, as the server wrote it Run the diagnostic engine over the collected evidence — returns the next question to ask, ranked candidate conditions with probabilities, and a should_stop flag. Non-mutating computation. Engine API: POST /diagnosis.
Annotations the server declares
- title: Compute diagnosis
- readOnlyHint: true
infermedica_parseExtract clinical mentions (symptoms / risk factors) and their states from free-text describing complaints, mapping them to Infermedica evidence ids (NLP).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Extract clinical mentions (symptoms / risk factors) and their states from free-text describing complaints, mapping them to Infermedica evidence ids (NLP). Non-mutating computation. Engine API: POST /parse.
Annotations the server declares
- title: Parse clinical text
- readOnlyHint: true
infermedica_recommend_specialistRecommend the most appropriate medical specialist and consultation channel for the collected evidence (accepts the same body as diagnosis/triage).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Recommend the most appropriate medical specialist and consultation channel for the collected evidence (accepts the same body as diagnosis/triage). Non-mutating computation. Engine API: POST /recommend_specialist.
Annotations the server declares
- title: Recommend specialist
- readOnlyHint: true
infermedica_suggestSuggest additional symptoms/observations the patient is likely to have, to speed up the interview.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Suggest additional symptoms/observations the patient is likely to have, to speed up the interview. Non-mutating computation. Engine API: POST /suggest.
Annotations the server declares
- title: Suggest observations
- readOnlyHint: true
infermedica_triageRecommend a triage level (emergency_ambulance | emergency | consultation_24 | consultation | self_care) plus any serious/emergency observations, given the evidence.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Recommend a triage level (emergency_ambulance | emergency | consultation_24 | consultation | self_care) plus any serious/emergency observations, given the evidence. Non-mutating computation. Engine API: POST /triage.
Annotations the server declares
- title: Compute triage
- readOnlyHint: true
Only reads 12Claude Code: allow
infermedica_explainExplain which evidence supports or conflicts with a given target condition, for the collected evidence.No findings
Why it is in this group
- The name "infermedica_explain" says "explain": a word for reading.
Description, as the server wrote it Explain which evidence supports or conflicts with a given target condition, for the collected evidence. Non-mutating computation. Engine API: POST /explain.
Annotations the server declares
- title: Explain condition
- readOnlyHint: true
infermedica_get_conditionGet a single condition by its id.No findings
Why it is in this group
- The name "infermedica_get_condition" says "get": a word for reading.
Description, as the server wrote it Get a single condition by its id. Engine API: GET /conditions/{id}.
Annotations the server declares
- title: Get condition
- readOnlyHint: true
infermedica_get_infoGet metadata about the current Infermedica medical model (version, last update, concept counts).No findings
Why it is in this group
- The name "infermedica_get_info" says "get": a word for reading.
Description, as the server wrote it Get metadata about the current Infermedica medical model (version, last update, concept counts). Engine API: GET /info.
Annotations the server declares
- title: Get model info
- readOnlyHint: true
infermedica_get_lab_testGet a single lab test by its id.No findings
Why it is in this group
- The name "infermedica_get_lab_test" says "get": a word for reading.
Description, as the server wrote it Get a single lab test by its id. Engine API: GET /lab_tests/{id}.
Annotations the server declares
- title: Get lab test
- readOnlyHint: true
infermedica_get_risk_factorGet a single risk factor by its id.No findings
Why it is in this group
- The name "infermedica_get_risk_factor" says "get": a word for reading.
Description, as the server wrote it Get a single risk factor by its id. Engine API: GET /risk_factors/{id}.
Annotations the server declares
- title: Get risk factor
- readOnlyHint: true
infermedica_get_symptomGet a single symptom by its id.No findings
Why it is in this group
- The name "infermedica_get_symptom" says "get": a word for reading.
Description, as the server wrote it Get a single symptom by its id. Engine API: GET /symptoms/{id}.
Annotations the server declares
- title: Get symptom
- readOnlyHint: true
infermedica_list_conditionsList all conditions (diseases) in the Infermedica medical model.No findings
Why it is in this group
- The name "infermedica_list_conditions" says "list": a word for reading.
Description, as the server wrote it List all conditions (diseases) in the Infermedica medical model. Engine API: GET /conditions.
Annotations the server declares
- title: List conditions
- readOnlyHint: true
infermedica_list_lab_testsList all lab tests (and their results) in the Infermedica medical model.No findings
Why it is in this group
- The name "infermedica_list_lab_tests" says "list": a word for reading.
Description, as the server wrote it List all lab tests (and their results) in the Infermedica medical model. Engine API: GET /lab_tests.
Annotations the server declares
- title: List lab tests
- readOnlyHint: true
infermedica_list_risk_factorsList all risk factors in the Infermedica medical model.No findings
Why it is in this group
- The name "infermedica_list_risk_factors" says "list": a word for reading.
Description, as the server wrote it List all risk factors in the Infermedica medical model. Engine API: GET /risk_factors.
Annotations the server declares
- title: List risk factors
- readOnlyHint: true
infermedica_list_symptomsList all symptoms in the Infermedica medical model (optionally age-filtered).No findings
Why it is in this group
- The name "infermedica_list_symptoms" says "list": a word for reading.
Description, as the server wrote it List all symptoms in the Infermedica medical model (optionally age-filtered). Engine API: GET /symptoms.
Annotations the server declares
- title: List symptoms
- readOnlyHint: true
infermedica_rationaleExplain WHY the diagnostic engine wants to ask its next question, given the evidence.No findings
Why it is in this group
- The description's first verb is "explain": a word for reading.
Description, as the server wrote it Explain WHY the diagnostic engine wants to ask its next question, given the evidence. Non-mutating computation. Engine API: POST /rationale.
Annotations the server declares
- title: Get question rationale
- readOnlyHint: true
infermedica_search_conceptsSearch the medical concept database for observations matching a phrase (autocomplete).No findings
Why it is in this group
- The name "infermedica_search_concepts" says "search": a word for reading.
Description, as the server wrote it Search the medical concept database for observations matching a phrase (autocomplete). Engine API: GET /search.
Annotations the server declares
- title: Search concepts
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http infermedica https://infermedica.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__infermedica__infermedica_list_symptoms",
"mcp__infermedica__infermedica_get_symptom",
"mcp__infermedica__infermedica_list_conditions",
"mcp__infermedica__infermedica_get_condition",
"mcp__infermedica__infermedica_list_risk_factors",
"mcp__infermedica__infermedica_get_risk_factor",
"mcp__infermedica__infermedica_list_lab_tests",
"mcp__infermedica__infermedica_get_lab_test",
"mcp__infermedica__infermedica_search_concepts",
"mcp__infermedica__infermedica_get_info",
"mcp__infermedica__infermedica_explain",
"mcp__infermedica__infermedica_rationale"
],
"ask": [
"mcp__infermedica__infermedica_diagnosis",
"mcp__infermedica__infermedica_triage",
"mcp__infermedica__infermedica_suggest",
"mcp__infermedica__infermedica_parse",
"mcp__infermedica__infermedica_recommend_specialist"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as infermedica. Review it before you use it.