Back

PupilBot MCP server

https://www.pupilbot.com/mcp is a Model Context Protocol endpoint, not a page to read. Connect it to Claude, ChatGPT, Codex or any other MCP client, and that assistant can turn your notes into PupilBot studies and read back how well you know them.

PupilBot turns study material a student supplies — photographed notes, a handout, or pages picked out of a PDF — into adaptive practice questions scheduled by spaced repetition. The practising happens in the web app, the iPhone app or the Telegram bot; the assistant creates and reads.

Connect it

The server URL is https://www.pupilbot.com/mcp. It needs a PupilBot account: the first connection opens a consent page where you sign in and approve the client. No account yet? Create one first.

What your assistant can do

ToolWhat it does
create_study Create a new PupilBot study from text (notes, an article, a chapter — plain text or markdown). PupilBot extracts the topics and generates adaptive practice questions; processing takes about a minute. Returns the new study id — poll get_study_status until it is 'ready'.
get_study_status Check a study's processing status ('uploaded'/'processing' → not ready yet, 'ready' → questions are generated, 'failed').
list_studies List the user's studies, newest first.
get_mastery Without study_id: mastery summary for every ready study. With study_id: per-topic mastery for that study (score 0–1, attempts, streaks, next review).

Things to ask

Authentication

The endpoint is an OAuth 2.1 protected resource. PKCE with S256 is required, refresh tokens rotate, and clients register themselves (RFC 7591) — so most MCP clients run the whole flow on their own once you approve the consent screen.

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.

Your studies, questions and mastery are private to your account. An assistant reaches them only with a token you approved.

Transport

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.

Supported protocol versions: 2025-06-18, 2025-03-26, 2024-11-05.

More