Skip to main content
Glama

AutoICD MCP Server

Give AI assistants the power of medical coding - ICD-10-CM, ICD-11, ICF, and LOINC diagnosis and functioning coding, chart audit (HCC gap capture, RADV, specificity, denial risk), cross-standard translate, unified reference lookup across ICD-10, ICD-11, ICF, LOINC, SNOMED CT, UMLS, and RxNorm, plus PHI de-identification via the AutoICD API.

An MCP (Model Context Protocol) server that connects AI assistants like Claude Desktop, Cursor, VS Code, and Windsurf to the AutoICD API for AI-powered medical coding, audit, and terminology lookup.

What's new - 2026-05-05

  • reference_lookup now covers SNOMED CT, UMLS, and RxNorm in addition to ICD-10-CM, ICD-11, ICF, and LOINC.

  • reference_search - new tool for free-text search of SNOMED CT, UMLS, and RxNorm.

  • The unified reference resource gives every record cross_references keyed by target system, so AI agents can pivot across vocabularies without extra calls.

Related MCP server: OMOP MCP Server

Why AutoICD API?

Feature

Details

AI-Powered Coding

Clinical text → ICD-10-CM, ICD-11, or ICF codes with NLP entity extraction

74,000+ ICD-10 Codes

Full ICD-10-CM 2025 code set with descriptions and hierarchy

ICD-11 Support

Search and look up ICD-11 codes with full ICD-10 ↔ ICD-11 crosswalk

ICF Functioning Codes

Code clinical text to WHO ICF categories, search 1,400+ codes, and access Core Sets for 12+ conditions

Negation Detection

Identifies negated, historical, uncertain, and family history mentions

Confidence Scoring

High/moderate confidence labels with cosine similarity scores

Spell Correction

Handles misspelled medical terms automatically

PHI De-identification

HIPAA-compliant removal of names, dates, SSNs, and more

Code Search

Full-text search across all ICD-10-CM codes and descriptions

SNOMED CT & UMLS

Cross-references and synonyms from standard medical terminologies

Get your API key at autoicdapi.com.

