Skip to main content
Glama
nalmarshedy

Dental Clinic Appointments MCP Server

by nalmarshedy

Dental Clinic Appointments MCP Server

A Model Context Protocol (MCP) server for managing dental clinic appointments with full CRUD operations. Stores appointments in a local JSON file with patient information, appointment types, and status tracking.

Features

  • Create dental appointments with patient information and appointment type

  • Read appointments (list all or get specific appointment)

  • Update existing appointments and status

  • Delete appointments

  • Filter appointments by date range, patient name, appointment type, dentist, or status

  • Track appointment status (scheduled, confirmed, completed, cancelled, no_show)

  • Support for multiple appointment types (checkup, cleaning, filling, root canal, etc.)

  • Local JSON file storage (no external dependencies)

Related MCP server: Appointment Manager MCP Server

Installation

  1. Install dependencies:

npm install
  1. Make the script executable (optional):

chmod +x index.js

Configuration

Add this server to your MCP settings file. The location depends on your client:

Claude Desktop (macOS)

Edit: ~/Library/Application Support/Claude/claude_desktop_config.json

Claude Desktop (Windows)

Edit: %APPDATA%\Claude\claude_desktop_config.json

Configuration Example

{
  "mcpServers": {
    "dental-appointments": {
      "command": "node",
      "args": ["/absolute/path/to/appointments-mcp/index.js"]
    }
  }
}

Important: Replace /absolute/path/to/appointments-mcp/ with the actual absolute path to this directory.

Available Tools

1. create_appointment

Create a new dental appointment.

Required Parameters:

  • patientName: Full name of the patient

  • patientPhone: Patient's phone number

  • date: Date in YYYY-MM-DD format

  • time: Time in HH:MM format (24-hour)

  • appointmentType: Type of appointment (see types below)

Optional Parameters:

  • patientEmail: Patient's email address

  • duration: Duration in minutes (default: 30)

  • dentist: Name of the assigned dentist

  • notes: Additional notes about the appointment

  • status: scheduled, confirmed, completed, cancelled, no_show (default: scheduled)

  • isNewPatient: Boolean indicating if this is a new patient

Appointment Types:

  • checkup - Regular dental checkup

  • cleaning - Teeth cleaning

  • filling - Cavity filling

  • root_canal - Root canal treatment

  • extraction - Tooth extraction

  • crown - Crown placement

  • whitening - Teeth whitening

  • orthodontics - Braces/orthodontic treatment

  • emergency - Emergency dental care

  • consultation - Initial consultation

  • other - Other procedures

Example:

{
  "patientName": "Sarah Johnson",
  "patientPhone": "+1-555-0123",
  "patientEmail": "sarah.j@email.com",
  "date": "2026-01-27",
  "time": "14:30",
  "duration": 60,
  "appointmentType": "root_canal",
  "dentist": "Dr. Smith",
  "notes": "Patient reported tooth sensitivity",
  "isNewPatient": false
}

2. list_appointments

List all appointments with optional filtering.

Parameters (all optional):

  • startDate: Filter appointments from this date (YYYY-MM-DD)

  • endDate: Filter appointments until this date (YYYY-MM-DD)

  • patientName: Filter by patient name (partial match)

  • appointmentType: Filter by specific appointment type

  • status: Filter by status

  • dentist: Filter by dentist name

Example:

{
  "startDate": "2026-01-25",
  "endDate": "2026-01-31",
  "status": "scheduled"
}

3. get_appointment

Get details of a specific appointment.

Parameters:

  • id: The appointment ID

Example:

{
  "id": "apt_1234567890_abc123def"
}

4. update_appointment

Update an existing appointment.

Parameters:

  • id (required): The appointment ID to update

  • All other fields from create_appointment (optional)

Example - Confirming an appointment:

{
  "id": "apt_1234567890_abc123def",
  "status": "confirmed"
}

Example - Rescheduling:

{
  "id": "apt_1234567890_abc123def",
  "date": "2026-01-28",
  "time": "10:00"
}

5. delete_appointment

Delete an appointment.

Parameters:

  • id: The appointment ID to delete

Example:

{
  "id": "apt_1234567890_abc123def"
}

Data Storage

Appointments are stored in appointments.json in the same directory as the server. The file is automatically created on first use.

Data Structure

[
  {
    "id": "apt_1737740400000_xyz789abc",
    "patientName": "Sarah Johnson",
    "patientPhone": "+1-555-0123",
    "patientEmail": "sarah.j@email.com",
    "date": "2026-01-27",
    "time": "14:30",
    "duration": 60,
    "appointmentType": "root_canal",
    "dentist": "Dr. Smith",
    "notes": "Patient reported tooth sensitivity",
    "status": "confirmed",
    "isNewPatient": false,
    "createdAt": "2026-01-24T17:00:00.000Z",
    "updatedAt": "2026-01-24T18:00:00.000Z"
  }
]

Usage Examples

Once configured, you can interact with the appointments through your MCP client:

Creating appointments:

  • "Create an appointment for John Doe tomorrow at 2pm for a dental cleaning. Phone is 555-0123."

  • "Schedule a root canal for Sarah Johnson on January 27th at 2:30pm with Dr. Smith"

  • "Book an emergency appointment for today at 4pm for Michael Brown, phone 555-0456"

Listing and searching:

  • "Show me all appointments for next week"

  • "List all scheduled appointments for tomorrow"

  • "Find appointments for patient Sarah Johnson"

  • "Show me all root canal appointments"

  • "List Dr. Smith's appointments for today"

Updating appointments:

  • "Confirm the appointment for Sarah Johnson tomorrow"

  • "Reschedule John's appointment to 3pm instead of 2pm"

  • "Mark appointment apt_xxx as completed"

  • "Change the status of the 2pm appointment to cancelled"

Managing appointments:

  • "Delete the cancelled appointment from yesterday"

  • "Get details for appointment apt_1234567890"

Common Workflows

Daily Schedule

"Show me all scheduled and confirmed appointments for today"

New Patient Booking

{
  "patientName": "New Patient Name",
  "patientPhone": "555-0123",
  "date": "2026-01-28",
  "time": "09:00",
  "appointmentType": "consultation",
  "isNewPatient": true,
  "notes": "First visit - full examination needed"
}

Appointment Confirmation Workflow

  1. List today's appointments: status: "scheduled"

  2. Contact patients to confirm

  3. Update each: status: "confirmed"

End of Day Review

  1. List today's appointments

  2. Mark completed: status: "completed"

  3. Mark no-shows: status: "no_show"

Troubleshooting

Server not appearing in Claude:

  • Check that the path in your config file is absolute, not relative

  • Restart Claude Desktop after updating the config

  • Check Claude Desktop logs for errors

Appointments not saving:

  • Ensure the directory has write permissions

  • Check for errors in the Claude Desktop logs

Validation errors:

  • Dates must be in YYYY-MM-DD format (e.g., "2026-01-25")

  • Times must be in HH:MM 24-hour format (e.g., "14:30")

  • Appointment type must be one of the valid types listed above

  • Status must be one of: scheduled, confirmed, completed, cancelled, no_show

License

ISC

Related MCP Connectors

Related MCP Servers