Teachworks MCP by usefulapi
Server Details
Read Teachworks students, families, tutors, lessons, invoices and payments; book lessons.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
24 toolsteachworks_add_student_to_lessonAdd student to lessonDestructiveInspect
WRITE: add a student to an existing lesson (the lesson must still be Scheduled). PUT /lessons/{id}/add_student.
| Name | Required | Description | Default |
|---|---|---|---|
| lesson_id | Yes | Lesson id. | |
| student_id | Yes | Student id to add. |
teachworks_create_child_studentCreate child studentDestructiveInspect
WRITE: create a child student under an existing family (the family is billed for their lessons). POST /students.
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| grade | No | ||
| school | No | ||
| status | No | ||
| last_name | Yes | ||
| birth_date | No | ||
| first_name | Yes | ||
| start_date | No | ||
| customer_id | Yes | The family (customer) id the student belongs to. | |
| mobile_phone | No | ||
| additional_notes | No | ||
| default_location_id | No | ||
| default_service_ids | No | Default service ids. | |
| default_teacher_ids | No | Default teacher (employee) ids. | |
| standard_subject_ids | No | Subject ids. |
teachworks_create_familyCreate familyDestructiveInspect
WRITE: create a family customer (the billed parent profile that child students belong to). Add children afterwards with teachworks_create_child_student. POST /customers/family.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | ||
| city | No | ||
| No | Primary email (notifications, user account). | ||
| state | No | ||
| status | No | Defaults to Active; use Prospective for leads. | |
| address | No | ||
| country | No | ||
| last_name | Yes | Family last name. | |
| first_name | Yes | Parent first name(s), e.g. 'Frank & Tina'. | |
| home_phone | No | ||
| mobile_phone | No | ||
| additional_notes | No |
teachworks_create_lessonCreate lessonDestructiveInspect
WRITE: schedule a single lesson on the calendar for one or more students with a teacher, service and location. Check teachworks_list_availabilities and teachworks_list_lessons first to avoid conflicts. POST /lessons.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Lesson name (defaults per Teachworks settings). | |
| spaces | No | Number of student spaces (group lessons). | |
| to_date | No | End date (defaults to from_date). | |
| to_time | Yes | End time, e.g. 17:00. | |
| from_date | Yes | Start date. | |
| from_time | Yes | Start time, e.g. 16:00. | |
| time_zone | No | Rails time zone name, e.g. 'Eastern Time (US & Canada)' (defaults to the account's). | |
| service_id | Yes | Service id (sets the default cost and wage). | |
| description | No | ||
| employee_id | Yes | Teacher (employee) id. | |
| location_id | No | Location id. | |
| student_ids | Yes | Student ids attending. |
teachworks_create_paymentRecord paymentDestructiveInspect
WRITE: record a payment received from a customer (bookkeeping only — it does not charge a card). POST /payments.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Payment date. | |
| amount | Yes | Amount paid. | |
| customer_id | Yes | Customer that paid. | |
| description | No | Details, e.g. 'Payment for INV-0216'. | |
| payment_method | No |
teachworks_get_customerGet customerRead-onlyInspect
Retrieve one customer (family or independent student) with contact details and custom fields. GET /customers/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer id. |
teachworks_get_employeeGet employeeRead-onlyInspect
Retrieve one employee (teacher or staff): contact details, subjects, wage type, bio, permissions. GET /employees/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| employee_id | Yes | Employee id. |
teachworks_get_employee_earningsGet employee earningsRead-onlyInspect
Total earnings of one employee (lessons, other events, other compensation, total) for an optional lesson status and date range. GET /employees/{id}/earnings.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Only lessons with this status. | |
| date_to | No | Lessons starting on or before this date. | |
| date_from | No | Lessons starting on or after this date. | |
| employee_id | Yes | Employee id. |
teachworks_get_invoiceGet invoiceRead-onlyInspect
Retrieve one invoice with its line items (lessons, charges), taxes and totals. GET /invoices/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | Invoice id. |
teachworks_get_lessonGet lessonRead-onlyInspect
Retrieve one lesson with its participants (students, statuses, charges, notes), teacher, wage and cost. GET /lessons/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| lesson_id | Yes | Lesson id. |
teachworks_get_lesson_totalsGet lesson totalsRead-onlyInspect
Lesson totals for one student, customer or employee: count (default), duration in minutes, or (employees only) earnings, broken down by status, for an optional status and date range. GET /{students|customers|employees}/{id}/lesson_totals.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The student, customer or employee id. | |
| kind | Yes | Whose lessons to total. | |
| status | No | Only lessons with this status. | |
| date_to | No | Lessons starting on or before this date. | |
| measure | No | count (default), duration (minutes) or earnings (employees only). | |
| date_from | No | Lessons starting on or after this date. |
teachworks_get_paymentGet paymentRead-onlyInspect
Retrieve one payment with its refunds and the invoices it is allocated to. GET /payments/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| payment_id | Yes | Payment id. |
teachworks_get_studentGet studentRead-onlyInspect
Retrieve one student profile: contact details, school/grade, billing, custom fields, default teachers/services. GET /students/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| student_id | Yes | Student id. |
teachworks_list_availabilitiesList teacher availabilityRead-onlyInspect
List teachers' weekly availability slots (day of week + start/end time). Use before scheduling a lesson. GET /availabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | Day of week, Sunday = 0 … Saturday = 6. | |
| page | No | Page number (1-based, default 1). | |
| per_page | No | Records per page (default 20, max 50). | |
| direction | No | Sort by id ascending (default) or descending (newest first). | |
| employee_id | No | Only this teacher's availability. |
teachworks_list_customersList customersRead-onlyInspect
List or search customers — the billed profiles: families (with child students) and independent students. Returns contact details, status and last invoice date. GET /customers.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | ||
| city | No | ||
| page | No | Page number (1-based, default 1). | |
| type | No | family or independent. | |
| No | Search by email. | ||
| state | No | ||
| status | No | ||
| country | No | ||
| per_page | No | Records per page (default 20, max 50). | |
| direction | No | Sort by id ascending (default) or descending (newest first). | |
| last_name | No | Search by last name. | |
| first_name | No | Search by first name. | |
| phone_number | No | Search by phone number. |
teachworks_list_employeesList employeesRead-onlyInspect
List or search employees — teachers/tutors and administrative staff — with subjects, status and wage settings. GET /employees.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | ||
| city | No | ||
| page | No | Page number (1-based, default 1). | |
| No | Search by email. | ||
| state | No | ||
| status | No | ||
| subject | No | Search by subject taught. | |
| per_page | No | Records per page (default 20, max 50). | |
| direction | No | Sort by id ascending (default) or descending (newest first). | |
| last_name | No | Search by last name. | |
| first_name | No | Search by first name. |
teachworks_list_invoicesList invoicesRead-onlyInspect
List invoices with customer, number, dates, status (Saved, Approved, Paid, Void) and totals. Filter by customer, status, invoice date or due date range. GET /invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based, default 1). | |
| due_to | No | Due date on or before (e.g. today, to find overdue invoices together with status Approved). | |
| number | No | Invoice number. | |
| status | No | ||
| date_to | No | Invoice date on or before. | |
| due_from | No | Due date on or after. | |
| per_page | No | Records per page (default 20, max 50). | |
| date_from | No | Invoice date on or after. | |
| direction | No | Sort by id ascending (default) or descending (newest first). | |
| customer_id | No | Only invoices of this customer. |
teachworks_list_lessonsList lessonsRead-onlyInspect
List lessons (the calendar) with teacher, service, location, start/end, duration, status and participants. Filter by teacher, student, location, service, status and date range. GET /lessons.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Search by lesson name. | |
| page | No | Page number (1-based, default 1). | |
| status | No | ||
| date_to | No | Lessons starting on or before this date. | |
| joinable | No | true = only lessons marked joinable. | |
| per_page | No | Records per page (default 20, max 50). | |
| date_from | No | Lessons starting on or after this date. | |
| direction | No | Sort by id ascending (default) or descending (newest first). | |
| from_date | No | Lessons starting on exactly this date. | |
| series_id | No | Only lessons of this repeating series. | |
| service_id | No | Only lessons of this service. | |
| student_id | No | Only lessons with this student. | |
| employee_id | No | Only lessons taught by this teacher (employee id). | |
| location_id | No | Only lessons at this location (exact). | |
| custom_status | No | Search by custom status (Custom Statuses add-on). | |
| include_deleted | No | true = include deleted lessons. | |
| location_or_parent_location_id | No | Lessons at this location or any of its sub-locations. |
teachworks_list_locationsList locationsRead-onlyInspect
List locations and sub-locations (rooms) where lessons take place. GET /locations.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Search by name. | |
| page | No | Page number (1-based, default 1). | |
| per_page | No | Records per page (default 20, max 50). | |
| direction | No | Sort by id ascending (default) or descending (newest first). |
teachworks_list_other_eventsList other eventsRead-onlyInspect
List non-lesson calendar events (meetings, open houses, staff work) with location, times and participants. GET /other_events.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based, default 1). | |
| date_to | No | Events starting on or before this date. | |
| per_page | No | Records per page (default 20, max 50). | |
| date_from | No | Events starting on or after this date. | |
| direction | No | Sort by id ascending (default) or descending (newest first). | |
| from_date | No | Events starting on exactly this date. | |
| series_id | No | Only events of this repeating series. | |
| employee_id | No | Only events of this employee. | |
| location_id | No | Only events at this location. |
teachworks_list_paymentsList paymentsRead-onlyInspect
List customer payments (amount, method, date, refunds, invoice allocations). Filter by customer and date range. GET /payments.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based, default 1). | |
| date_to | No | Payment date on or before. | |
| per_page | No | Records per page (default 20, max 50). | |
| date_from | No | Payment date on or after. | |
| direction | No | Sort by id ascending (default) or descending (newest first). | |
| customer_id | No | Only payments of this customer. |
teachworks_list_servicesList servicesRead-onlyInspect
List services (lesson types such as 'Math Tutoring') with their default cost and wage. GET /services.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Search by name. | |
| page | No | Page number (1-based, default 1). | |
| per_page | No | Records per page (default 20, max 50). | |
| direction | No | Sort by id ascending (default) or descending (newest first). |
teachworks_list_studentsList studentsRead-onlyInspect
List or search students (child students of families and independent students) with their school, grade, subjects, status, billing method and default teachers. GET /students.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based, default 1). | |
| type | No | family = child students, independent = independent students. | |
| No | Search by email. | ||
| grade | No | Search by grade. | |
| school | No | Search by school. | |
| status | No | ||
| subject | No | Search by subject. | |
| per_page | No | Records per page (default 20, max 50). | |
| direction | No | Sort by id ascending (default) or descending (newest first). | |
| last_name | No | Search by last name. | |
| first_name | No | Search by first name. | |
| customer_id | No | Only students of this customer/family id. | |
| phone_number | No | Search by phone number. |
teachworks_list_subjectsList subjectsRead-onlyInspect
List standard subjects (used on student and teacher profiles). GET /subjects.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Search by name (partial match). | |
| page | No | Page number (1-based, default 1). | |
| per_page | No | Records per page (default 20, max 50). | |
| direction | No | Sort by id ascending (default) or descending (newest first). |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
24 tool updates
- First observed
teachworks_add_student_to_lesson - First observed
teachworks_create_child_student - First observed
teachworks_create_family - First observed
teachworks_create_lesson - First observed
teachworks_create_payment - First observed
teachworks_get_customer - First observed
teachworks_get_employee - First observed
teachworks_get_employee_earnings - First observed
teachworks_get_invoice - First observed
teachworks_get_lesson - First observed
teachworks_get_lesson_totals - First observed
teachworks_get_payment - First observed
teachworks_get_student - First observed
teachworks_list_availabilities - First observed
teachworks_list_customers - First observed
teachworks_list_employees - First observed
teachworks_list_invoices - First observed
teachworks_list_lessons - First observed
teachworks_list_locations - First observed
teachworks_list_other_events - First observed
teachworks_list_payments - First observed
teachworks_list_services - First observed
teachworks_list_students - First observed
teachworks_list_subjects
Related MCP Connectors
Read Mindbody classes, schedules, clients, staff and sales; book clients and appointments.
Read time entries, projects, clients, tasks and invoices; log and update tracked time.
Read appointments, types, calendars and availability; create, cancel or reschedule bookings.
Read tasks, habits, events and scheduling links; create and update Reclaim tasks and habits.
Related MCP Servers
- FlicenseAqualityCmaintenanceEnables AI agents to manage tutoring workflows by listing students, tracking progress, logging session notes, assigning homework, and generating parent-friendly progress reports through natural language.5-
- AlicenseCqualityDmaintenanceGives MCP-aware AI tools read access to ClassQuill tutoring-business data via a read-only proxy over the ClassQuill public API.5944 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides tools to read and write Workiz CRM/Field Service data (jobs, leads, team, time off) enabling Claude to manage records via natural language.-
- FlicenseNot gradedqualityBmaintenanceExposes the full public TSheets REST API v1 as MCP tools, enabling time tracking, scheduling, and PTO management operations via natural language.-
Glama MCP Gateway
Add one secure layer between your agents and this server.