Skip to main content
Glama
bahmni-mcp

bahmni-mcp

bahmni-mcp

MCP server for Bahmni — exposes the OpenMRS/Bahmni REST API as tools that Claude can call directly.

Prerequisites

Install uv if you don't have it:

curl -LsSf https://astral.sh/uv/install.sh | sh

Related MCP server: OpenAPI MCP Server

Setup

Add this to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "bahmni": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/lingeswaranTW/bahmni-mcp-server.git",
        "bahmni-mcp"
      ],
      "env": {
        "BAHMNI_URL": "https://your-bahmni-instance/openmrs/ws",
        "BAHMNI_USER": "your_username",
        "BAHMNI_PASSWORD": "your_password"
      }
    }
  }
}

Claude Code users: edit ~/.claude.json and add the same mcpServers block.

Restart Claude Desktop. No files to download — uvx fetches and runs the server automatically.

Environment Variables

Variable

Description

BAHMNI_URL

Base URL of your Bahmni instance (e.g. https://bahmni.example.com/openmrs/ws)

BAHMNI_USER

Bahmni username

BAHMNI_PASSWORD

Bahmni password

Available Tools

19 tools
createOrUpdateEncounterTransactionC

Bundles observations, diagnoses, orders, and dispositions into a single transaction.

Inputs: body.

createOrUpdatePatientProfileC

Create or update patient demographics and identifiers.

Inputs: body.

deleteEncounterC

Void/delete an encounter

Inputs: uuid (required).

findEncountersC

Search for encounters by parameters.

Inputs: body.

getAddressHierarchyEntryC

Get address hierarchy entry

Inputs: uuid (required).

getAllLocationsB

Get all locations

Inputs: no named parameters.

getDiagnosesC

Get diagnoses for a patient.

Inputs: no named parameters.

getDiseaseTemplatesC

Get disease templates for a patient.

Inputs: body.

getDispositionA

Get disposition rules (admit/discharge/transfer).

Inputs: no named parameters.

getDrugByIdD

Get drug details

Inputs: uuid (required).

getDrugOrdersC

Get drug orders for a patient.

Inputs: no named parameters.

getObservationsC

Get observations for a visit or an encounter.

Inputs: concept, visitUuid, encounterUuid.

getPatientByIdB

Get patient by UUID

Inputs: uuid (required).

getSessionInfoA

Get current session info or validate authentication.

Inputs: no named parameters.

getVisitsForPatientC

Get visits for a patient

Inputs: patient.

manageVisitsC

Manage, open, or close visits.

Inputs: no named parameters.

searchOpenMRSConceptsD

Search standard concepts

Inputs: q.

searchPatientsD

Search patients

Inputs: q.

searchTerminologyConceptsD

Search concepts/terminology

Inputs: term, limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.3/5.0

    Scored across 19 tools

    Disambiguation4/5

    Most tools target distinct resources (patient, encounter, observation, etc.), but createOrUpdateEncounterTransaction bundles multiple data types including diagnoses and orders, causing potential overlap with individual getters. Overall, tools are mostly distinct.

    Naming Consistency3/5

    All names use camelCase and start with verbs (get, search, createOrUpdate), but verb choice is inconsistent (e.g., findEncounters vs getVisitsForPatient, manageVisits is vague). The pattern is readable but could be more uniform.

    Tool Count4/5

    19 tools is a reasonable scope for a healthcare MCP, covering core entities without being excessive. The count feels appropriate for the domain.

    Completeness2/5

    The tool surface heavily favors read operations; write operations are limited to patient profiles and a single composite encounter transaction. Missing separate create/update for observations, diagnoses, orders, etc., which will cause agent failures in common workflows.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A MCP server that exposes OpenAPI schema information to LLMs like Claude. This server allows an LLM to explore and understand large OpenAPI schemas through a set of specialized tools, without needing to load the whole schema into the context
      308 npm
      50
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A generic MCP server that dynamically converts OpenAPI-defined REST APIs into tools for LLMs like Claude. It supports multiple authentication methods and transport protocols, enabling seamless interaction with any OpenAPI-compliant API.
      15 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server for connecting Claude Desktop to FHIRfly healthcare reference data APIs, enabling lookup of drugs, providers, clinical codes, and more.
      89 npm
      MIT