Medicos
FreeNot checkedMCP server backend for a hospital medicine reminder app, offering tools for Firebase integration, OCR/parsing, medical intelligence, scheduling, notifications,
About
MCP server backend for a hospital medicine reminder app, offering tools for Firebase integration, OCR/parsing, medical intelligence, scheduling, notifications, adherence tracking, and governance with ArmorIQ intent enforcement.
README
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/activate
Or manually:
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install --upgrade pip setuptools wheel
pip install -r requirements.txt
Configure 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.main
Option 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 down
Docker 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.yml - The 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 VPS - Proxy
/mcp/streamand/mcp/messagetohttp://localhost:8000 - Set up SSL/TLS certificates
- Point
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
Installing Medicos
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/Unemployed-Nerds/medicos-mcpFAQ
Is Medicos MCP free?
Yes, Medicos MCP is free — one-click install via Unyly at no cost.
Does Medicos need an API key?
No, Medicos runs without API keys or environment variables.
Is Medicos hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Medicos in Claude Desktop, Claude Code or Cursor?
Open Medicos on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Medicos with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
