Read Teachworks students, families, tutors, lessons, invoices and payments; book lessons. Hosted by usefulapi — connect from Claude, Cursor, or any MCP client.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"teachworks": {
"url": "https://teachworks.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
teachworks_list_students | read | List students List or search students (child students of families and independent students) with their school, grade, subjects, status, billing method and default teachers. GET /students. |
teachworks_get_student | read | Get student Retrieve one student profile: contact details, school/grade, billing, custom fields, default teachers/services. GET /students/{id}. |
teachworks_list_customers | read | List customers List or search customers — the billed profiles: families (with child students) and independent students. Returns contact details, status and last invoice date. GET /customers. |
teachworks_get_customer | read | Get customer Retrieve one customer (family or independent student) with contact details and custom fields. GET /customers/{id}. |
teachworks_list_employees | read | List employees List or search employees — teachers/tutors and administrative staff — with subjects, status and wage settings. GET /employees. |
teachworks_get_employee | read | Get employee Retrieve one employee (teacher or staff): contact details, subjects, wage type, bio, permissions. GET /employees/{id}. |
teachworks_get_employee_earnings | read | Get employee earnings Total earnings of one employee (lessons, other events, other compensation, total) for an optional lesson status and date range. GET /employees/{id}/earnings. |
teachworks_get_lesson_totals | read | Get lesson totals 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. |
teachworks_list_lessons | read | List lessons 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. |
teachworks_get_lesson | read | Get lesson Retrieve one lesson with its participants (students, statuses, charges, notes), teacher, wage and cost. GET /lessons/{id}. |
teachworks_list_other_events | read | List other events List non-lesson calendar events (meetings, open houses, staff work) with location, times and participants. GET /other_events. |
teachworks_list_availabilities | read | List teacher availability List teachers' weekly availability slots (day of week + start/end time). Use before scheduling a lesson. GET /availabilities. |
teachworks_list_invoices | read | List invoices 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. |
teachworks_get_invoice | read | Get invoice Retrieve one invoice with its line items (lessons, charges), taxes and totals. GET /invoices/{id}. |
teachworks_list_payments | read | List payments List customer payments (amount, method, date, refunds, invoice allocations). Filter by customer and date range. GET /payments. |
teachworks_get_payment | read | Get payment Retrieve one payment with its refunds and the invoices it is allocated to. GET /payments/{id}. |
teachworks_list_locations | read | List locations List locations and sub-locations (rooms) where lessons take place. GET /locations. |
teachworks_list_services | read | List services List services (lesson types such as 'Math Tutoring') with their default cost and wage. GET /services. |
teachworks_list_subjects | read | List subjects List standard subjects (used on student and teacher profiles). GET /subjects. |
teachworks_create_family | write | Create family 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. |
teachworks_create_child_student | write | Create child student WRITE: create a child student under an existing family (the family is billed for their lessons). POST /students. |
teachworks_create_lesson | write | Create lesson 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. |
teachworks_add_student_to_lesson | write | Add student to lesson WRITE: add a student to an existing lesson (the lesson must still be Scheduled). PUT /lessons/{id}/add_student. |
teachworks_create_payment | write | Record payment WRITE: record a payment received from a customer (bookkeeping only — it does not charge a card). POST /payments. |
teachworks_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
teachworks_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED Teachworks tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Does not count against the meter. | |
teachworks_cancel_subscription | Cancel the Pro subscription Cancel the caller's Teachworks Pro subscription at the end of the paid period (no refund for the current period; unlimited calls continue until then, then the free tier applies). Requires confirm: true. Run teachworks_upgrade later to undo the cancel before the period ends. Does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper user | $9/mo · $90/yr | Unlimited |
Pro covers this Teachworks server only. Subscribe with teachworks_upgrade (it returns a Stripe Checkout link). Cancel any time with teachworks_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running teachworks_upgrade before then undoes the cancel. Or write to [email protected].
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.