drchrono
Read and write DrChrono patients, appointments, offices and clinical notes.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"drchrono": {
"url": "https://drchrono.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://drchrono.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (15)
🟢drchrono_list_patients(doctor, first_name, last_name, gender, date_of_birth, ...)
List/search patients in the practice, filterable by doctor, name, gender, date of birth, or last-modified time. Returns a page of patients plus `next`/`previous` URLs. DrChrono API: GET /patients.
Esquema de entrada
{
"type": "object",
"properties": {
"doctor": {
"description": "Filter by doctor id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"first_name": {
"description": "Filter by exact first name.",
"type": "string"
},
"last_name": {
"description": "Filter by exact last name.",
"type": "string"
},
"gender": {
"description": "Filter by gender (e.g. Male, Female, Other, Unknown/Blank).",
"type": "string"
},
"date_of_birth": {
"description": "Filter by date of birth, yyyy-mm-dd.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"since": {
"description": "Return patients modified at/after this ISO timestamp (e.g. 2026-01-01T00:00:00).",
"type": "string"
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_get_patient(id)
Fetch a single patient's full demographic record by id. DrChrono API: GET /patients/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Patient id (required)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_appointments(date, since, date_range, doctor, patient, ...)
List appointments. The DrChrono API requires at least one of `date`, `since`, or `date_range`. Further filter by doctor, patient, or office. Returns a page plus `next`/`previous`. DrChrono API: GET /appointments.
Esquema de entrada
{
"type": "object",
"properties": {
"date": {
"description": "Single day, yyyy-mm-dd. One of date / since / date_range is REQUIRED.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"since": {
"description": "Appointments modified at/after this ISO timestamp. One of date / since / date_range is REQUIRED.",
"type": "string"
},
"date_range": {
"description": "Inclusive range \"start/end\" as yyyy-mm-dd/yyyy-mm-dd, e.g. \"2026-01-01/2026-02-01\". One of date / since / date_range is REQUIRED.",
"type": "string"
},
"doctor": {
"description": "Filter by doctor id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"patient": {
"description": "Filter by patient id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"office": {
"description": "Filter by office id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_offices(show_archived, page, page_size)
List the practice's offices/locations. Returns a page plus `next`/`previous`. DrChrono API: GET /offices.
Esquema de entrada
{
"type": "object",
"properties": {
"show_archived": {
"description": "Include archived offices when true. Default false.",
"type": "boolean"
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_doctors(page, page_size)
List the providers/doctors in the practice (id, name, specialty). Returns a page plus `next`/`previous`. DrChrono API: GET /doctors.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_clinical_notes(patient, date, date_range, since, page, ...)
List clinical notes, filterable by patient, date, date range, or last-modified time. Returns a page plus `next`/`previous`. DrChrono API: GET /clinical_notes.
Esquema de entrada
{
"type": "object",
"properties": {
"patient": {
"description": "Filter by patient id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"date": {
"description": "Filter by a single day, yyyy-mm-dd.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_range": {
"description": "Inclusive range \"yyyy-mm-dd/yyyy-mm-dd\", e.g. \"2026-01-01/2026-02-01\".",
"type": "string"
},
"since": {
"description": "Notes modified at/after this ISO timestamp.",
"type": "string"
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_problems(patient, doctor, page, page_size)
List problem-list entries (diagnoses), filterable by patient or doctor. Returns a page plus `next`/`previous`. DrChrono API: GET /problems.
Esquema de entrada
{
"type": "object",
"properties": {
"patient": {
"description": "Filter by patient id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"doctor": {
"description": "Filter by doctor id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_medications(patient, doctor, page, page_size)
List patient medications, filterable by patient or doctor. Returns a page plus `next`/`previous`. DrChrono API: GET /medications.
Esquema de entrada
{
"type": "object",
"properties": {
"patient": {
"description": "Filter by patient id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"doctor": {
"description": "Filter by doctor id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_allergies(patient, doctor, page, page_size)
List patient allergies, filterable by patient or doctor. Returns a page plus `next`/`previous`. DrChrono API: GET /allergies.
Esquema de entrada
{
"type": "object",
"properties": {
"patient": {
"description": "Filter by patient id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"doctor": {
"description": "Filter by doctor id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_lab_results(doctor, patient, order, page, page_size)
List lab results, filterable by doctor, patient, or lab order. Returns a page plus `next`/`previous`. DrChrono API: GET /lab_results.
Esquema de entrada
{
"type": "object",
"properties": {
"doctor": {
"description": "Filter by doctor id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"patient": {
"description": "Filter by patient id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"order": {
"description": "Filter by lab order id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_lab_orders(doctor, patient, since, page, page_size)
List lab orders, filterable by doctor, patient, or last-modified time. Returns a page plus `next`/`previous`. DrChrono API: GET /lab_orders.
Esquema de entrada
{
"type": "object",
"properties": {
"doctor": {
"description": "Filter by doctor id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"patient": {
"description": "Filter by patient id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"since": {
"description": "Orders modified at/after this ISO timestamp.",
"type": "string"
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_patient_payments(doctor, patient, since, page, page_size)
List patient payments (billing), filterable by doctor, patient, or last-modified time. Returns a page plus `next`/`previous`. DrChrono API: GET /patient_payments.
Esquema de entrada
{
"type": "object",
"properties": {
"doctor": {
"description": "Filter by doctor id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"patient": {
"description": "Filter by patient id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"since": {
"description": "Payments modified at/after this ISO timestamp.",
"type": "string"
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢drchrono_list_line_items(appointment, doctor, patient, service_date, page, ...)
List billing line items (charges/procedures), filterable by appointment, doctor, patient, or service date. Returns a page plus `next`/`previous`. DrChrono API: GET /line_items.
Esquema de entrada
{
"type": "object",
"properties": {
"appointment": {
"description": "Filter by appointment id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"doctor": {
"description": "Filter by doctor id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"patient": {
"description": "Filter by patient id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"service_date": {
"description": "Filter by date of service, yyyy-mm-dd.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"page": {
"description": "Page number to fetch (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 250). Default 100.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴drchrono_create_appointment(doctor, patient, office, scheduled_time, duration, ...)
DESTRUCTIVE: creates a new appointment on the schedule. Requires doctor, patient, office, scheduled_time (ISO datetime), and duration (minutes). DrChrono API: POST /appointments.
Esquema de entrada
{
"type": "object",
"properties": {
"doctor": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Doctor id (required)."
},
"patient": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Patient id (required)."
},
"office": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Office id (required)."
},
"scheduled_time": {
"type": "string",
"description": "Appointment start as an ISO datetime, e.g. 2026-08-01T09:30:00 (required)."
},
"duration": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Duration in minutes (required)."
},
"exam_room": {
"description": "Exam room number.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"reason": {
"description": "Reason for the visit.",
"type": "string"
},
"notes": {
"description": "Free-text scheduling notes.",
"type": "string"
}
},
"required": [
"doctor",
"patient",
"office",
"scheduled_time",
"duration"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴drchrono_create_patient(first_name, last_name, gender, date_of_birth, doctor, ...)
DESTRUCTIVE: creates a new patient record. Requires first_name, last_name, gender, date_of_birth (yyyy-mm-dd), and doctor. DrChrono API: POST /patients.
Esquema de entrada
{
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "Patient first name (required)."
},
"last_name": {
"type": "string",
"description": "Patient last name (required)."
},
"gender": {
"type": "string",
"description": "Patient gender (required). DrChrono accepts Male, Female, Other, or Unknown/Blank."
},
"date_of_birth": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date of birth, yyyy-mm-dd (required)."
},
"doctor": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Primary doctor id (required)."
},
"email": {
"description": "Patient email address.",
"type": "string"
},
"cell_phone": {
"description": "Patient cell phone number.",
"type": "string"
}
},
"required": [
"first_name",
"last_name",
"gender",
"date_of_birth",
"doctor"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia