Skip to content

eka-care/eka_mcp_server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eka MCP Server

Overview

Healthcare professionals frequently need to switch context to access additional information while treating patients. While AI can serve as a bridge to provide this information, there is an inherent risk of hallucination. The Eka MCP Server addresses this challenge by:

  • Grounding LLM responses in curated medical information from eka.care
  • Providing healthcare-specific tools validated by in-house doctors
  • Enabling secure access to real-time medication data and treatment protocols for the LLM

Key Benefits:

  • 🩺 Medical Accuracy: Ground AI responses in verified healthcare information
  • 🔄 Seamless Workflow: Access critical information without context switching
  • 🛡️ Reduced Hallucinations: Rely on curated medical data rather than AI's general knowledge
  • 🌐 Open Ecosystem: Part of the growing MCP open standard

Get Started

Get your developer key from eka.care

You can obtain the eka-api-host, client-id, and client-token from developer.eka.care or reach out to us on support@eka.care

Installation and Setup for Claude Desktop

  1. Install UV - https://docs.astral.sh/uv/getting-started/installation/#installation-methods

  2. Install Claude desktop application - https://claude.ai/download

  3. Run uvx pip install eka_mcp_server

  4. Locate the configuration file:

    • macOS: /Library/Application\ Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%/Claude/claude_desktop_config.json
  5. Modify the configuration file with the following settings:

{
  "mcpServers": {
    "eka-mcp-server": {
      "command": "uvx",
      "args": [
        "eka_mcp_server",
        "--eka-api-host",
        "<eka_api_host>",
        "--client-id",
        "<client_id>",
        "--client-secret",
        "<client_secret>"
      ]
    }, 
  }
}
  1. Replace the placeholder values:
    • <eka_api_host>: Eka API host URL
    • <client_id>: Your client ID
    • <client_secret>: Your client secret

Debugging

Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we recommend using the MCP Inspector.

You can launch the MCP Inspector via npm with this command:

npx @modelcontextprotocol/inspector uv --directory <eka_mcp_server_folder_path> run eka_assist

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

Tools

EKA MCP server tools are curated by the in-house doctors at eka.care and have been validated on an internal set of questionnaire

Medications tool suite

Medication Understanding tool

Tool definition here
MEDICATION_UNDERSTANDING_DESC = """
Search repository of drugs based on drug brand name, generic composition,
or form, to get detailed information about the drug.
Tool can provide information about a single drug, single or compound generics at a time.
Use this tool whenever any recommendation about medicines has to be given.
After the use of this tool, always respond with the name of the drug instead of
generic name response from the tool unless otherwise specified
"""

Access comprehensive information about drugs from a corpus of drugs based on the drug name or generic composition and filtered further through the drug form and volume.

Medication Understanding

APIs required for this tool

Medication Interaction

Tool definition here
MEDICATION_INTERACTION_DESC = """
Check for interactions between multiple drugs.
Tool can check interactions between 2 or more drugs.
The tools returns the interaction category X, A, B, C, D and the interacting drug pairs
"""

Check for potential interactions between drugs based on the X,A,B,C,D severity levels

  • Medication Interaction

APIs required for this tool

Treatment Protocols

Tool definition here
SEARCH_PROTOCOLS_DESC = f"""
Search the publicly available protocols and treatment guidelines for Indian patients.
When the query is about any of these tags/conditions:
{",".join(tags)}
requires output from following tools - protocol_publishers
Prerequisite before invoking the tool
1. Intent conformation
- No assumptions can be made about condition about based on symptoms solely.
- Ask the doctor if they would like symptomatic treatment or tag/condition driven
- Always confirm the suspected condition(s) with the doctor before searching protocols or treatments.
- Explicit conformation could be in patient's history or else the doctor's reference in the chat.
- While request conformation, provide the user with options of the potential conditions and request them to choose from them.
<example>
Example option provision:
1. DM2
2. Hypertension
</example>
- In case the confirmed condition is not in the list, then do not invoke the tool
2. Publisher retrieval
- Publisher preference should be asked before protocol search if it's not specified in the query, do not assume any publisher
- The publishers supported are dynamic and supported publishers can be fetched only from the tool protocol_publishers
- If the publisher list is empty, then do not invoke the tool
3. Publisher preference selection
- Once possible publishers are available, confirm which preferred publisher from the retrieved list should be queried
Key triggers for tool invocation:
- Questions about management protocols
- Screening recommendations
- Treatment guidelines
- Monitoring parameters
- Drug choices
- Follow-up schedules
Important notes:
- When asking for conformation of any kind, question cannot exceed 10 words
- Use exact condition names from the list
- Keep queries concise and specific
- Don't use question words in queries
- If results aren't relevant, rely on medical knowledge
"""
PROTOCOL_PUBLISHERS_DESC = f"""
Get all available publishers of protocols for the supported tags/conditions.
Accepts only {', '.join(tags)} these tags/conditions
"""

Standardized guidelines, procedures, and decision pathways for healthcare professionals are published by medical bodies. They serve as comprehensive roadmaps for clinical care, ensuring consistent and evidence-based treatment approaches.

Current Coverage:

  • 175 medical conditions/tags
  • 180 treatment protocols
  • Multiple authoritative publishers

Treatment Protocols Workflow

  1. For any given query, the LLM has to decide if the tag is supported or not through this API. During the init of the tool, we fetch the supported conditions.
  2. Then, for the given tag, the LLM has to get the publishers that address that tag through this API.
  3. Finally, with the tag, publisher and query, we fetch the relevant information from the repository of publishers through this API.

APIs required for this tool

  1. http://developer.eka.care/api-reference/eka_mcp/protocols/tags
  2. http://developer.eka.care/api-reference/eka_mcp/protocols/publishers_by_tag
  3. http://developer.eka.care/api-reference/eka_mcp/protocols/search

Tag Confirmation Publisher Confirmation Treatment Protocol

Bugs and Issue Reporting

Please report any issues or bugs on the GitHub issue tracker.

FAQ

Q: Can I use this without an eka.care account?

A: No, you need valid API credentials from eka.care to access the medical information.

Q: Is this service free?

A: While the MCP server code is open-source, access to eka.care's APIs required valid credentials.

Q: Which LLMs support MCP natively?

A: Currently, Anthropic's Claude models have native MCP support and also Cursor and Windsurf applications.