Teachable MCP Server
by ahmedrowaihi
README.md
# Teachable MCP Server
A Model Context Protocol (MCP) server that provides seamless integration with the Teachable API. This server allows AI assistants to interact with your Teachable school, manage courses, users, enrollments, and more.
## Features
- **Course Management**: List, view, and manage courses
- **User Management**: Create, update, and manage users
- **Enrollment Operations**: Enroll/unenroll users in courses
- **Progress Tracking**: Monitor student progress and course completion
- **Quiz & Video Access**: Retrieve quiz and video content
- **Webhook Management**: Handle webhook events
- **Transaction Tracking**: Monitor sales and transactions
- **Pricing Plans**: Manage course pricing
## Installation
### Option 1: Install from NPM (Recommended)
```bash
npm install -g teachable-mcp-server
```
### Option 2: Local Development
1. **Clone or navigate to the project directory**:
```bash
cd teachable-mcp
```
2. **Install dependencies**:
```bash
npm install
```
3. **Build the TypeScript code**:
```bash
npm run build
```
## Configuration
### API Key Setup
The MCP server requires your Teachable API key to authenticate requests. You have several options to configure it:
#### Option 1: Environment File (.env)
1. Create a `.env` file in the `teachable-mcp` directory:
```bash
cp ../example.env .env
```
2. Edit the `.env` file and add your API key:
```bash
API_KEY_APIKEYAUTH=your_teachable_api_key_here
```
#### Option 2: Export Environment Variable
```bash
export API_KEY_APIKEYAUTH=your_teachable_api_key_here
```
### Getting Your Teachable API Key
1. Log into your Teachable admin dashboard
2. Navigate to **Settings** → **Integrations** → **API**
3. Generate or copy your existing API key
4. Use this key in your environment configuration
## Usage
### Running the MCP Server
The MCP server uses **stdio transport**, which means it communicates through standard input/output streams. This is the standard way MCP servers are designed to work with AI assistants and other MCP clients.
#### Direct Execution (Global Install)
If you installed globally via npm:
```bash
# Make sure your API key is set
export API_KEY_APIKEYAUTH=your_teachable_api_key_here
# Run the server
teachable-mcp-server
```
#### Local Development
```bash
# Make sure your API key is set
export API_KEY_APIKEYAUTH=your_teachable_api_key_here
# Run directly
node build/index.js
# Or use npm script
npm start
```
The server will start and listen for MCP requests via stdio transport. It does not open a web server or HTTP endpoint - instead, it communicates through stdin/stdout.
### Integrating with MCP Clients
#### Configuration for Claude Desktop / Cursor
Add to your MCP client configuration (e.g., `claude_desktop_config.json` or similar):
```json
{
"mcpServers": {
"teachable": {
"command": "npx",
"args": ["-y", "teachable-mcp-server"],
"env": {
"API_KEY_APIKEYAUTH": "your_teachable_api_key_here"
}
}
}
}
```
### Available Tools
The MCP server provides the following tools:
#### Course Management
- `ListCourses` - Fetch all courses at your school
- `ShowCourse` - Fetch a specific course by ID
- `ShowCourseEnrollments` - Fetch enrolled students and progress for a course
- `CourseProgress` - Fetch a specific user's course progress
#### Content Access
- `ShowLecture` - Fetch content of a specific course lecture
- `MarkLectureComplete` - Mark a lecture as complete for a user
- `ListQuizzes` - Fetch quizzes in a specific lecture
- `ShowQuiz` - Fetch specific quiz information
- `ShowQuizResponses` - Fetch quiz responses
- `ShowVideo` - Fetch video information
#### User Management
- `ListUsers` - Get a list of users
- `CreateUser` - Create a new user
- `ShowUser` - Get user details and enrollments
- `UpdateUser` - Update user information
#### Enrollment Operations
- `EnrollUser` - Enroll a user in a course
- `UnenrollUser` - Unenroll a user from a course
#### Business Operations
- `ListPricingPlans` - Fetch all pricing plans
- `ShowPricingPlans` - Fetch specific pricing plan details
- `ListTransactions` - Fetch sales transactions
#### Webhook Management
- `ListWebhooks` - Fetch all webhook events
- `ShowWebhookEvents` - Fetch events for a specific webhook
## API Documentation
This MCP server is auto-generated from the Teachable OpenAPI specification. All tools correspond directly to Teachable API endpoints with the same parameters and response formats.
For detailed API documentation, refer to:
- [Teachable API Documentation](https://developers.teachable.com)
## Security
- **API Key**: Your Teachable API key is required and should be kept secure
- **Environment Variables**: Never commit API keys to version control
- **HTTPS**: All API requests are made over HTTPS to `https://developers.teachable.com`
### Building from Source
```bash
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run tests (if available)
npm test
```
## Version
- **Server Version**: 0.0.1
- **Build Date**: 2025-08-31T05:18:42.766Z
- **API Base URL**: https://developers.teachable.com
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues