# Teachable (Extended) MCP

> Teachable (Extended) lets your AI agent manage your entire e-learning school—all in one chat window. You can list courses, create or update student profiles, track every single transaction, and monitor webhooks without leaving your client. It's direct access to all your content, user data, and finances.

## Overview
- **Category:** ecommerce
- **Price:** Free
- **Tags:** online-courses, lms, student-management, course-creation, coaching, digital-products

## Description

Your AI agent gives you direct access to your entire e-learning school—you manage courses, users, and finances all from one chat window. You don't have to jump between tabs or context switch; you just talk to it. 

### Managing Student Profiles

To deal with students, you can **manage student profiles** directly. If a user is brand new, use `create_user` and just give the agent their email address to add them to your school record. You'll never lose track of people because you can call `list_users` to pull up a full roster of every registered user. That list lets you filter by email, and it handles pagination way beyond ten thousand records, so you won't hit any limits. If a student’s info changes—say, they change their name or email—you use `update_user`; the agent modifies the existing profile using that identifying data.

### Auditing Course Content and Structure

You need to **audit your course catalog**? You can call `list_courses` to get an inventory of everything you offer. This list lets you filter results by author name or whether the course is published, so you know exactly what’s live and what's still a draft. Beyond just courses, you can verify your setup by checking out all available payment tiers using `list_pricing_plans`. That tool shows every pricing plan configured in your school, letting you confirm your offer structure.

### Tracking Money and Integrations

For **tracking financial activity**, the agent uses `list_transactions`. This gets transaction records so you can see sales totals, refunds, and chargebacks. You can filter those results by a specific user, course ID, or even narrow it down to certain dates or refund statuses. When it comes to keeping things connected, you call `list_webhooks` to list every external webhook registered to your account. This is key for auditing, ensuring all external services are correctly linked and firing when they should.

***

*You'll use the agent to:* 

*   **Create User Accounts:** Use `create_user` simply by providing an email address for a new member. 
*   **Update Profiles:** Modify user details using `update_user`, referencing any identifying information you have.
*   **View All Users:** Pull up the entire student list with `list_users`, filtering by email and handling massive datasets through its built-in pagination. 
*   **Review Courses:** Get a full view of your content catalog with `list_courses`; filter it by author or publication status to see what’s ready for sale.
*   **Check Pricing:** Review every available tier you sell with `list_pricing_plans`.
*   **Examine Transactions:** Pull specific financial data using `list_transactions`, filtering by dates, users, course IDs, and refund statuses. 
*   **Monitor Integrations:** Run `list_webhooks` to verify that all external service connections are active.

## Tools

### list_courses
Retrieves an inventory of all courses in the system; you can filter by name, author, or publication status.

### create_user
Adds a brand-new user record to your Teachable school, requiring only their email address.

### list_pricing_plans
Shows a list of every available pricing plan configured for your school.

### list_transactions
Gets transaction data, allowing filtering by user, course ID, dates, or refund status.

### update_user
Modifies the details of an existing user profile in the school, using their identifying information.

### list_users
Retrieves a list of all registered users; it can filter results by email and handles pagination beyond 10,000 records.

### list_webhooks
Lists every external webhook currently registered to your Teachable account for auditing purposes.

## Prompt Examples

**Prompt:** 
```
List all courses that are currently published in my school.
```

**Response:** 
```
I've retrieved your published courses. You have 3 active courses: 'Mastering MCP' (ID: 101), 'AI for Beginners' (ID: 102), and 'Advanced React' (ID: 103). Would you like more details on any of these?
```

**Prompt:** 
```
Create a new user with the email 'newstudent@example.com' and name 'John Doe'.
```

**Response:** 
```
User 'John Doe' has been successfully created with ID 987654. They are now registered in your Teachable school.
```

**Prompt:** 
```
Show me the recent transactions for course ID 554433.
```

**Response:** 
```
I found 2 recent transactions for course 554433. One for $99.00 (User: 123) and another for $99.00 (User: 456). Neither has been refunded.
```

## Capabilities

### Manage student profiles
Create new user accounts or update existing records for students without navigating the Teachable dashboard.

### Audit course catalog data
List all active and draft courses, filtering results by author name or publication status.

### Track financial activity
Query transaction records to see sales totals, refunds, and chargebacks for specific timeframes or users.

### Control user lifecycle
Search for students by email address and update their details instantly within the conversation.

### Review pricing structures
Access a list of all available pricing plans configured in your school, helping you verify offer tiers.

