Skip to main content
Glama
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