Medicos MCP
Manages all application data in Firebase Firestore and Storage, and sends push notifications via Firebase Cloud Messaging (FCM). Provides tools for patient profiles, medication schedules, adherence tracking, and notification delivery.
LLM provider used for parsing prescription images, medical intelligence, and scheduling tasks.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Medicos MCPschedule a morning medication reminder for patient 123"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Medicos MCP Backend
Python MCP server backend for the Hospital Medicine Reminder app.
Overview
Protocol: Model Context Protocol (MCP), Python implementation
Responsibilities:
Expose controlled tools for Firebase, OCR/parsing, medical intelligence, scheduling, notifications, adherence, and governance.
Enforce ArmorIQ intent checks and auditing for all sensitive operations.
Persist all application data in Firebase (Firestore + Storage) and send notifications via FCM.
High-Level Layout
mcp_server/main.py– MCP server entrypoint and tool registration.config.py– Environment-driven configuration (Firebase, ArmorIQ, LLM, etc.).firebase_client.py– Firebase Admin SDK initialization and helpers.armor_iq_client.py– ArmorIQ REST client forpolicy.check_intentandaudit.log.llm_client.py– Wrapper for LLM provider(s) used by parsing/medical/scheduling tools.models/– Pydantic models for tool inputs/outputs and shared context.tools/– Implementation of MCP tools, grouped by namespace.
Runtime Expectations
Python 3.10+ recommended.
MCP client (e.g. orchestrator agent) connects to this server over stdio or another supported transport.
The server is designed to run on your VPS, separate from the Flutter app and hospital dashboard.
Environment Variables
The server is configured via environment variables (all optional defaults documented in config.py):
MEDICOS_ENV–devorprod(default:dev).MEDICOS_FIREBASE_PROJECT_ID– Firebase project ID.MEDICOS_FIREBASE_CREDENTIALS_FILE– Path to Firebase service account JSON (if not using ADC).MEDICOS_ARMORIQ_API_KEY– API key for ArmorIQ (SDK handles endpoints internally based onMEDICOS_ENV).MEDICOS_LLM_PROVIDER– LLM provider identifier (e.g.openai,anthropic).MEDICOS_LLM_API_KEY– API key for the chosen LLM provider.
You can also use a local .env file in the repository root during development; see notes in config.py.
Getting Started
Option 1: Virtual Environment (Development)
Setup:
./setup.sh # Creates venv and installs dependencies
source .venv/bin/activateOr manually:
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install --upgrade pip setuptools wheel
pip install -r requirements.txtConfigure Environment:
Copy
env.exampleto.envand fill in your values:cp env.example .env # Edit .env with your actual valuesPlace your Firebase service account JSON in
./credentials/firebase-service-account.json
Run the Server:
python -m mcp_server.mainOption 2: Docker Compose (Production/VPS)
Prerequisites:
Docker and Docker Compose installed
Firebase service account JSON file
Setup:
Create credentials directory and add Firebase service account:
mkdir -p credentials cp /path/to/your/firebase-service-account.json credentials/Create
.envfile:cp env.example .env # Edit .env with your actual valuesBuild and run:
docker-compose build docker-compose up -d docker-compose logs -f mcp-server
Stop the container:
docker-compose downDocker Configuration:
The container runs as a non-root user (
mcpuser)Firebase credentials are mounted read-only from
./credentials/Environment variables can be set in
.envordocker-compose.ymlThe server runs over stdio (for MCP clients that support it)
Transport Modes
The MCP server supports two transport modes:
1. Stdio Transport (Default)
For direct process-to-process communication (e.g., Cursor, Claude Desktop):
{
"mcpServers": {
"medicos": {
"command": "python",
"args": ["-m", "mcp_server.main"],
"env": {
"MEDICOS_FIREBASE_PROJECT_ID": "...",
"MEDICOS_TRANSPORT": "stdio"
}
}
}
}2. HTTP Transport (Reverse Proxy)
For deployment behind a reverse proxy (e.g., mcp.p1ng.me):
Set environment variable:
MEDICOS_TRANSPORT=http MEDICOS_SERVER_PORT=8000Run the server:
python -m mcp_server.main # Server listens on http://0.0.0.0:8000Configure reverse proxy (using Caddy, nginx, or similar):
Point
mcp.p1ng.meto your VPSProxy
/mcp/streamand/mcp/messagetohttp://localhost:8000Set up SSL/TLS certificates
Connect clients to:
https://mcp.p1ng.me/mcp/stream
Troubleshooting
Import errors: Make sure dependencies are installed (
pip install -e .)Firebase errors: Verify service account JSON path and permissions
ArmorIQ errors: Check base URL and API key
LLM errors: Verify API key and provider name
Docker issues: Ensure credentials directory exists and contains valid JSON
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Unemployed-Nerds/medicos-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server