split each MCP server into tools/resources/prompts modules
This commit is contained in:
54
mcp_servers/shared/prompts.py
Normal file
54
mcp_servers/shared/prompts.py
Normal file
@@ -0,0 +1,54 @@
|
||||
"""Prompts for the shared MCP server."""
|
||||
|
||||
from mcp_servers.shared.server import mcp
|
||||
|
||||
DELAY_TEMPLATES = {
|
||||
("WEATHER", "passenger"): (
|
||||
"Explain this flight delay to a passenger. The cause is weather-related. "
|
||||
"Be empathetic and transparent. Include what's happening with the weather, "
|
||||
"what the airline is doing about it, and what the passenger should expect next. "
|
||||
"Do not use aviation jargon."
|
||||
),
|
||||
("WEATHER", "ops_manager"): (
|
||||
"Summarize this weather-caused delay for an ops manager. "
|
||||
"Include: delay cause code, affected systems, GDP/ground stop status if applicable, "
|
||||
"forecast window, and recommended next actions. Be concise."
|
||||
),
|
||||
("MAINTENANCE", "passenger"): (
|
||||
"Explain this maintenance-caused delay to a passenger. "
|
||||
"Be reassuring — emphasize safety. Describe what's being checked "
|
||||
"without technical jargon. Give expected timeline if available."
|
||||
),
|
||||
("MAINTENANCE", "ops_manager"): (
|
||||
"Summarize this maintenance delay for an ops manager. "
|
||||
"Include: MEL item, system affected, restriction details, "
|
||||
"estimated release time, and downstream impact."
|
||||
),
|
||||
("CREW", "passenger"): (
|
||||
"Explain this crew-related delay to a passenger. "
|
||||
"Frame it as 'ensuring your crew is fully rested for safe operation.' "
|
||||
"Do not mention specific regulations or duty limits."
|
||||
),
|
||||
("CREW", "ops_manager"): (
|
||||
"Summarize this crew-caused delay for an ops manager. "
|
||||
"Include: Part 117 status, hours remaining, swap options, "
|
||||
"backup crew availability, and timeline."
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
@mcp.prompt()
|
||||
def delay_explainer(cause_code: str, audience: str) -> str:
|
||||
"""Turns a raw delay cause code into a human-readable explanation prompt.
|
||||
|
||||
cause_code: WEATHER | MAINTENANCE | CREW | ATC | LATE_AIRCRAFT
|
||||
audience: passenger | ops_manager
|
||||
"""
|
||||
key = (cause_code.upper(), audience.lower())
|
||||
default_key = ("WEATHER", audience.lower())
|
||||
template = DELAY_TEMPLATES.get(key, DELAY_TEMPLATES.get(default_key, ""))
|
||||
return (
|
||||
f"{template}\n\n"
|
||||
"Use the operational data provided below. Do not invent details. "
|
||||
"If data is missing for a section, omit that section."
|
||||
)
|
||||
Reference in New Issue
Block a user