Eka.care MCP SDK
Python库和自托管MCP服务器,将Eka.care的医疗保健API暴露给LLM应用程序。将其用作您自己项目中的可导入库,或直接作为独立的MCP服务器运行。
📚 文档
- 开发者指南 -面向开发人员的综合指南
- 架构与设置(CLAUDE.md) - 日志记录指南(LOGGING.md) - 测试指南(测试指南.md) - 工具选择指南(工具_选择_GUIDE.md)
特性
- 可导入库:在Python应用程序中直接使用服务和客户端
- 自托管MCP服务器:对于Claude Desktop和其他MCP客户端,以stdio或HTTP运行
- 模块化架构:易于通过附加API模块进行扩展
- 简单身份验证:客户端ID/Secret+可选API密钥身份验证
- 全面的错误处理:直接转发Eka.care API错误以提高透明度
- LLM优化响应:针对LLM消费优化的结构化数据格式
- 多租户工作区路由:将请求路由到不同的客户端实现
支持的API模块
医生工具
- 预约管理:创建、更新和检索约会
- 数字处方:生成和管理数字处方
- 病历记录:访问和管理患者病历
- 处方历史:检索患者处方历史记录
可扩展模块
您可以轻松添加更多API模块,如:
- ABDM连接器:健康ID创建、同意管理、健康记录共享
- 自我评估:健康调查、症状检查、记录分析
- 自定义模块:使用基本客户端架构构建自己的
安装
作为图书馆(在您的项目中)
# Latest from main
pip install git+https://github.com/eka-care/eka-mcp-sdk.git@main
# Or pin to a specific release tag
pip install git+https://github.com/eka-care/eka-mcp-sdk.git@v0.1.0随着 uv:
uv add "eka-mcp-sdk @ git+https://github.com/eka-care/eka-mcp-sdk.git@main"用于本地开发/自托管服务器
git clone https://github.com/eka-care/eka-mcp-sdk.git
cd eka-mcp-sdk
# Install with UV (recommended)
uv sync
# Or with pip
pip install -e .配置
创建一个 .env 文件:
# API Configuration
EKA_API_BASE_URL=https://api.eka.care
# Authentication (get from ekaconnect@eka.care)
EKA_CLIENT_ID=your_client_id
EKA_CLIENT_SECRET=your_client_secret
EKA_API_KEY=your_api_key # Optional
# Server configuration
EKA_MCP_SERVER_HOST=localhost
EKA_MCP_SERVER_PORT=8000
EKA_LOG_LEVEL=INFO用作Python库
from eka_mcp_sdk.services import PatientService, AppointmentService
from eka_mcp_sdk.clients.eka_emr_client import EkaEMRClient
client = EkaEMRClient()
patient_service = PatientService(client)
result = await patient_service.search_patients("john")对于同步上下文(例如CrewAI):
from eka_mcp_sdk.lib import search_patients_sync, get_appointments_enriched_sync
patients = search_patients_sync("john", limit=10)作为MCP服务器运行
source .venv/bin/activate # On macOS/Linux
# stdio (for Claude Desktop)
eka-mcp-server
# HTTP mode
eka-mcp-server --transport http --host 0.0.0.0 --port 8000
# Or alternatively
python -m eka_mcp_sdk.server使用Claude Desktop
添加到您的Claude Desktop MCP配置中。 重要:使用虚拟环境Python可执行文件的完整路径:
{
"mcpServers": {
"eka-care": {
"command": "/absolute/path/to/eka-mcp-sdk/.venv/bin/python",
"args": ["-m", "eka_mcp_sdk.server"],
"env": {
"EKA_CLIENT_ID": "your_client_id",
"EKA_CLIENT_SECRET": "your_client_secret",
"EKA_API_KEY": "your_api_key"
}
}
}
}替代配置(如果eka mcp服务器在PATH中)
如果您全局安装了该包或将虚拟环境添加到PATH中:
{
"mcpServers": {
"eka-care": {
"command": "eka-mcp-server",
"env": {
"EKA_CLIENT_ID": "your_client_id",
"EKA_CLIENT_SECRET": "your_client_secret",
"EKA_API_KEY": "your_api_key"
}
}
}
}API文档
医生工具示例
# Create an appointment
create_appointment(
doctor_id="doc-456",
patient_id="patient-789",
appointment_date="2024-01-15",
appointment_time="10:30",
appointment_type="consultation"
)
# Generate a prescription
generate_prescription(
patient_id="patient-789",
doctor_id="doc-456",
medications=[
{
"name": "Amoxicillin",
"dosage": "500mg",
"frequency": "3 times daily",
"duration": "7 days"
}
],
diagnosis="Upper respiratory infection",
instructions="Take with food. Complete the full course."
)
# Get patient records
get_patient_records(
patient_id="patient-789",
record_type="lab_reports"
)构建托管解决方案
此SDK支持 多租户工作空间路由 其中不同的客户端(Eka、Moolchand等)可以将相同的工具与自己的API实现一起使用。
建筑
Tools (client-agnostic) → Services → Client (all orchestration + API calls)
↑
ClientFactory.create_client(workspace_id)创建新客户端
1.实施 BaseEMRClient:
# eka_mcp_sdk/clients/moolchand_client.py
from .base_emr_client import BaseEMRClient
class MoolchandClient(BaseEMRClient):
def get_workspace_name(self) -> str:
return "moolchand"
# Implement all abstract methods with your API logic
async def doctor_availability_elicitation(self, ...): ...
async def book_appointment_with_validation(self, ...): ...2.通过环境配置:
# Map workspace IDs to client classes (JSON format)
WORKSPACE_CLIENT_DICT={"moolchand": "eka_mcp_sdk.clients.moolchand_client.MoolchandClient"}
# Default workspace when no header present
EKA_WORKSPACE_CLIENT_TYPE=ekaemr3.工作区布线 通过以下方式自动发生 x-eka-jwt-payload 标题包含 w-id.
发展
git clone https://github.com/eka-care/eka-mcp-sdk.git
cd eka-mcp-sdk
# Install with development dependencies
uv sync --extra dev
# Run tests
uv run pytest
# Format code
uv run black .
uv run isort .
# Type checking
uv run mypy .添加新的API模块
- 在中创建客户端
eka_mcp_sdk/clients/ - 在中实施MCP工具
eka_mcp_sdk/tools/ - 在中注册工具
server.py - 更新文档
运行示例
python examples/direct_usage.py
python examples/crewai_usage.py # Requires: uv add crewai
cat examples/MCP_USAGE.md配置参考
| 环境变量 | 描述 | 默认值 |
|---|---|---|
EKA_API_BASE_URL | Eka.care API基础URL | https://api.eka.care |
EKA_CLIENT_ID | 来自Eka.care的客户ID | 必填 |
EKA_CLIENT_SECRET | 来自Eka.care的客户机密 | 必填 |
EKA_API_KEY | 用于附加身份验证的API密钥 | 可选 |
EKA_MCP_SERVER_HOST | MCP服务器主机 | localhost |
EKA_MCP_SERVER_PORT | MCP服务器端口 | 8000 |
EKA_LOG_LEVEL | 日志记录级别 | INFO |
故障排除
Git标签版本控制(阴影vcs)
- 标签必须遵循PEP 440:
v0.2.0a1,v0.2.0rc1,v0.2.0.dev1--不是v0.1.0-test - 如果同一提交中的有效标签旁边存在无效标签,
setuptools_scm可以选择无效的→ 删除坏标签:git push origin --delete - 修复标签后,清除uv的构建缓存:
uv cache clean
______________________________________________________________________
支持
- 文档: developer.eka.care
- 电子邮件: ekaconnect@eka.care
- 问题:
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
