# Teachworks MCP

> Teachworks connects your tutoring management platform to your AI client. It lets you list students, check teacher availability, and schedule lessons—all through conversation. You manage student records, family billing, and the entire academy roster without logging into a separate dashboard.

## Overview
- **Category:** calendar-scheduling
- **Price:** Free
- **Tags:** tutoring-management, lesson-scheduling, student-tracking, invoicing, learning-centers, education-software

## Description

This server hooks your Teachworks account up to your agent, letting you manage everything for your tutoring business without touching any dashboard. You'll handle student profiles, staff schedules, billing records, and the entire roster—all through conversation. 

### Student Roster Management

You can get a complete list of every enrolled student right away using `list_students`, which gives you an immediate, comprehensive rundown of your whole academy population. If you need to add a new person, you just run `create_student`; it drops a brand new profile record straight into the Teachworks directory for you. When you know exactly who you're looking for, use `get_student` and supply their unique ID; that pulls up every single academic detail and contact point associated with that one student.

### Staffing and Availability

Need to check on your tutors? Running `list_teachers` gives you the full directory listing for all staff members. This lets you see who's available and keeps your assignments organized. 

### Scheduling, Billing, and Families

For scheduling, you can run `list_lessons`, which outputs a complete list of every class or lesson booked on your academy’s calendar. To manage the money side, use `list_families` to pull up all the primary family accounts. This keeps both the billing info and main contact records for entire customer families organized. Lastly, you can view the full roster of students by calling `list_students`.

***

*This server's core function is simplifying operations. When your agent runs these tools, it handles the data exchange directly with Teachworks.*

## Tools

### create_student
Adds a new student profile record into your Teachworks directory.

### get_student
Retrieves all academic and contact details for one specific student using their unique ID.

### list_families
Lists the primary family accounts, which are used for billing and overall contact records.

### list_lessons
Outputs a full list of all lessons scheduled on your academy's calendar.

### list_students
Provides an immediate, comprehensive roster of every student currently enrolled.

### list_teachers
Pulls the current directory listing for all tutors and staff members.

## Prompt Examples

**Prompt:** 
```
List all active students in my Teachworks account.
```

**Response:** 
```
I've retrieved your student list. You have 25 active students including 'John Doe', 'Jane Smith', and 'Alex Rivera'. Which one would you like more details on?
```

**Prompt:** 
```
Show me the teaching schedule for this week.
```

**Response:** 
```
I've fetched the lesson list. This week you have 12 scheduled lessons, including 'Math Level 1' (Tue, 3 PM) and 'Intro to AI' (Wed, 10 AM). Shall I retrieve the details for any specific class?
```

**Prompt:** 
```
Create a new student record for 'Mike Ross' (mike@example.com).
```

**Response:** 
```
Success! The student record for Mike Ross (mike@example.com) has been created in Teachworks with ID user_10293. I've added him to your directory.
```

## Capabilities

### Create Student Records
Adds a brand new student profile directly to Teachworks.

### Retrieve Specific Student Data
Fetches all details for one student, provided you have their unique ID.

### Manage Family Accounts
Lists and organizes the billing and contact records for entire customer families.

### View Lesson Schedules
Retrieves a list of all lessons or classes that are currently booked on the calendar.

### List All Students
Gets a full roster of every student registered in your account.

### Check Teacher Availability
Pulls the current directory listing for all available tutors and staff.

## Use Cases

### The End-of-Day Roster Audit
A coordinator needs to confirm all 40 students are registered and active. Instead of clicking through the student management dashboard, they ask their agent: 'What's the current student list?' The agent uses `list_students` and returns a clean roster immediately.

### Last-Minute Schedule Conflict Check
A teacher is assigned a new class for Tuesday. They ask their agent to check: 'Are there any conflicts in the schedule next week?' The agent uses `list_lessons` and flags any overlapping bookings, saving them from double-booking.

### Onboarding a New Client Family
The admin signs up a new family. They first use `create_student` to add the student profile, then run `list_families` to associate the correct billing contact records for that household.

### Checking Tutor Credentials
A class is canceled and needs rescheduling. The manager asks: 'Who are our available Math Level 2 tutors?' The agent runs `list_teachers`, filtering by availability, so the manager can reassign the class immediately.

## Benefits

- Real-time scheduling checks: Need to know what's on the books? Use `list_lessons` to get a full view of classes scheduled for any given period. You don't have to click through month views anymore.
- Staff management at scale: Don't waste time tracking down who's free. The `list_teachers` tool pulls your entire staff directory and their current availability instantly.
- Student lifecycle control: When a new student enrolls, use `create_student` to add the record directly. It pushes the profile into Teachworks without manual data entry.
- Billing clarity: Use `list_families` to quickly pull up all associated contacts and billing records for one household. This keeps your finances organized in one place.
- Deep student lookups: Instead of searching through a list, use `get_student` with a unique ID to grab precise academic metadata instantly. It's faster than any manual search.
- [object Object]

## How It Works

The bottom line is: your AI client uses these specific tools to read or write data in Teachworks without you needing to log into the web portal.

1. First, subscribe to this Teachworks server. This gives your AI client access.
2. Next, input your Teachworks API Token (find it in your account settings). The connection validates immediately.
3. Finally, you talk to your agent like normal. You ask it things—like 'What's the schedule for next week?'—and it runs the tools.

## Frequently Asked Questions

**How do I add a new student using Teachworks MCP Server?**
You use the `create_student` tool. Just give your agent the name, email, and other required details for the new student profile, and it writes the record to Teachworks.

**Can I check my whole class schedule with list_lessons?**
Yes, `list_lessons` pulls all scheduled classes. You can ask your agent about specific date ranges or course types to filter the results automatically.

**What if I need details on a family's billing history? Use list_families?**
The `list_families` tool shows you the master customer records. This is where contact information and billing groupings live, so it keeps your finances organized.

**Is there an easy way to check if a teacher is available? Use list_teachers?**
Yes, `list_teachers` pulls the current roster. You can ask for staff availability and see who is free before scheduling that next class.

**How do I use a unique student ID to get comprehensive details about one person using `get_student`?**
It pulls all available metadata for that single record. You only need the student's unique ID; this bypasses general listings and gives you a complete profile immediately.

**Should I use `list_students` or `get_student` when checking my roster?**
Use `list_students` for an overview of all students. It provides the basic, paginated list. If you already have a student's ID and need every detail about that specific person, use `get_student`.

**What happens if I run `list_lessons` with dates where no classes are scheduled?**
The tool handles this gracefully. Instead of throwing an error, it returns an empty array. You get a clear confirmation that zero lessons match the parameters you provided.

**When I call `list_families`, how do I find out which students belong to that family group?**
The response includes associated student IDs for every listed family. You can then take those specific IDs and pass them into `get_student` to pull details on the whole group.

**Can I see all the lessons scheduled for my academy via AI?**
Yes! Use the `list_lessons` tool. Your agent will retrieve the complete enseñante calendar, including scheduled times and associated students.

**How do I add a new student to my directory?**
Use the `create_student` action. Provide the first name, last name, and an optional email to register the new student record in Teachworks instantly.

**Is it possible to see which families are registered via AI?**
Absolutely. Use the `list_families` query. The agent will retrieve the directory of customer families associated with your business.