Everything an application or an autonomous agent needs to work with TAFMEDS: a Model Context Protocol server, an OpenAPI description, agent instructions, and a Markdown representation of every public page.
Agent guidance
Endpoints and files
Model Context Protocol endpoint. Streamable HTTP transport. Exposes seven tools for generating ABA flashcards, quizzing, reading a learner’s decks and cards, reading progress, listing spaced-repetition due cards, and submitting reviews.
Format: JSON-RPC 2.0 over HTTP (MCP Streamable HTTP) · Auth: none
Machine-readable description of the publicly documented TAFMEDS HTTP endpoints, including the unauthenticated liveness probe and the MCP entry point.
Format: OpenAPI 3.0 (YAML) · Auth: none
Plugin manifest describing TAFMEDS to model hosts, pointing at the OpenAPI specification and the MCP endpoint.
Format: JSON · Auth: none
Curated index of the TAFMEDS public content surface in the llmstxt.org format, including a “When to use TAFMEDS” section.
Format: Markdown (text/plain) · Auth: none
Operating instructions for autonomous agents: best-fit jobs, jobs TAFMEDS is the wrong tool for, how to call the MCP server, rate limits, and content licensing.
Format: Markdown · Auth: none
Every indexable public URL: marketing pages, resources, the blog, and all glossary term pages.
Format: XML sitemap · Auth: none
RSS feed of TAFMEDS blog articles on SAFMEDS, Precision Teaching and exam prep.
Format: RSS 2.0 · Auth: none
Unauthenticated liveness check. Any other health probe mode (readiness, deep) requires an internal API key.
Format: JSON · Auth: none
Self-serve onboarding
There is no contact-sales step and no key-request form. Every stage below is completable on your own.
There is no separate sandbox host: production is the sandbox for everything that does not touch learner data. The MCP endpoint answers unauthenticated `initialize` and `tools/list` calls, the two content-generation tools (`generate_flashcards`, `quiz_me`) take no token, and every public page serves Markdown under `Accept: text/markdown`.
curl -sS -X POST https://tafmeds.com/mcp/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Registration is self-serve at /register and no payment method is required. The free tier includes timed SAFMEDS practice, the free deck corpus, and the Standard Celeration Chart.
https://tafmeds.com/registerSigned-in users mint a Firebase ID token from Settings → API Access. No approval step, no key request form. Tokens are bearer credentials scoped to that one user and expire after one hour; regenerate from the same screen.
https://tafmeds.com/settingsPass the token as the `auth_token` argument on MCP tools, or as `Authorization: Bearer <token>` on HTTP endpoints. Requests are rate limited per user; back off on HTTP 429 and honour the `Retry-After` header.
Authentication
TAFMEDS uses Firebase ID tokens. Generate one for your own account at Settings → API Access, then send it as Authorization: Bearer <token> on HTTP calls, or as the auth_token argument on MCP tools. Tokens are user-scoped and expire after one hour.
Authenticated endpoints are rate limited per user. Back off when you receive HTTP 429 and honour the Retry-After header. Expired or missing credentials return HTTP 401.
Content for agents
Every public TAFMEDS page serves a Markdown representation from its own URL when you ask for it, following acceptmarkdown.com. Responses carry Content-Type: text/markdown; charset=utf-8 and Vary: Accept. Unknown paths return a real HTTP 404 with a Markdown body listing where to go next.
curl -sS -H 'Accept: text/markdown' https://tafmeds.com/glossary