teachable_create_ userCreate a new student in this school.
Ask how a course is selling, see how far a student has got, enroll someone from their email and a course name, check quiz results and read what a lecture says, all in your own school.
PopMCPTeachable
Every operation in the Teachable Admin API, all loaded by default, plus four tools that do the common jobs in one call: a student overview, enrolling a student, a course overview and a sales summary.
25 tools in the full catalog: 19 read and 6 write. 25 load by default, and the rest are found with tool search.
teachable_create_ userCreate a new student in this school.
teachable_enroll_ studentGive someone access to a course in one call, from their email and the course's name or id.
teachable_enroll_ userGive an existing user access to a course, with no payment taken.
teachable_get_ course_ progressGet one student's progress in one course: percent_complete, enrolled_at, completed_at, certificate, and every section and lecture with whether it is completed.
teachable_get_ userGet one user: name, email, role, tags and every course they are or were enrolled in, with percent_complete.
teachable_list_ course_ enrollmentsList the students currently enrolled in one course, with enrolled_at, expires_at, completed_at and percent_complete.
teachable_list_ usersList the users in this school (id, name and email), or find one by email.
teachable_student_ overviewSee everything about one person in one call: profile, role, tags, every course they are or were in with percent_complete, and their transactions with totals by currency.
teachable_unenroll_ userRemove an user's access to a course.
teachable_update_ userChange an user's name or signup source.
teachable_course_ overviewSee one course in one call: its sections and lectures with ids, its pricing plans, how many students are active, and how far they have got.
teachable_get_ courseGet one course with its sections, the lecture ids in each section, and the author bio.
teachable_get_ lectureGet the content of one lecture: its name, published state and attachments (text, video, audio, image, PDF, quiz, code and others) with their ids, urls and text.
teachable_get_ quizGet one quiz: every question with its type, possible answers, correct answers and whether it is graded.
teachable_get_ videoGet one lecture video: status, duration in seconds, thumbnail and an M3U8 streaming url.
teachable_list_ coursesList the courses in this school, or find one by name.
teachable_list_ lecture_ quizzesList the ids of the quizzes in one lecture.
teachable_list_ quiz_ responsesList students' results on one quiz: student id, name, email, submitted_at and percent_correct, plus the course and lecture names.
teachable_mark_ lecture_ completeMark one lecture as completed for one student, which moves their course progress on.
teachable_get_ pricing_ planGet one course pricing plan in full: name, price in the smallest currency unit (cents), currency, course_id, billing type and interval, free trial days and enrollment cap.
teachable_list_ pricing_ plansList every pricing plan in this school: id, name, price in the smallest currency unit (cents), currency and course_id.
teachable_list_ transactionsList sales transactions, filtered by date, student, course, pricing plan, affiliate, refund or chargeback.
teachable_list_ webhook_ eventsList the deliveries of one webhook, to check whether events are reaching their destination: state, attempt_count, last_attempted_at, response_http_status and the object they were about.
teachable_list_ webhooksList the webhooks set up in this school: id, event_trigger (such as Enrollment.created), workflow_state and how many events each has sent.
teachable_sales_ summaryWork out a school's sales over a date range in one call: totals by currency (listed price, tax, charged, revenue, refunds, fees), counts of paid, refunded and chargeback transactions, and the top pricing plans with their names.
Credentials off one Teachable screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
The school owner opens Settings, then API, in the Teachable admin, clicks Create API Key, names it PopMCP and copies the key. Paste it into PopMCP. The key decides the school, so there is nothing to pick. Teachable offers the API on the Growth plan and above, with no approval to wait for.
••••••••••••3f7aCreating users, enrolling, unenrolling and marking lectures complete are writes and wait until an owner or admin allows write actions; new connections start read-only. Teachable has no test mode, so every change lands in the real school. The API cannot edit courses or refund a sale, and those stay in Teachable.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Teachable credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
How much did my Teachable school make last month after refunds, and which pricing plans sold best?
teachable_sales_summaryok
Then just ask for the work
“How much did my Teachable school make last month after refunds, and which pricing plans sold best?”
“What has jane@example.com bought, and how far has she got in each course?”
“Enroll sam@example.com in Photo Basics, and create the account if he is new”
“Show me the outline of Photo Basics, its pricing plans and how many students are active”
“Which students enrolled in Photo Basics this month, and who has already finished it?”
“How did students score on the quiz in lecture three, and which questions does it ask?”
“Is my Teachable webhook for new sales still delivering, or has it been failing?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Teachable behind an AI client.
One API key. The school owner opens Settings, then API, in the Teachable admin, clicks Create API Key, gives it a name and copies it. Paste it into PopMCP and it is checked straight away. There is no app to register and no review, and the key is stored encrypted and used only on PopMCP's servers.
Growth or higher. Teachable's developer docs say the API needs the Growth plan or above, and its pricing page lists 10,000 API requests a month and 100 a minute on Growth, with higher limits on Custom by contacting sales. On a plan without the API, PopMCP cannot connect.
Yes. A key belongs to one school, so make a key in each school and connect each one separately. The connection is named after one of the school's courses, because the Teachable API has no call that returns the school's own name.
Yes. enroll_student takes an email and a course name or id, creates the user if they are new, skips anyone already in the course and enrolls the rest, with no payment taken. unenroll_user removes access. Both run as soon as the AI calls them once writes are allowed, so keep teammates who only need reports on read-only.
No. The Teachable API reads courses, lectures, quizzes, pricing plans and transactions, but does not change them, and it has no refund call. It can create and rename users, enroll and unenroll them, and mark lectures complete. Everything else is done in the Teachable admin.
All 21 Admin API operations: courses, lectures, videos, quizzes and responses, course progress, enrollments, users, pricing plans, transactions, webhooks and webhook events, plus four tools that combine them. Teachable also documents seven current_user endpoints that act as one signed-in student with that student's own login. An API key cannot call those, and the same data for any student is available here by user id.
No. The API can only read webhooks and their delivery logs, so an agent can tell you whether one is failing, but webhooks are made in Teachable under Settings, then Webhooks. Only the host of each webhook address is shown, because the full address often works as a secret.
Three things. Money is in the smallest currency unit, so 1999 means 19.99, and charge and revenue are in USD by default. Most calls want a numeric user id, which is why PopMCP also accepts an email on the common ones and looks it up. And the monthly request limit on Growth is real, so ask for summaries and filtered lists instead of having an agent read everything.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Teachable in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Teachable on the consent screen. The Teachable tools are then available in that session, and no Teachable credential is stored on your machine.
Yes. The Teachable catalog is small enough that all 25 tool definitions load into every conversation, so your AI never has to search for one before it can call it.
A tool is something your AI calls, and there are 25 here. A trigger is something PopMCP watches for you: 11 Teachable events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Teachable.
Launch a hosted MCP endpoint for Teachable, keep tool access under control, and start testing real workflow prompts right away.