### Monitor integrations
List every webhook registered to your account, ensuring external services are correctly connected and firing.

## Use Cases

### The student profile is wrong after a name change.
A support specialist gets a ticket about an incorrect user name. Instead of navigating to the dashboard, they tell their agent: 'Update the user with email X to new name Y.' The agent calls `update_user`, and the record fixes instantly.

### I need to run a full financial audit for tax purposes.
The admin needs to check all revenue, refunds, and chargebacks from Q3. They prompt the agent: 'Get me all transactions filtered by date range X.' The agent uses `list_transactions`, returning a clean summary that pinpoints every payment record.

### Launching a new course requires checking dependencies.
A content creator needs to know if the old 'Intro' course is still published while they build the new 'Advanced' one. They ask: 'What courses are currently live and what are my pricing plans?' The agent uses `list_courses` and `list_pricing_plans` to give a complete picture.

### Onboarding a large group of beta testers.
The ops manager needs to set up 50 new accounts quickly. They use the agent with the list of emails, calling `create_user` for each one in sequence. The agent confirms each user is now registered in Teachable.

## Benefits

- Instantly track sales and refunds by calling `list_transactions`. You don't have to click through payment logs or cross-reference multiple tabs just to answer a refund question.
- Keep your content organized. Use `list_courses` to filter the catalog instantly—whether you need all published courses or only drafts by a specific author.
- Handle student changes immediately with `update_user`. Instead of emailing a support ticket and waiting for an admin, you tell your agent to fix the profile right now.
- `create_user` lets you onboard new leads on the fly. Give the AI client a name and email, and the user is registered in Teachable without leaving your chat window.
- Never forget who needs what. By using `list_webhooks`, you can audit every external connection point to ensure your billing or CRM integrations are firing correctly.

## How It Works

The bottom line is: your AI client handles the API calls; you just talk to it.

1. First, subscribe this server to your AI client and provide the required Teachable API Key.
2. Second, tell your agent what you need—for instance, 'Show me transactions for last month' or 'List all published courses'.
3. Third, the agent calls the specific tool (`list_transactions` or `list_courses`) and returns a clean, actionable summary right in the chat.

## Frequently Asked Questions

**How do I find out which courses are available using list_courses?**
The `list_courses` tool gives you a full catalog of every course. You can filter this list by name, author, or if it's published—so you know exactly what students can see.

**Can I create a user using the create_user tool?**
Yes. The `create_user` tool lets you add new student accounts to your school immediately, provided you give it their email address.

**I need to check sales history for Q4; which tool do I use? Is it list_transactions?**
Yep, `list_transactions` is the right one. You can filter that data by specific dates or even narrow it down to only transactions related to a single user ID.

**What if I need to change an existing student's email?**
You use `update_user`. Just give the agent the current user's details and the new information, and it updates the record in Teachable for you.

**I need to check if my external integrations are working. How do I use the `list_webhooks` tool?**
The `list_webhooks` tool shows all registered webhooks for your school. This is essential for troubleshooting connections; you look at the list to verify that the correct endpoints and credentials were saved, ensuring data flows properly when an event occurs.

**If I have more than 10,000 users, how do I retrieve all of them using `list_users`?**
You must use the `search_after` parameter within the `list_users` tool. This bypasses standard pagination limits and allows you to systematically fetch user records beyond the first large batch, giving you a full dataset.

**I need to see all available subscription tiers before I talk to my marketing team. Should I use `list_pricing_plans`?**
Yes, running `list_pricing_plans` retrieves every active and archived pricing plan configured in your Teachable school. This output gives you a structured view of the offer levels—monthly, annual, etc.—so you can accurately discuss your revenue model.

**I want to filter courses by publication status (like 'Draft' or 'Published'). How do I use `list_courses` for this?**
`list_courses` accepts filters that let you narrow results beyond just the course name. You can specifically query by publish status or author, which helps curriculum managers quickly audit whether content is ready for students to see.

**Can I search for a specific student using their email address?**
Yes! Use the `list_users` tool and provide the email address as a filter. The agent will return the user's details, including their ID and signup information.

**Is it possible to see if a transaction has been refunded?**
Absolutely. The `list_transactions` tool allows you to filter by `is_fully_refunded`. You can also filter by course ID or user ID to narrow down your search.

**Can I update a user's name if they made a typo during registration?**
Yes. Use the `update_user` tool with the student's `user_id` and the new `name`. The agent will process the update and confirm the changes in your Teachable school.