Setup

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "autoicd": {
      "command": "npx",
      "args": ["-y", "autoicd-mcp"],
      "env": {
        "AUTOICD_API_KEY": "sk_your_api_key"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project:

{
  "mcpServers": {
    "autoicd": {
      "command": "npx",
      "args": ["-y", "autoicd-mcp"],
      "env": {
        "AUTOICD_API_KEY": "sk_your_api_key"
      }
    }
  }
}

VS Code

Add to .vscode/mcp.json in your project:

{
  "servers": {
    "autoicd": {
      "command": "npx",
      "args": ["-y", "autoicd-mcp"],
      "env": {
        "AUTOICD_API_KEY": "sk_your_api_key"
      }
    }
  }
}

Windsurf

Add to your Windsurf MCP configuration:

{
  "mcpServers": {
    "autoicd": {
      "command": "npx",
      "args": ["-y", "autoicd-mcp"],
      "env": {
        "AUTOICD_API_KEY": "sk_your_api_key"
      }
    }
  }
}

Available Tools

code_diagnosis

Extract medical diagnoses from clinical text and map them to ICD-10-CM codes.

Parameters:

  • text (required) - Clinical text to process (progress notes, discharge summaries, etc.)

  • top_k (optional, 1-25, default: 5) - Number of top ICD-10 candidates per entity

  • include_negated (optional, default: true) - Include negated entities in results

Example prompts:

  • "Code this note: Patient presents with acute lower back pain radiating to the left leg. Denies any numbness or tingling."

  • "What ICD-10 codes apply to: 65-year-old male with type 2 diabetes, hypertension, and chronic kidney disease stage 3"

  • "Code the following discharge summary: Patient admitted for COPD exacerbation with acute respiratory failure. History of CHF and atrial fibrillation."

The tool will extract medical entities, detect negations ("denies numbness"), and return ranked ICD-10 code candidates with confidence scores.

search_codes

Search the ICD-10-CM 2025 code set by description.

Parameters:

  • query (required) - Search text to match against code descriptions

  • limit (optional, 1-100, default: 20) - Maximum results

  • offset (optional, default: 0) - Pagination offset

Example prompts:

  • "Search for ICD-10 codes related to congestive heart failure"

  • "Find all ICD-10 codes for diabetes"

  • "What ICD-10 codes are there for anxiety disorders?"

  • "Look up hypertension ICD-10 codes"

get_code

Get comprehensive details for a specific ICD-10-CM code.

Parameters:

  • code (required) - ICD-10-CM code (e.g., "E11.9", "I10", "J44.1")

Example prompts:

  • "Look up the details for ICD-10 code M54.5"

  • "What does ICD-10 code I10 mean?"

  • "Is E11.9 a billable code? What are its synonyms?"

  • "Show me the SNOMED CT mappings for code J44.1"

Returns descriptions, billable status, SNOMED CT and UMLS synonyms, parent/child hierarchy, chapter classification, and ICD-11 crosswalk mappings.

search_icd11_codes

Search the ICD-11 code set by description.

Parameters:

  • query (required) - Search text to match against ICD-11 code descriptions

  • limit (optional, 1-100, default: 10) - Maximum results

Example prompts:

  • "Search for ICD-11 codes related to diabetes"

  • "Find ICD-11 codes for respiratory infections"

  • "What are the ICD-11 codes for anxiety disorders?"

get_icd11_code

Get comprehensive details for a specific ICD-11 code, including ICD-10 crosswalk mappings.

Parameters:

  • code (required) - ICD-11 code (e.g., "5A11", "BA00", "CA40.0")

Example prompts:

  • "Look up ICD-11 code 5A11"

  • "What is the ICD-10 equivalent of ICD-11 code BA00?"

  • "Show me the details and crosswalk for ICD-11 code CA40.0"

Returns descriptions, Foundation URI, synonyms, parent/child hierarchy, chapter classification, and ICD-10 crosswalk mappings.

anonymize

De-identify Protected Health Information (PHI) in clinical text.

Parameters:

  • text (required) - Clinical text containing PHI

Example prompts:

  • "Remove all patient identifiers from this note: John Smith (DOB 03/15/1980) was seen at 123 Main St..."

  • "De-identify this clinical text before I share it: Maria Garcia, MRN 789012, SSN 123-45-6789, diagnosed with pneumonia"

Detects and replaces names, dates, SSNs, phone numbers, emails, addresses, MRNs, and ages with type labels like [NAME], [DATE], [SSN].

icf_lookup

Look up details for a specific ICF code.

Parameters:

  • code (required) - ICF code (e.g., "b730", "d450", "s110")

Example prompts:

  • "Look up ICF code b730"

  • "What does ICF code d450 mean?"

  • "Show me the definition of ICF code s110"

Returns title, definition, component, chapter, parent/child hierarchy, inclusions, exclusions, and index terms.

Search ICF codes by keyword.

Parameters:

  • query (required) - Search text to match against ICF code descriptions

  • limit (optional, 1-100, default: 20) - Maximum results

Example prompts:

  • "Search for ICF codes related to mobility"

  • "Find ICF codes for cognitive functions"

  • "What ICF codes are there for self-care activities?"

icf_core_set

Get the ICF Core Set for an ICD-10 diagnosis - a curated list of ICF categories relevant to a specific condition.

Parameters:

  • icd10_code (required) - ICD-10-CM code (e.g., "E11.9", "I63.9", "G35")

Example prompts:

  • "What ICF Core Set applies to diabetes (E11.9)?"

  • "Show me the ICF Core Set for stroke (I63.9)"

  • "Get the brief and comprehensive ICF Core Sets for multiple sclerosis (G35)"

Returns condition name, brief Core Set (key categories), and comprehensive Core Set (full assessment categories).

translate_code

Translate a code between healthcare coding systems. Forward from ICD-10 to ICD-11, SNOMED CT, UMLS, and ICF, plus reverse ICD-11 → ICD-10 and ICF → ICD-10. Built on CMS-published crosswalks, code-level SNOMED / UMLS concept IDs, and WHO ICF Core Sets.

Parameters:

  • code (required) - The source code (e.g., "E11.9" for ICD-10, "5A11" for ICD-11).

  • system (required) - "icd10", "icd11", "snomed", "umls", or "icf".

  • to (optional) - Array of target systems. Omit for every system reachable from the source.

Example prompts:

  • "Translate ICD-10 E11.9 to ICD-11 and SNOMED."

  • "What's the SNOMED CT and ICD-11 equivalent of diabetes code E11.9?"

  • "Reverse-translate ICD-11 5A11 back to ICD-10."

  • "Show me the ICF categories that map to ICD-10 I63.9."

Targets not reachable from the source are returned in unsupported_targets rather than as errors, so a broad target list is safe.

reference_lookup

Look up canonical reference data for a code in any supported coding system through a single tool. Returns the same detail payload as the per-system tools (get_code, get_icd11_code, icf_lookup, loinc_lookup), which remain available but are now deprecated.

Parameters:

  • system (required) - One of "icd-10-cm", "icd-11", "icf", "loinc", "snomed-ct", "umls", "rxnorm".

  • code (required) - Code in the chosen system.

Example prompts:

  • "Look up SNOMED CT concept 44054006."

  • "What is UMLS CUI C0011860?"

  • "Show me the RxNorm record for 860975 (metformin)."

  • "Use reference_lookup to get the canonical record for ICD-11 5A11."

SNOMED, UMLS, and RxNorm records carry cross_references to ICD-10, ICD-11, LOINC, and each other so agents can pivot across vocabularies without extra calls.

Free-text search the Neon-backed reference vocabularies (SNOMED CT, UMLS, RxNorm). Returns matching codes with display labels and a system-specific meta field (semantic tag for SNOMED, term type for RxNorm). JSON-backed systems (ICD-10-CM, ICD-11, ICF, LOINC) keep their per-system search tools.

Parameters:

  • system (required) - One of "snomed-ct", "umls", "rxnorm".

  • query (required) - Free-text search query.

  • limit (optional, 1-100, default: 20) - Maximum results.

Example prompts:

  • "Search SNOMED CT for 'chronic systolic heart failure'."

  • "Find UMLS concepts related to metformin."

  • "Look up RxNorm codes for 'lisinopril 10 mg tablet'."

audit_clinical_text

Audit a chart against submitted codes. Surfaces missed HCCs with RAF-weighted revenue estimates, unsupported codes (RADV exposure), specificity upgrades, denial risk flags, and a reconciled problem list. Every finding carries extractive evidence spans.

Parameters:

  • text (required) - Clinical text (progress note, discharge summary, H&P).

  • codes (required) - Array of { code, kind } the clinician submitted (e.g., [{ "code": "E11.9", "kind": "icd10" }]).

  • capabilities (optional) - Subset of ["hcc", "radv", "specificity", "denial", "problem_list"]. Defaults to all five.

  • patient_age, patient_sex, coverage (optional) - Enrich denial and HCC reasoning.

  • hcc_model (optional) - "v22", "v28", or "both" (default). Note: V24 is the ESRD-specific model and is not accepted here.

Example prompts:

  • "Audit this progress note. Codes submitted: E11.9, I50.9. Text: 68yo M, type 2 diabetes, chronic systolic CHF on furosemide, stage 3 CKD, proliferative diabetic retinopathy."

  • "Run an HCC-only gap analysis on this discharge summary. Submitted codes: [...]."

  • "Check this encounter for unsupported codes and denial risk. Patient is male, age 45."

Uses the CMS PY2026 V22 and V28 community models for HCC gap capture.

Common ICD-10 Codes

Here are some of the most commonly coded conditions you can look up with this MCP server:

Condition

Code

Description

Hypertension

I10

Essential (primary) hypertension

Type 2 Diabetes

E11.9

Type 2 diabetes mellitus without complications

Anxiety

F41.1

Generalized anxiety disorder

Depression

F32.9

Major depressive disorder, single episode

Low Back Pain

M54.5

Low back pain

COPD

J44.9

Chronic obstructive pulmonary disease

Heart Failure

I50.9

Heart failure, unspecified

UTI

N39.0

Urinary tract infection

Pneumonia

J18.9

Pneumonia, unspecified organism

Atrial Fibrillation

I48.91

Unspecified atrial fibrillation

Browse the full ICD-10-CM Code Directory or find codes by condition.

Configuration

Environment Variable

Required

Description

AUTOICD_API_KEY

Yes

Your AutoICD API key (starts with sk_)

AUTOICD_BASE_URL

No

Custom API base URL (default: https://autoicdapi.com)

Use Cases

  • EHR/EMR Integration - Automate diagnosis coding in electronic health record workflows

  • Medical Billing - Accelerate revenue cycle management with AI-assisted code assignment

  • Clinical Decision Support - Look up ICD-10 codes and hierarchies during clinical documentation

  • Health-Tech Development - Build and test medical coding features with live API access in your IDE

  • Research & Analytics - Search and explore the ICD-10-CM code set for epidemiological analysis

  • Compliance - De-identify clinical text before processing or sharing

Requirements

License

MIT

Available Tools

6 tools
anonymizeDe-identify Clinical Text (PHI Removal)A
Read-only

Detect and mask Protected Health Information (PHI) in clinical text. Replaces names, dates, SSNs, phone numbers, emails, addresses, MRNs, and ages with type labels like [NAME], [DATE], [SSN]. HIPAA-compliant de-identification.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesClinical text containing PHI to de-identify

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only and non-destructive behavior; the description adds valuable specifics about what entity types are detected (MRNs, ages, phone numbers) and the exact replacement format ('[NAME]', '[DATE]'). The HIPAA compliance claim adds important regulatory context not found in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two efficiently structured sentences with zero redundancy. The first states the core operation; the second details the specific PHI categories, replacement patterns, and compliance standard. Every clause conveys distinct, necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter text processing tool without an output schema, the description adequately covers the transformation logic (what gets replaced and with what). It would be marginally improved by explicitly stating that the tool returns the anonymized string, though this is reasonably implied by the 'replaces... with' phrasing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the input parameter 'text' is fully documented in the schema itself. The description implies the content should be clinical text but does not add additional semantic constraints, format requirements, or examples beyond what the schema provides, warranting the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Detect and mask') and clearly identifies the resource ('Protected Health Information in clinical text'). It effectively distinguishes itself from sibling code-lookup tools (get_code, search_codes, etc.) by specifying the domain is clinical text de-identification rather than medical coding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool ('HIPAA-compliant de-identification') and lists specific entity types handled (names, dates, SSNs, etc.). While it doesn't explicitly name alternatives to avoid, the domain focus makes the appropriate use case unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

code_diagnosisCode Clinical Text to ICD-10/ICD-11A
Read-only

Extract medical diagnoses from clinical text and map them to ICD-10-CM or ICD-11 codes. Identifies conditions, negations, historical mentions, family history, and severity. Returns ranked code candidates with confidence scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesClinical text to process (progress notes, discharge summaries, etc.)
top_kNoNumber of top code candidates per entity (1-25, default: 5)
include_negatedNoInclude negated entities in results (default: true)
output_systemNoOutput coding system: 'icd10' (default) or 'icd11'icd10

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations declare readOnlyHint=true and destructiveHint=false, the description adds valuable behavioral context: it discloses NLP capabilities (negation detection, historical mentions, family history, severity assessment) and output format (ranked candidates with confidence scores) that annotations do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two efficient sentences. The first sentence front-loads the core function (extraction and coding), while the second adds capability details (negations, severity) and output structure. Zero redundant words or tautologies.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a clinical NLP tool of moderate complexity, the description adequately covers the input domain, processing capabilities, and return format (compensating for the missing output schema). It could improve by mentioning input length constraints or privacy considerations given the PHI nature of clinical text, though the presence of the 'anonymize' sibling mitigates this gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the parameter details are fully documented in the schema itself. The description references 'clinical text' and coding systems which map to the text and output_system parameters, but does not add substantial semantic meaning beyond what the structured schema already provides, meeting the baseline for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Extract medical diagnoses from clinical text and map them to ICD-10-CM or ICD-11 codes,' providing specific verbs (extract, map) and resources (diagnoses, clinical text). It implicitly distinguishes from siblings like get_code/search_codes by emphasizing unstructured text processing vs. direct code lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying 'clinical text' (progress notes, discharge summaries), signaling when to use this over lookup-based siblings. However, it lacks explicit guidance contrasting with alternatives like 'use this when you have free text rather than a known diagnosis term.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_codeGet ICD-10 Code DetailsA
Read-onlyIdempotent

Get comprehensive details for a specific ICD-10-CM code including descriptions, billable status, SNOMED CT and UMLS synonyms, parent/child hierarchy, and chapter classification.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesICD-10-CM code (e.g., 'E11.9', 'I10', 'J44.1')

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive safety. The description adds valuable behavioral context by detailing exactly what comprehensive data is returned (billable flags, medical ontologies like SNOMED/UMLS, hierarchical relationships), helping the agent understand the tool's informational scope beyond generic 'details'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, dense sentence efficiently packs six distinct data categories (descriptions, billable status, two synonym types, hierarchy, classification) without filler. Every clause serves to specify the return payload or resource type.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description excellently compensates by enumerating the specific data fields and relationships returned (parent/child hierarchy, chapter classification, external ontologies). For a simple single-parameter lookup tool, this provides sufficient context for the agent to understand both input requirements and output value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is appropriately met. The description reinforces that the parameter should be a 'specific' code but does not add syntactic guidance, validation rules, or semantic nuances beyond what the schema's examples ('E11.9', 'I10') already provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Get' with clear resource 'ICD-10-CM code' and enumerates specific data returned (billable status, SNOMED CT/UMLS synonyms, hierarchy, chapter). It distinguishes from sibling 'get_icd11_code' by explicitly specifying 'ICD-10-CM' and from 'search_codes' by emphasizing 'specific' code retrieval versus search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While it lacks explicit 'when to use' statements, the phrase 'specific ICD-10-CM code' combined with the single required 'code' parameter clearly signals this is for lookup when the code is already known, implicitly contrasting with the 'search_codes' sibling. The ICD-10-CM specificity clearly differentiates from the ICD-11 variant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_icd11_codeGet ICD-11 Code DetailsA
Read-onlyIdempotent

Get comprehensive details for a specific ICD-11 code including descriptions, Foundation URI, synonyms, parent/child hierarchy, chapter classification, and ICD-10 crosswalk mappings.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesICD-11 code (e.g., '5A11', 'BA00', 'CA40.0')

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare read-only/idempotent/safe properties, so the description appropriately focuses on disclosing return data structure (descriptions, URIs, hierarchies, crosswalks) rather than safety; however, it omits behavioral details like caching, rate limits, or 'not found' error behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence that front-loads the action ('Get comprehensive details') and efficiently lists return components without redundancy; every clause serves to clarify the scope of 'comprehensive details.'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description compensates effectively by enumerating the specific data fields returned (hierarchy, crosswalks, etc.); for a single-parameter lookup tool with strong annotations, this provides sufficient context despite omitting error-handling specifics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage and the schema providing clear examples ('5A11', 'BA00'), the description meets the baseline expectation by referencing 'ICD-11 code' but adds minimal semantic clarification beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('ICD-11 code'), clearly distinguishing it from siblings like 'get_code' (generic) and 'search_icd11_codes' (search functionality) by emphasizing 'specific' code retrieval and enumerating exact return fields (Foundation URI, synonyms, hierarchy, crosswalks).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The term 'specific ICD-11 code' implies usage when an exact code is known, contrasting with the sibling 'search_icd11_codes', but the description lacks explicit when-to-use/when-not-to-use guidance or explicit naming of alternatives for code discovery scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_codesSearch ICD-10 CodesA
Read-onlyIdempotent

Search the ICD-10-CM 2025 code directory by description text. Returns matching codes with descriptions and billable status. Useful for finding specific diagnosis codes by keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query to match against ICD-10 code descriptions
limitNoMaximum results (1-100, default: 20)
offsetNoPagination offset (default: 0)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only, idempotent, non-destructive behavior. The description adds valuable behavioral context by disclosing return values ('matching codes with descriptions and billable status') which compensates for the missing output schema, and specifies the 2025 version of the directory being searched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences are perfectly weighted: first establishes core action, second discloses return structure (critical given no output schema), third provides usage context. No redundancy or wasted words. Information is front-loaded with the essential operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple search interface (3 params, 100% schema coverage) and strong annotations, the description is appropriately complete. It compensates for the missing output schema by describing return values, covers the specific version (ICD-10-CM 2025), and provides adequate context for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description mentions 'by description text' which aligns with the query parameter but does not add additional semantic context, examples, or usage notes beyond what the schema already provides for the three parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Search' with clear resource 'ICD-10-CM 2025 code directory' and scope 'by description text'. It distinguishes from siblings like search_icd11_codes and get_code by specifying the ICD-10-CM 2025 version and text-based search approach.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states it is 'Useful for finding specific diagnosis codes by keyword', providing implied usage context. However, it lacks explicit when-to-use guidance or named alternatives (e.g., does not mention to use get_code when the exact code is known).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_icd11_codesSearch ICD-11 CodesA
Read-onlyIdempotent

Search the ICD-11 code directory by description text. Returns matching codes with descriptions and Foundation URIs. Useful for finding specific ICD-11 diagnosis codes by keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query to match against ICD-11 code descriptions
limitNoMaximum results (1-100, default: 10)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety behavior. The description adds valuable functional context by specifying the return format: 'Returns matching codes with descriptions and Foundation URIs,' compensating for the lack of an output schema. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of three efficient sentences, each earning its place: (1) action and method, (2) return value disclosure, (3) usage context. It is front-loaded with the core action and contains no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of annotations (covering safety/idempotency), 100% schema coverage, and the explicit mention of return values (codes, descriptions, Foundation URIs) in the description, the tool is well-documented. Minor gap: pagination behavior or fuzzy vs exact matching semantics are not specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the input parameters are fully documented in the schema itself (query description covers the search text, limit covers the range). The description reinforces this with phrases like 'by description text' and 'by keyword,' but does not add syntax details or examples beyond the schema definitions, warranting the baseline score for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool 'Search[es] the ICD-11 code directory by description text' - a specific verb + resource + method combination. It distinguishes from sibling tools like get_icd11_code by specifying this is a search-by-text operation rather than a direct lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context stating it is 'Useful for finding specific ICD-11 diagnosis codes by keyword,' indicating when to use the tool. However, it does not explicitly name alternative tools (e.g., 'use get_icd11_code if you already know the exact code') or state exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: anonymize handles PHI detection/masking, code_diagnosis extracts diagnoses from text, get_code and get_icd11_code retrieve details for specific codes, and search_codes and search_icd11_codes perform keyword searches. The descriptions make it easy to differentiate between code retrieval vs. search vs. text processing functions.

Naming Consistency5/5

All tools follow a consistent snake_case naming pattern with clear verb_noun structure: anonymize (verb only, but clear), code_diagnosis (noun_verb), get_code/get_icd11_code (verb_noun), and search_codes/search_icd11_codes (verb_noun). The naming is predictable and follows the same conventions throughout.

Tool Count5/5

Six tools is well-scoped for this medical coding domain, covering core workflows: text anonymization, diagnosis extraction, code lookup (both ICD-10 and ICD-11), and code searching (both ICD-10 and ICD-11). Each tool earns its place without redundancy or obvious gaps.

Completeness5/5

The tool set provides complete coverage for medical coding workflows: starting with PHI anonymization of clinical text, extracting diagnoses from that text, searching for relevant codes, and retrieving detailed information about specific codes. Both major coding systems (ICD-10 and ICD-11) are supported consistently across lookup and search operations.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/fcggamou/autoicd-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server