MCP server
Connect PupilBot once, and your AI can read your studies, your answers and mistakes, what is due for review and how your progress changes over time. It can also turn notes you paste into a new study.
You still practise in the web app, the iPhone app or the Telegram bot. Your AI reads your record and explains it; it never answers the questions for you.
Ask in your own words. Your AI picks the tools it needs and answers from your real practice data.
https://www.pupilbot.com/mcpPaste this into any MCP client. The first connection opens a PupilBot sign-in page where you approve the client — no API key to generate, nothing to configure. No account yet? Create one, it is free.
PupilBot and paste https://www.pupilbot.com/mcphttps://www.pupilbot.com/mcp as the server URL and choose OAuth for authenticationOpenAI’s connect guide has the current steps. Your ChatGPT plan and workspace settings decide whether custom MCP servers are available.
Run this in your terminal:
claude mcp add --transport http pupilbot https://www.pupilbot.com/mcpThe first call opens the PupilBot sign-in in your browser. Approve it once and the connection persists.
Add the server, then sign in — adding an OAuth-protected server does not start the sign-in on its own:
codex mcp add pupilbot --url https://www.pupilbot.com/mcpcodex mcp login pupilbotThe PupilBot plugin adds this server and 3 skills: a study report that says what to practise next, today’s due reviews, and a new study from a file or pasted text.
Claude Code:
claude plugin marketplace add gabrielpolyy/pupilbot-pluginsclaude plugin install pupilbot@pupilbotCodex:
codex plugin marketplace add gabrielpolyy/pupilbot-pluginscodex plugin add pupilbot@pupilbotIn Claude Code, the skills run as /pupilbot:study-report, /pupilbot:due-today and /pupilbot:make-study. Both agents also use them when your request matches.
http (streamable HTTP) and the URL https://www.pupilbot.com/mcp7 tools, all limited to your own account. Every tool only reads, except create_study, which makes a new study from text you send. No tool can delete anything or see another student’s data.
| Tool | What it does |
|---|---|
create_study |
Turns text you give your AI (notes, an article, a chapter) into a new study with topics and practice questions. It takes about a minute. |
list_studies |
Your studies, newest first, with topic progress, reviews due now and when you last practised. |
get_study |
One study in detail: its status, its question count, and every topic with its stage, mastery, recall estimate and next review. |
get_answers |
Your answer history, newest first: the question, your answer, the correct answer, the feedback and the source line. Filter by study, topic, date, or mistakes only. |
get_weak_spots |
Your weakest topics, the concepts you keep missing, and how many mistakes you made recently. |
get_due |
What is due for review now, what comes due in the next 24 hours, and when the next review is, per study. |
get_progress |
Answers and accuracy per day, your current streak, and how your mastery of each practised topic moved, over up to 180 days. |
S256). Access tokens expire after 1 hour, and refresh tokens rotate on every use. Clients register themselves (RFC 7591), so most of them run the whole flow on their own.Yes. In ChatGPT, open Plugins, select + and add PupilBot as a custom MCP server, then sign in and approve it. ChatGPT can then read your studies, answers, mistakes, due reviews and daily progress.
Yes. In Claude, add it as a custom connector. In Claude Code and Codex, add it with one terminal command. Any other app that supports remote MCP servers with OAuth sign-in works too.
No. The tools read your record and can create a study from text, but they cannot answer questions or change your scores. You practise in the web app, the iPhone app or on Telegram.
No. Connecting is free with any PupilBot account, and reading your data runs no AI model on PupilBot’s side. A study your AI creates counts toward your normal study allowance.
Open Settings in the PupilBot web app and remove the app from your connected AI apps. Its access stops at once.
Streamable HTTP, stateless: one JSON-RPC 2.0 request per POST, one JSON response. No SSE stream, no session ids, no JSON-RPC batching. A GET that asks for text/event-stream, and any DELETE, answer 405 — which is what tells a client to fall back to plain POSTs; a GET that does not ask for the stream gets this page. Protocol versions: 2025-06-18, 2025-03-26, 2024-11-05.
Discovery: /.well-known/oauth-authorization-server (RFC 8414) and /.well-known/oauth-protected-resource (RFC 9728). An unauthenticated POST answers 401 with a WWW-Authenticate challenge naming the second one.
/openapi.json — OpenAPI 3.1 description of this endpoint and its OAuth flow./mcp/server-card and /.well-known/ai-catalog.json — pre-connection discovery (MCP Server Card, SEP-2127)./mcp.md — this page as markdown.