Skip to main content
Glama

athenahealth MCP Server

tools.tsโ€ข9.84 kB
import { Tool } from '@modelcontextprotocol/sdk/types.js'; export const toolDefinitions: Tool[] = [ { name: 'search_patients', description: 'Search for patients by name, DOB, phone, or email', inputSchema: { type: 'object', properties: { firstname: { type: 'string', description: 'Patient first name' }, lastname: { type: 'string', description: 'Patient last name' }, dob: { type: 'string', description: 'Date of birth (YYYY-MM-DD)' }, phone: { type: 'string', description: 'Phone number' }, email: { type: 'string', description: 'Email address' }, limit: { type: 'number', description: 'Maximum number of results', default: 10 }, }, required: [], }, }, { name: 'check_drug_interactions', description: 'Check for drug interactions for a patient', inputSchema: { type: 'object', properties: { patient_id: { type: 'string', description: 'Patient ID' }, medications: { type: 'array', items: { type: 'string' }, description: 'List of medication names or RxNorm codes' }, }, required: ['patient_id', 'medications'], }, }, { name: 'create_prescription', description: 'Create a new prescription for a patient', inputSchema: { type: 'object', properties: { patient_id: { type: 'string', description: 'Patient ID' }, medication_name: { type: 'string', description: 'Medication name' }, dosage: { type: 'string', description: 'Dosage (e.g., "10mg")' }, route: { type: 'string', description: 'Route of administration (e.g., "oral")' }, frequency: { type: 'string', description: 'Frequency (e.g., "twice daily")' }, quantity: { type: 'string', description: 'Quantity to dispense' }, refills: { type: 'string', description: 'Number of refills' }, days_supply: { type: 'string', description: 'Days supply' }, pharmacy_id: { type: 'string', description: 'Pharmacy ID (optional)' }, notes: { type: 'string', description: 'Additional notes (optional)' }, }, required: ['patient_id', 'medication_name', 'dosage', 'route', 'frequency', 'quantity', 'refills', 'days_supply'], }, }, { name: 'create_appointment', description: 'Create a new appointment for a patient', inputSchema: { type: 'object', properties: { patient_id: { type: 'string', description: 'Patient ID' }, provider_id: { type: 'string', description: 'Provider ID' }, department_id: { type: 'string', description: 'Department ID' }, appointment_type: { type: 'string', description: 'Appointment type' }, date: { type: 'string', description: 'Appointment date (YYYY-MM-DD)' }, start_time: { type: 'string', description: 'Start time (HH:MM)' }, duration: { type: 'string', description: 'Duration in minutes (optional)' }, reason: { type: 'string', description: 'Reason for visit (optional)' }, notes: { type: 'string', description: 'Appointment notes (optional)' }, }, required: ['patient_id', 'provider_id', 'department_id', 'appointment_type', 'date', 'start_time'], }, }, { name: 'acknowledge_alert', description: 'Acknowledge a clinical alert', inputSchema: { type: 'object', properties: { alert_id: { type: 'string', description: 'Alert ID' }, acknowledged_by: { type: 'string', description: 'User acknowledging the alert' }, }, required: ['alert_id', 'acknowledged_by'], }, }, { name: 'get_clinical_summary', description: 'Get a comprehensive clinical summary for a patient', inputSchema: { type: 'object', properties: { patient_id: { type: 'string', description: 'Patient ID' }, include_allergies: { type: 'boolean', description: 'Include allergies', default: true }, include_problems: { type: 'boolean', description: 'Include problems', default: true }, include_prescriptions: { type: 'boolean', description: 'Include prescriptions', default: true }, include_vitals: { type: 'boolean', description: 'Include vitals', default: true }, include_labs: { type: 'boolean', description: 'Include lab results', default: true }, include_alerts: { type: 'boolean', description: 'Include clinical alerts', default: true }, }, required: ['patient_id'], }, }, { name: 'list_departments', description: 'List all departments in the practice', inputSchema: { type: 'object', properties: {}, required: [], }, }, { name: 'list_providers', description: 'List all healthcare providers in the practice', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum number of results', default: 50 }, name: { type: 'string', description: 'Filter by provider name' }, specialty: { type: 'string', description: 'Filter by specialty' }, }, required: [], }, }, { name: 'check_appointment_availability', description: 'Check available appointment slots for a department and date range', inputSchema: { type: 'object', properties: { department_id: { type: 'string', description: 'Department ID' }, provider_id: { type: 'string', description: 'Provider ID (optional - leave empty to check all providers)' }, appointment_type: { type: 'string', description: 'Appointment type (optional)' }, start_date: { type: 'string', description: 'Start date (YYYY-MM-DD)' }, end_date: { type: 'string', description: 'End date (YYYY-MM-DD)' }, }, required: ['department_id', 'start_date', 'end_date'], }, }, { name: 'create_patient', description: 'Register a new patient in the system', inputSchema: { type: 'object', properties: { firstname: { type: 'string', description: 'Patient first name' }, lastname: { type: 'string', description: 'Patient last name' }, dob: { type: 'string', description: 'Date of birth (MM/DD/YYYY or YYYY-MM-DD)' }, sex: { type: 'string', description: 'Sex (M or F)' }, department_id: { type: 'string', description: 'Primary department ID' }, email: { type: 'string', description: 'Email address (optional)' }, mobile_phone: { type: 'string', description: 'Mobile phone number (optional)' }, home_phone: { type: 'string', description: 'Home phone number (optional)' }, address1: { type: 'string', description: 'Street address (optional)' }, city: { type: 'string', description: 'City (optional)' }, state: { type: 'string', description: 'State (optional)' }, zip: { type: 'string', description: 'ZIP code (optional)' }, guarantor_firstname: { type: 'string', description: 'Guarantor first name (optional)' }, guarantor_lastname: { type: 'string', description: 'Guarantor last name (optional)' }, guarantor_dob: { type: 'string', description: 'Guarantor date of birth (optional)' }, guarantor_relationship: { type: 'string', description: 'Relationship to patient: 1=Self, 2=Spouse, 3=Child, 4=Other (optional)' }, }, required: ['firstname', 'lastname', 'dob', 'sex', 'department_id'], }, }, { name: 'get_patient_encounters', description: 'Get all encounters for a patient', inputSchema: { type: 'object', properties: { patient_id: { type: 'string', description: 'Patient ID' }, department_id: { type: 'string', description: 'Filter by department ID (optional)' }, start_date: { type: 'string', description: 'Start date filter (YYYY-MM-DD) (optional)' }, end_date: { type: 'string', description: 'End date filter (YYYY-MM-DD) (optional)' }, status: { type: 'string', description: 'Filter by status: OPEN, CLOSED, SIGNED (optional)' }, }, required: ['patient_id'], }, }, { name: 'get_encounter', description: 'Get details of a specific encounter', inputSchema: { type: 'object', properties: { encounter_id: { type: 'string', description: 'Encounter ID' }, }, required: ['encounter_id'], }, }, { name: 'create_encounter', description: 'Create a new encounter for a patient', inputSchema: { type: 'object', properties: { patient_id: { type: 'string', description: 'Patient ID' }, department_id: { type: 'string', description: 'Department ID' }, provider_id: { type: 'string', description: 'Provider ID (optional)' }, encounter_date: { type: 'string', description: 'Encounter date (YYYY-MM-DD)' }, encounter_type: { type: 'string', description: 'Type of encounter (optional)' }, chief_complaint: { type: 'string', description: 'Chief complaint (optional)' }, appointment_id: { type: 'string', description: 'Associated appointment ID (optional)' }, }, required: ['patient_id', 'department_id', 'encounter_date'], }, }, { name: 'update_encounter', description: 'Update an existing encounter', inputSchema: { type: 'object', properties: { encounter_id: { type: 'string', description: 'Encounter ID' }, chief_complaint: { type: 'string', description: 'Chief complaint (optional)' }, diagnosis_codes: { type: 'string', description: 'Comma-separated ICD-10 diagnosis codes (optional)' }, procedure_codes: { type: 'string', description: 'Comma-separated CPT procedure codes (optional)' }, status: { type: 'string', description: 'Status: OPEN, CLOSED, SIGNED (optional)' }, }, required: ['encounter_id'], }, }, ];

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/ophydami/Athenahealth-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server