# Teachworks MCP Muse connector

From musedirectory.ai, the independent directory of Meta Muse connectors. Not affiliated with Meta.

## Teachworks MCP

Manage tutoring students, lessons, invoices and payments in Teachworks

- Record: https://musedirectory.ai/connector/teachworks-mcp
- Category: Productivity
- Developer: usefulapi (https://usefulapi.io/teachworks/)
- Muse status: Extra setup. Not in Muse's Connectors list yet. Muse can still use it: its page gives you a request to paste into Muse.
- Health: Working, 3207ms, checked 2026-10-29T10:45:47Z
- Endpoint: https://teachworks.usefulapi.io/mcp
- Auth: No account needed; Pricing: unknown
- Screening: Screened, no issues found (2026-10-29T12:41:40Z)
- Source: Found in the official MCP Registry (io.usefulapi/teachworks) https://registry.modelcontextprotocol.io/v0/servers?search=io.usefulapi%2Fteachworks

Connects to Teachworks tutoring management software. Muse can list and retrieve students, families, teachers, lessons, invoices and payments; create families and students; schedule lessons; and record payments.

Example request: "Show me all lessons scheduled for this week and add a new student to one of them."

How to connect: Not in Muse's Connectors list yet, but Muse can still use it. Paste this into Muse: "Use Teachworks MCP to help me. It is a free service with an MCP server at https://teachworks.usefulapi.io/mcp. It does not need an API key. Ask me before you share anything with it." Muse asks before it shares anything with the app's site. Meta does not review apps used this way, so only use ones you trust. We tested this in the Muse app on September 24, 2026: Muse used an app's link directly this way and returned a live answer.

Tools:
- teachworks_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: Retrieve one student profile: contact details, school/grade, billing, custom fields, default teachers/services. GET /students/{id}.
- teachworks_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: Retrieve one customer (family or independent student) with contact details and custom fields. GET /customers/{id}.
- teachworks_list_employees: List or search employees — teachers/tutors and administrative staff — with subjects, status and wage settings. GET /employees.
- teachworks_get_employee: Retrieve one employee (teacher or staff): contact details, subjects, wage type, bio, permissions. GET /employees/{id}.
- teachworks_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: 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: 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: Retrieve one lesson with its participants (students, statuses, charges, notes), teacher, wage and cost. GET /lessons/{id}.
- teachworks_list_other_events: List non-lesson calendar events (meetings, open houses, staff work) with location, times and participants. GET /other_events.
- teachworks_list_availabilities: List teachers' weekly availability slots (day of week + start/end time). Use before scheduling a lesson. GET /availabilities.
- teachworks_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: Retrieve one invoice with its line items (lessons, charges), taxes and totals. GET /invoices/{id}.
- teachworks_list_payments: List customer payments (amount, method, date, refunds, invoice allocations). Filter by customer and date range. GET /payments.
- teachworks_get_payment: Retrieve one payment with its refunds and the invoices it is allocated to. GET /payments/{id}.
- teachworks_list_locations: List locations and sub-locations (rooms) where lessons take place. GET /locations.
- teachworks_list_services: List services (lesson types such as 'Math Tutoring') with their default cost and wage. GET /services.
- teachworks_list_subjects: List standard subjects (used on student and teacher profiles). GET /subjects.
- teachworks_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 a child student under an existing family (the family is billed for their lessons). POST /students.
- teachworks_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 a student to an existing lesson (the lesson must still be Scheduled). PUT /lessons/{id}/add_student.
- teachworks_create_payment: WRITE: record a payment received from a customer (bookkeeping only — it does not charge a card). POST /payments.

Screening checks:
- MCP handshake: pass (Answered in 41ms)
- Domain against threat feeds (Cloudflare security DNS): pass (teachworks.usefulapi.io, usefulapi.io not flagged)
- Published packages against the OSV malicious-package database: n/a (No npm or PyPI package published)
- Hidden instructions or invisible characters in tool text: pass (24 tools read, nothing found)
- Inputs asking for passwords, card numbers or seed phrases: pass (None found)
- Domain and redirects: pass (No redirects off the domain)
- AI review of purpose and tool behavior: pass (No concerns)
