Teachable MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TEACHABLE_API_KEY | No | Private existing Admin key, one source | |
| TEACHABLE_ACCOUNTS | No | Private isolated named-profile array | |
| TEACHABLE_AUDIT_LOG | No | Optional best-effort static guard decision log | |
| TEACHABLE_ENABLE_V2 | No | 1/true exposes beta tasks; provider access still required | |
| TEACHABLE_READ_ONLY | No | 1/true hides and directly refuses effects | |
| TEACHABLE_API_VERSION | No | Single-profile version1 default, or explicit2 | 1 |
| TEACHABLE_DEFAULT_ACCOUNT | No | Exact default label | |
| TEACHABLE_CREDENTIALS_FILE | No | Absolute owner-private regular JSON with api_key, at most64KiB | |
| TEACHABLE_ALLOW_DESTRUCTIVE | No | 0/false refuses even confirmed effects | |
| TEACHABLE_REQUEST_TIMEOUT_MS | No | 30000 default; local range100–300000 | 30000 |
| TEACHABLE_MIN_REQUEST_INTERVAL_MS | No | 1000 default; local range0–10000 | 1000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_enrollmentsB | Fetch active enrolled students and student progress for a specific course. |
| mark_lecture_completeC | Mark a specific course lecture as complete. |
| list_quiz_responsesC | Fetch the responses of quiz. |
| get_quizC | Fetch a specific quiz information. |
| list_quizzesA | Fetch an id list of quizzes in a specific course lecture. |
| get_videoC | Fetch a specific video information. |
| get_lectureB | Fetch content of a specific course lecture. |
| get_course_progressC | Fetch a specific user's course progress. |
| get_courseB | Fetch a specific course by ID. |
| list_coursesC | Fetch all courses at your school. |
| create_enrollmentC | Enroll a user in a course. |
| get_pricing_planA | Fetch details of a specific pricing plan. Currently only supports pricing plans associated with courses. |
| list_pricing_plansB | Fetch all the pricing plans at your school |
| list_transactionsC | Fetch a list of sales transactions made in your school. (New transactions can take up to two minutes to be returned via API call from the time of sale.) |
| unenroll_userC | Unenroll a user from a course. |
| get_userB | List a specific user and their course enrollments by user ID. |
| update_userC | Update the name or src of a user. |
| list_usersC | Get a list of users |
| create_userC | Create a new user |
| get_webhook_eventsC | Fetch all the events for a webhook. |
| list_webhooksB | Fetch all webhook events for your school. |
| list_accountsC | Local labels/default/version/auth source availability only. No credential values, paths, provider identity or network. |
| get_operation_schemaC | Local reviewed native method/path/query/body/scopes/rate limit and pinned schema provenance. No provider access or authority proof. |
| preview_school_batchB | Validate every exact request and hash order/profile label/schema locally. No native request, credential loading, ownership check or provider preview. |
| submit_school_batchA | Confirmed ordered effects; all validated/hash checked before first request. Stop on first failure with known and unattempted receipts; no retry, rollback or implicit continuation. |
| export_resourcesA | Confirmed reviewed native page/per or page/per_page export into a new exclusive0600 file. Page/item/5MiB budgets and explicit continuation; no signed links followed or binary download. Not an atomic backup. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Most tools target distinct resources with a clear get_/list_ split, so an agent can usually tell them apart. However, list_webhooks is described as fetching 'webhook events' which overlaps confusingly with get_webhook_events, and the meta tools (list_accounts, get_operation_schema, export_resources, preview/submit_school_batch) are less obviously differentiated.
Nearly all tools follow a consistent snake_case verb_noun pattern (get_course, list_users, create_user, mark_lecture_complete). Minor deviation: create_enrollment vs unenroll_user use different nouns for the same enrollment concept, but overall the convention is predictable.
At 26 tools this is on the heavy side for a course-platform surface, and several (list_accounts, get_operation_schema, preview_school_batch, submit_school_batch, export_resources) are meta/utility tools rather than core domain operations. The count is defensible but borders on bloated.
The surface is heavily read-oriented, with rich coverage of users, courses, lectures, quizzes, enrollments, webhooks, pricing plans, and transactions. Notable gaps: no create/update/delete for courses or quizzes, no delete_user, and no quiz-response submission, so the lifecycle is incomplete for a management domain.