For AI agents: the documentation index is at /docs/termbox/llms.txt. A Markdown version of this page is available at /docs/termbox/mcp.md or by requesting it with the Accept: text/markdown header.
Termbox Docs

MCP Server

Termbox has a hosted Model Context Protocol server, so AI agents can search and check medical terminologies without you installing anything.

https://tx.health-samurai.io/mcp/sse

The server uses the content of Termbox SaaS, including SNOMED CT, LOINC and RxNorm. It requires no authentication today. It isn't part of the Termbox Docker image, so a local Termbox has no MCP endpoint.

To let an agent set up the connection and query Termbox for you, install the Termbox Skill:

npx skills add HealthSamurai/samurai-skills --skill termbox

Connect

In Claude Code:

claude mcp add --transport sse termbox https://tx.health-samurai.io/mcp/sse

In Claude on the web or desktop, add a custom connector with the same URL.

Many other clients, such as Cursor, use a JSON config like this. The exact format depends on the client:

{
  "mcpServers": {
    "termbox": {
      "url": "https://tx.health-samurai.io/mcp/sse"
    }
  }
}

The URL supports both SSE and Streamable HTTP.

Tools

ToolDescriptionParameters
find-codeSearches a terminology by text and returns up to 20 codessystem, filter
lookup-codeReturns a code's display, designations and propertiessystem, code
expand-valuesetLists the codes in a value seturl
search-rxnormSearches RxNorm by properties and relationships and returns up to 50 codessearch, include, exclude

Examples

Ask your agent in plain language.

Find a code

What is the LOINC code for heart rate?

The agent calls find-code and answers 8867-4, Heart rate.

{"system": "http://loinc.org", "filter": "heart rate"}

Look up a code

What does SNOMED CT code 44054006 mean?

The agent calls lookup-code and answers Type 2 diabetes mellitus.

{"system": "http://snomed.info/sct", "code": "44054006"}

List a value set

Which codes are in the FHIR administrative gender value set?

The agent calls expand-valueset and answers female, male, other and unknown.

{"url": "http://hl7.org/fhir/ValueSet/administrative-gender"}

Find drugs by ingredient

Find drugs that have caffeine and acetaminophen as ingredients.

The agent makes a chain of search-rxnorm calls:

  1. Find each ingredient's code, which gives 1886 for caffeine and 161 for acetaminophen:

    {"search": "caffeine", "include": [{"property": "tty", "op": "=", "value": "IN"}]}
    
  2. Find the combinations with both ingredients. This returned 35, including 108038, acetaminophen / caffeine:

    {"include": [
      {"property": "tty", "op": "=", "value": "MIN"},
      {"property": "has_part", "op": "=", "value": "CUI:161"},
      {"property": "has_part", "op": "=", "value": "CUI:1886"}
    ]}
    
  3. Find the drugs for a combination. For 108038 this returned 28, of which 10 are active, such as 307686, acetaminophen 500 MG / caffeine 65 MG Oral Tablet:

    {"include": [
      {"property": "tty", "op": "=", "value": "SCD"},
      {"property": "has_ingredients", "op": "=", "value": "CUI:108038"}
    ]}
    

These results are from RxNorm version 05042026, so the counts change between releases.

Limits

  • Search: text search matches words in the display text and doesn't understand synonyms. Results aren't ranked strictly by relevance, so an exact match isn't always first.
  • Result size: find-code and search-rxnorm have fixed limits and no pagination.
  • Inactive codes: results can include inactive codes, marked "inactive": true.
  • RxNorm relationships: relationship values need the CUI: prefix, such as CUI:161.
  • ECL: expand-valueset accepts hierarchy expressions such as http://snomed.info/sct?fhir_vs=ecl/<<703272007, but not attribute refinements. See ECL support.
  • SSE connections: an idle SSE connection closes after about 60 seconds, so the client has to reconnect.

Check results before using them. The server is a terminology tool and doesn't give clinical or coding advice.

Last updated: