This project builds and containerizes a Model Context Protocol (MCP) server for an Intelligent Intake and Triage system.
It supports dynamic routing, severity scoring, and category classification using configurable rules, with optional integration to LLM providers like Gemini for smarter intake understanding.
The server is designed for multi-industry usage (Healthcare, Finance, E-commerce) by switching configuration folders at runtime using environment variables and Docker volume mounts.
Create the main project and server directories:
mkdir intake-mcp
cd intake-mcp
mkdir mcp-server
cd mcp-serverCreate the taxonomy, severity, and routing configuration files:
mkdir -p config/healthcare
touch config/healthcare/taxonomy.json
touch config/healthcare/severity.yaml
touch config/healthcare/routing.jsonCreate the main Python server file and the requirements list:
touch mcp_server.py
touch requirements.txtAdd these dependencies to requirements.txt:
fastmcp
pyyaml
python-dotenv
httpx
starletteInstall the required packages and run the server:
pip install -r requirements.txt
python mcp_server.py✅ Expected Log:
🚀 Starting Intelligent Intake and Triage MCP Server...
- Status:
http://0.0.0.0:8000→ ✅ MCP is running - Health:
http://0.0.0.0:8000/health→OK
We use Docker to package the server and support multiple industries (Healthcare, Finance, E-commerce) via mounted external configurations.
- Default Config:
config/healthcare/(Bundled inside the image as a fallback) - External Config:
external-config/(Mounted at runtime for multi-industry support)
{
"default_destination": "General_Queue",
"severity_override": {
"min_score": 9,
"destination": "ER_Triage",
"priority": "HIGH"
},
"routes": [
{
"category": "emergency",
"threshold": 9,
"destination": "ER_Triage"
},
{
"category": "billing",
"threshold": 2,
"destination": "Billing_Department"
}
]
}severity_rules:
critical:
score: 10
keywords:
- chest pain
- unconscious
low:
score: 2
keywords:
- billing
- refund{
"taxonomy": [
{
"id": "emergency",
"keywords": ["chest pain", "heavy bleeding"]
},
{
"id": "billing",
"keywords": ["insurance", "refund"]
}
]
}Create a Dockerfile in the mcp-server folder, then build the image:
docker build -t intake-triage-server .Run using External Healthcare Config:
docker run -p 8000:8000 \
-v $(pwd)/external-config:/config \
-e CONFIG_PATH=/config/healthcare \
intake-triage-serverSwitching Industries (e.g., Finance): Simply change the CONFIG_PATH environment variable:
-e CONFIG_PATH=/config/financeCreate the client directory and files:
mkdir mcp-client
cd mcp-client
touch intake_mcp_client.py
touch requirements.txtAdd these to mcp-client/requirements.txt:
fastmcp
google-genai
httpxInstall Client Requirements:
pip install -r requirements.txtSet API Key:
export GOOGLE_API_KEY="YOUR_API_KEY_HERE"Run Client:
python intake_mcp_client.pyintake-mcp/
├── mcp-server/
│ ├── config/healthcare/
│ │ ├── taxonomy.json
│ │ ├── severity.yaml
│ │ └── routing.json
│ ├── external-config/
│ │ ├── healthcare/
│ │ └── finance/
│ ├── Dockerfile
│ ├── mcp_server.py
│ └── requirements.txt
└── mcp-client/
├── intake_mcp_client.py
└── requirements.txtThe MCP Server dynamically routes and processes data based on the domain. Below are examples of the server handling high-stakes intake in two different sectors.
🏥 Healthcare Intake | 💰 Finance Intake
The MCP server identifies document types, extracts key entities, and assigns priority levels (Triage) in real-time.

