Fiveable for AP Teachers
REMOTE · FIVEABLE.ME · SCANNED OCT 4
AP rubric grading, assignment drafts, question-bank materials, and class insights for teachers.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security66
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_class). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability84
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 10068 tokens (~130/item across 77 items; 77 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
- Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage90
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 66% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 78 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the Fiveable for AP Teachers MCP server?
Fiveable for AP Teachers is a hosted endpoint at https://fiveable.me/api/mcp/teacher, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · fiveable.me
claude mcp add --transport http thinkfiveable-fiveable-ap-teachers 'https://fiveable.me/api/mcp/teacher'
{
"mcpServers": {
"thinkfiveable-fiveable-ap-teachers": {
"url": "https://fiveable.me/api/mcp/teacher"
}
}
} {
"servers": {
"thinkfiveable-fiveable-ap-teachers": {
"type": "http",
"url": "https://fiveable.me/api/mcp/teacher"
}
}
} [mcp_servers.thinkfiveable-fiveable-ap-teachers] url = "https://fiveable.me/api/mcp/teacher"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"thinkfiveable-fiveable-ap-teachers": {
"type": "remote",
"url": "https://fiveable.me/api/mcp/teacher",
"enabled": true
}
}
} openclaw mcp add thinkfiveable-fiveable-ap-teachers --url 'https://fiveable.me/api/mcp/teacher' --transport streamable-http
mcp_servers:
thinkfiveable-fiveable-ap-teachers:
url: "https://fiveable.me/api/mcp/teacher" {
"McpServers": {
"thinkfiveable-fiveable-ap-teachers": {
"Transport": "http",
"Url": "https://fiveable.me/api/mcp/teacher"
}
}
} assistant mcp add thinkfiveable-fiveable-ap-teachers -t streamable-http -u 'https://fiveable.me/api/mcp/teacher'
{
"mcpServers": {
"thinkfiveable-fiveable-ap-teachers": {
"type": "http",
"url": "https://fiveable.me/api/mcp/teacher"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “add_students” rewrote its description, which is the text the model reads security
- Tool “approve_essays” rewrote its description, which is the text the model reads security
- Tool “confirm_correct_answer_key” rewrote its description, which is the text the model reads security
- Tool “confirm_publish_assignment” rewrote its description, which is the text the model reads security
- Tool “confirm_push_grades_to_google_classroom” rewrote its description, which is the text the model reads security
- Tool “confirm_release_results” rewrote its description, which is the text the model reads security
- Tool “confirm_update_publication” rewrote its description, which is the text the model reads security
- Tool “create_assignment_draft” rewrote its description, which is the text the model reads security
- Tool “create_classes” rewrote its description, which is the text the model reads security
- Tool “create_grading_session” rewrote its description, which is the text the model reads security
- Tool “duplicate_assignment” rewrote its description, which is the text the model reads security
- Tool “get_assignment” rewrote its description, which is the text the model reads security
- Tool “get_assignment_question_breakdown” rewrote its description, which is the text the model reads security
- Tool “get_cheatsheet” rewrote its description, which is the text the model reads security
- Tool “get_content_sections” rewrote its description, which is the text the model reads security
- Tool “get_grading_progress” rewrote its description, which is the text the model reads security
- Tool “get_grading_rubric” rewrote its description, which is the text the model reads security
- Tool “get_guide_reading_questions” rewrote its description, which is the text the model reads security
- Tool “get_my_teacher_workspace” rewrote its description, which is the text the model reads security
- Tool “get_questions_for_materials” rewrote its description, which is the text the model reads security
- Tool “get_reteach_gaps” rewrote its description, which is the text the model reads security
- Tool “get_student_insights” rewrote its description, which is the text the model reads security
- Tool “get_submission” rewrote its description, which is the text the model reads security
- Tool “import_essays_from_files” rewrote its description, which is the text the model reads security
- Tool “import_essays_from_google_classroom” rewrote its description, which is the text the model reads security
- Tool “import_essays_from_text” rewrote its description, which is the text the model reads security
- Tool “link_grading_to_class” rewrote its description, which is the text the model reads security
- Tool “list_classes” rewrote its description, which is the text the model reads security
- Tool “list_coursework” rewrote its description, which is the text the model reads security
- Tool “list_submissions_to_review” rewrote its description, which is the text the model reads security
- Tool “list_teaching_resources” rewrote its description, which is the text the model reads security
- Tool “override_essay_score” rewrote its description, which is the text the model reads security
- Tool “override_submission_part” rewrote its description, which is the text the model reads security
- Tool “prepare_correct_answer_key” rewrote its description, which is the text the model reads security
- Tool “prepare_publish_assignment” rewrote its description, which is the text the model reads security
- Tool “prepare_push_grades_to_google_classroom” rewrote its description, which is the text the model reads security
- Tool “prepare_release_results” rewrote its description, which is the text the model reads security
- Tool “prepare_update_publication” rewrote its description, which is the text the model reads security
- Tool “preview_question” rewrote its description, which is the text the model reads security
- Tool “remove_students” rewrote its description, which is the text the model reads security
- Tool “report_content_issue” rewrote its description, which is the text the model reads security
- Tool “rescore_essay” rewrote its description, which is the text the model reads security
- Tool “restore_assignment_draft” rewrote its description, which is the text the model reads security
- Tool “restore_students” rewrote its description, which is the text the model reads security
- Tool “save_submission_feedback” rewrote its description, which is the text the model reads security
- Tool “score_submission” rewrote its description, which is the text the model reads security
- Tool “search_question_bank” rewrote its description, which is the text the model reads security
- Tool “start_grading” rewrote its description, which is the text the model reads security
- Tool “update_assignment_draft” rewrote its description, which is the text the model reads security
- Tool “update_class” rewrote its description, which is the text the model reads security
- Tool “update_grading_rubric” rewrote its description, which is the text the model reads security
- Stability: unverified → 0.03 ▲ functional
- “get_guide_reading_questions” reworded the description of “guideId” cosmetic
- 1 Oct 26 69
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 8 Oct 2026 · Probed https://fiveable.me/api/mcp/teacher
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=fiveable.me | CN=YR1,O=Let's Encrypt,C=US | 11 Sept 2026 | 10 Dec 2026 | RSA 2048 | SHA256-RSA | 533aea314a35ac3ee438c6176783e51d882 |
| SANs: fiveable.me | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of fiveable.me. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| me. | present | 45352 | 8 | Verified |
| fiveable.me. | present | 1780 | 8 | Verified |
| fiveable.me. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000 |
| content-security-policy | object-src 'none'; base-uri 'self'; frame-ancestors 'self'; form-action 'self' https://www.facebook.com; upgrade-insecure-requests; report-uri /api/security/csp-report; report-to csp-endpoint |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(self), geolocation=(), usb=(), browsing-topics=() |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://fiveable.me/api/mcp/teacher | Verified | 200 | |
| http (plaintext) | http://fiveable.me/api/mcp/teacher | HTTPS enforced | 308 | https://fiveable.me/api/mcp/teacher |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_students Add students ~72
Adds students to a class roster from individual entries with names in First Last order and optional emails. Existing roster students are matched rather than duplicated. Emails support assignment notifications and are never returned. Roster additions can be removed.
| Name | Type | Req | Description |
|---|---|---|---|
| classId | string | yes | Class id from list_classes. |
| students | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
approve_essays Approve essays ~111
Marks scored essays approved (the teacher stands behind the score), or unapproves them with approve: false. Accepts essay handles, or all: true for every scored essay not yet approved. Only approved essays go to Google Classroom. The same handles with approve: false reverse approval.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | yes | – |
| approve | boolean | yes | – |
| essayHandles | array | – | – |
| sessionId | string | yes | Grading session id from list_grading_sessions or create_grading_session. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
archive_assignment Archive or restore draft ~67
Archives an unpublished draft (it leaves the coursework list; nothing is deleted) or restores an archived draft with archived: false. Published assignments are archived on the website.
| Name | Type | Req | Description |
|---|---|---|---|
| archived | boolean | yes | false restores an archived draft. |
| assignmentId | string | yes | Assignment id from list_coursework. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
archive_class Archive or restore class ~72
Archives a class the teacher created (it leaves the class list; nothing is deleted), or restores an archived one with archived: false. Co-taught classes can only be archived by their owner.
| Name | Type | Req | Description |
|---|---|---|---|
| archived | boolean | yes | false restores an archived class. |
| classId | string | yes | Class id from list_classes. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
confirm_correct_answer_key Correct an answer key ~71
Applies the owner-bound answer-key correction preview identified by previewId and rescores affected attempts in the background, subject to explicit teacher approval. Rejects scores changed since the preview.
| Name | Type | Req | Description |
|---|---|---|---|
| previewId | string | yes | The previewId from the matching prepare_ tool, after the teacher said yes to that preview. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
confirm_publish_assignment Publish assignment ~69
Publishes exactly the owner-bound preview identified by previewId, subject to explicit teacher approval of that specific preview. Returns each class's student link and a message to post.
| Name | Type | Req | Description |
|---|---|---|---|
| previewId | string | yes | The previewId from the matching prepare_ tool, after the teacher said yes to that preview. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
confirm_push_grades_to_google_classroom Send grades to Google Classroom ~70
Exports exactly the grades in the owner-bound previewId, subject to explicit teacher approval of that preview. Rejects session scores changed since the preview.
| Name | Type | Req | Description |
|---|---|---|---|
| previewId | string | yes | The previewId from the matching prepare_ tool, after the teacher said yes to that preview. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
confirm_release_results Hand results back ~62
Releases results exactly as specified by the owner-bound previewId, subject to explicit teacher approval of that specific preview. Release cannot be reversed.
| Name | Type | Req | Description |
|---|---|---|---|
| previewId | string | yes | The previewId from the matching prepare_ tool, after the teacher said yes to that preview. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
confirm_update_publication Change a published assignment ~57
Applies the owner-bound publication preview identified by previewId, subject to explicit teacher approval of that specific preview.
| Name | Type | Req | Description |
|---|---|---|---|
| previewId | string | yes | The previewId from the matching prepare_ tool, after the teacher said yes to that preview. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
create_assignment_draft Create assignment draft ~251
Builds an assignment draft from multiple-choice units and topics (skipping already assigned questions), Fiveable FRQ or SAQ ids, readings with optional checks, or a diagnostic. Settings start from the first class's defaults. AP Calculus drafts require courseVariant or target classes sharing one course. Returns the draft id and review link. Drafts never use an included assignment slot.
| Name | Type | Req | Description |
|---|---|---|---|
| availableAt | string | – | When it opens, ISO with offset. |
| classes | array | – | Classes to target, each with an optional due date. |
| courseVariant | string | – | AP Calculus only: ap-calc-ab or ap-calc-bc. Omit to use the course the target classes share. |
| dueAt | string | – | Default due time for every class. |
| instructions | string | – | – |
| requestId | string | yes | A unique id you generate for this action. Reuse it only when retrying the same action. |
| resultRelease | string | – | When students see results. |
| sections | array | yes | – |
| settings | object | – | – |
| subjectSlug | string | yes | Subject, e.g. apush or ap-bio. |
| title | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
create_classes Create classes ~79
Creates one or more classes in the teacher's workspace. Students join through an assignment's class link or a teacher-managed roster; there are no class codes. Created classes can be archived.
| Name | Type | Req | Description |
|---|---|---|---|
| classes | array | yes | – |
| requestId | string | yes | A unique id you generate for this action. Reuse it only when retrying the same action. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
create_grading_session Create grading session ~181
Creates a workspace grading session for finished student work, including paper, Google Docs or an AP Classroom export. Accepts a Fiveable FRQ or SAQ id, or the teacher's own question in prompt. A session uses an included assignment when grading starts unless the account has unlimited assignments. Returns the new session id.
| Name | Type | Req | Description |
|---|---|---|---|
| fiveableQuestionId | string | – | frq:… or saq:… from search_question_bank, or frq: plus the FRQ id from get_frq. |
| prompt | object | – | The teacher's own question, when not a Fiveable one. |
| requestId | string | yes | A unique id you generate for this action. Reuse it only when retrying the same action. |
| subjectSlug | string | yes | e.g. apush or ap-bio. |
| title | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
duplicate_assignment Duplicate assignment ~84
Copies a teacher-owned assignment, including archived or prior-year work, into a new draft with the same questions and settings. The resulting draft can be retargeted or archived.
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentId | string | yes | Assignment id from list_coursework. |
| requestId | string | yes | A unique id you generate for this action. Reuse it only when retrying the same action. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
export_grading_results Export grading results ~87
Creates a Google Sheet of the session's results in the teacher's own Drive (one row per student, scores by part, feedback links) and returns its link. The rows never pass through chat. Needs Google connected with Sheets access; otherwise returns the link to connect it.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Grading session id from list_grading_sessions or create_grading_session. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_assignment Get assignment ~47
Returns one assignment's sections, question counts, scoring and timing settings, published classes, due dates and student links. Cheap.
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentId | string | yes | Assignment id from list_coursework. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_assignment_question_breakdown Get assignment question breakdown ~74
Per-question results for one assignment: percent correct and how many students picked each answer choice (identifying which distractors drew responses), plus FRQ part-by-part full-credit rates. Use it for 'which questions went worst?'. Moderate cost.
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentId | string | yes | Assignment id from list_coursework. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_assignment_status Get assignment status ~79
Where each student is on one assignment: in progress, submitted, scored, or waiting for review, with their score when results are available. Students appear by handle and short name. Use it for 'who hasn't finished?' or 'how did period 5 do?'. Cheap.
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentId | string | yes | Assignment id from list_coursework. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_cheatsheet Read an official Fiveable cheatsheet ~82
Reads bounded pages from a prepared official Fiveable PDF, returning page citations, extracted text and actual page images for formulas and diagrams. Image-only pages have no guessed transcription. Unavailable artifacts return the approved PDF link. This read never starts processing.
| Name | Type | Req | Description |
|---|---|---|---|
| cheatsheetId | string | yes | – |
| limit | integer | yes | – |
| page | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_class Get class ~76
One class in the teacher's workspace: subject, roster (students by handle and short name), the class's assignment defaults, and the student links of assignments currently open to it. Students join a class by opening one of those links; there are no class codes. Cheap.
| Name | Type | Req | Description |
|---|---|---|---|
| classId | string | yes | Class id from list_classes. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_class_insights Get class insights ~154
How a class (or all the teacher's classes) is doing on Fiveable assignments: accuracy and FRQ points with change over time, each assignment's turn-in rate and average, and each student's average with flags (missing work, dropping, improving), weakest first. Scope by class, subject, assignment or time window. Moderate cost.
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentId | string | – | Limit to one assignment (id from list_coursework). |
| classId | string | – | Limit to one class (id from list_classes). |
| days | integer | yes | Look back this many days. 0 means this school year. |
| subjectSlug | string | – | Limit to one subject, e.g. apush or ap-bio. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_content_sections Get relevant study guide sections ~168
Returns a small set of Fiveable study-guide passages relevant to one question. Suitable for narrow explanations, research questions and checking student notes. One call consumes one full-content preview for a caller without existing access.
| Name | Type | Req | Description |
|---|---|---|---|
| guideSlug | string | – | Optional exact guide reference from get_subject_outline or search_content. |
| intent | string | – | Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics. |
| maximumSections | integer | yes | – |
| maximumTokens | integer | yes | – |
| query | string | yes | The concept or question the student needs help with. |
| subjectSlug | string | yes | Fiveable subject slug, e.g. "ap-bio". A course name such as "AP Biology" also resolves. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_essay_feedback Get essay feedback ~100
One essay's score and feedback part by part, what the teacher changed, and whether it's approved. Set includeText only when the teacher wants to read the response itself.
| Name | Type | Req | Description |
|---|---|---|---|
| essayHandle | string | yes | Essay handle from get_grading_results, e.g. E-3b91c0. |
| includeText | boolean | yes | – |
| sessionId | string | yes | Grading session id from list_grading_sessions or create_grading_session. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_exam_options Find practice exams and unit tests ~63
Find Fiveable exam formats, access requirements and website links without questions or answer keys. Choose a subject for version choices; add unitNumber to verify that unit's current bank and standard format.
| Name | Type | Req | Description |
|---|---|---|---|
| subjectSlug | string | – | – |
| unitNumber | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_frq Get a free-response question ~127
Returns one full, original Fiveable FRQ prompt: stimulus, background and every lettered part with its point value. The returned prompt is eligible for Fiveable's saved scoring workflow after the student writes a response. It consumes one full-content preview unless existing access covers this FRQ. Moderate cost — 1-4k tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| frqId | string | yes | FRQ id from list_frqs. |
| intent | string | – | Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_grading_progress Get grading progress ~58
Returns grading counts (scored, remaining, failed and approved) and background-job status (running, done or stopped). Cheap.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Grading session id from list_grading_sessions or create_grading_session. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_grading_results Get grading results ~118
Class results for a grading session: average, score distribution, how the class did on each rubric part, common gaps, and a table of essays (handle, short name, score, status, what to check). Filter to the ones that need review, drafts, approved or failed. Scores marked AI draft aren't approved yet.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | yes | – |
| limit | integer | yes | – |
| offset | integer | yes | – |
| sessionId | string | yes | Grading session id from list_grading_sessions or create_grading_session. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_grading_rubric Get grading rubric ~84
Returns the session's Fiveable scoring guidelines point by point on the AP rubric for its question type. If absent, starts rubric generation and returns pending status; generation takes about a minute. Rubrics use the website's grading pipeline. Cheap once written.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Grading session id from list_grading_sessions or create_grading_session. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_guide_reading_questions Get guide reading questions ~80
Returns reading-check questions and keys for one Fiveable guide: the curated set when available, otherwise generated questions (slower). Accepts a guide id. Suitable for exit tickets, reading quizzes and guided reading handouts.
| Name | Type | Req | Description |
|---|---|---|---|
| guideId | string | yes | Study guide document id, or study-guide: resource id from list_teaching_resources. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_guided_notes Get guided notes ~89
AMSCO textbook guided-notes prompts with answer keys for one chapter, for subjects that have AMSCO notes (for example AP US History). Without a chapter it lists the chapters. Use for guided notes handouts and reading checks. Cheap.
| Name | Type | Req | Description |
|---|---|---|---|
| chapterSlug | string | – | Chapter slug from the chapter list, e.g. chapter-1-1. |
| subjectSlug | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_key_term Get a key term ~155
Returns the full definition, context and related terms for one AP key term. Use when a student asks "what does X mean" for AP vocabulary. Cheap — usually under 1k tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| intent | string | – | Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics. |
| subjectSlug | string | yes | Fiveable subject slug, e.g. "ap-bio" or "apush". The course name or a close approximation such as "ap-biology" also resolves. Use list_subjects to find it. |
| termSlug | string | yes | Key term slug or the term itself, e.g. "natural-selection". |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_my_teacher_workspace Get my teacher workspace ~42
Orientation for the signed-in teacher's Fiveable workspace: classes, coursework awaiting review or due this week, included assignments remaining, and configured Google connections. Cheap.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_questions_for_materials Get questions for materials ~97
Returns up to 40 bank questions with answer keys, explanations, complete stimuli and Fiveable attribution for classroom materials. Stimuli are required context for their questions; answer keys are teacher-only material. Counts against the content budget.
| Name | Type | Req | Description |
|---|---|---|---|
| purpose | string | – | What the teacher is making. Used only to improve Fiveable; changes nothing in the result. |
| questionIds | array | yes | – |
| subjectSlug | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_reteach_gaps Get reteach gaps ~128
Ranks topics, units, CED skills and FRQ rubric rows where a class lost the most points on Fiveable assignments. Optional filters cover class, subject, assignment and time window. Moderate cost.
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentId | string | – | Limit to one assignment (id from list_coursework). |
| classId | string | – | Limit to one class (id from list_classes). |
| days | integer | yes | Look back this many days. 0 means this school year. |
| subjectSlug | string | – | Limit to one subject, e.g. apush or ap-bio. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_skill_insights Get skill insights ~153
Class progress on AP course skills (for example causation or contextualization): each skill's verdict (solid, improving, stuck, developing, building), average, trend, the students who need support most, and the units to revisit. Says so when evidence is limited instead of guessing. Works best scoped to one subject. Moderate cost.
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentId | string | – | Limit to one assignment (id from list_coursework). |
| classId | string | – | Limit to one class (id from list_classes). |
| days | integer | yes | Look back this many days. 0 means this school year. |
| subjectSlug | string | – | Limit to one subject, e.g. apush or ap-bio. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_student_insights Get student insights ~157
Returns one student's Fiveable work: average, missing work, assignment scores, weakest units and topics, and skill progress. Accepts an anonymous student handle (S-…). Suitable for conference preparation, parent notes and individual reteaching. Moderate cost.
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentId | string | – | Limit to one assignment (id from list_coursework). |
| classId | string | – | Limit to one class (id from list_classes). |
| days | integer | yes | Look back this many days. 0 means this school year. |
| handle | string | yes | The student's handle, e.g. S-4f2a1c. |
| subjectSlug | string | – | Limit to one subject, e.g. apush or ap-bio. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_study_guide Get a study guide ~223
Returns the full text of one Fiveable AP study guide as Markdown. Accepts the exact canonical guide reference or a close approximation of its title. Suitable when a student asks to learn or review a topic. It consumes one full-content preview for a free caller unless existing access covers this subject and feature. Expensive — a full guide can be 3-8k tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| guideSlug | string | yes | Canonical guide reference from get_subject_outline, content slug, document id, or title, e.g. "/ap-bio/unit-2/cell-structure/study-guide/abc123" or "cell-structure". |
| intent | string | – | Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics. |
| subjectSlug | string | yes | Fiveable subject slug, e.g. "ap-bio" or "apush". The course name or a close approximation such as "ap-biology" also resolves. Use list_subjects to find it. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_subject_outline Get subject outline ~142
Returns the full unit and topic outline for one AP subject, including every study guide slug in each unit. Provides the course map for study planning and individual guide retrieval. Moderate cost — roughly 2-5k tokens depending on subject size.
| Name | Type | Req | Description |
|---|---|---|---|
| intent | string | – | Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics. |
| subjectSlug | string | yes | Fiveable subject slug, e.g. "ap-bio" or "apush". The course name or a close approximation such as "ap-biology" also resolves. Use list_subjects to find it. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_submission Get submission ~101
One student's submission on a Fiveable assignment: each section's AI and teacher scores, the FRQ rubric breakdown, overrides and feedback, and whether the student can see results yet. includeText requires that the teacher wants to read the student's responses.
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentId | string | yes | Assignment id from list_coursework or list_submissions_to_review. |
| includeText | boolean | yes | – |
| submissionId | string | yes | Submission id from list_submissions_to_review. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
get_unit_overview Get unit overview ~168
Returns the overview page for one unit of an AP course: what it covers, how it is weighted on the exam, its topics and study plan. Suitable when a student is reviewing a whole unit. Moderate cost — roughly 1-3k tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| intent | string | – | Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics. |
| subjectSlug | string | yes | Fiveable subject slug, e.g. "ap-bio" or "apush". The course name or a close approximation such as "ap-biology" also resolves. Use list_subjects to find it. |
| unitSlug | string | yes | Unit slug from get_subject_outline, e.g. "unit-1". |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
import_essays_from_files Import essays from files ~147
Splits teacher-supplied PDFs or Word stacks into one essay per student, including AP Classroom 'FRQ Response PDFs, By Student Page Break' exports. Photos support one essay per image and are read by Fiveable. Accepts up to three ChatGPT attached uploads of 25 MB each, or up to three base64 files totaling about 3 MB. Returns counts and warnings only. Long PDFs can take up to a minute.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
| sessionId | string | yes | Grading session id from list_grading_sessions or create_grading_session. |
| uploads | array | yes | Files the teacher attached in ChatGPT, passed by reference. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
import_essays_from_google_classroom Import essays from Google Classroom ~134
Adds selected Google Classroom turn-in handles to a grading session. Reads authorized Google Docs directly; optional teacher-provided text supports other files or missing Google access. Names come from the Classroom roster. Existing session submissions are skipped. Records the source Classroom assignment for subsequent approved-grade export. Returns counts only.
| Name | Type | Req | Description |
|---|---|---|---|
| courseId | string | yes | Id from list_google_classroom_work. |
| courseWorkId | string | yes | Id from list_google_classroom_work. |
| sessionId | string | yes | Grading session id from list_grading_sessions or create_grading_session. |
| turnIns | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
import_essays_from_text Import essays from text ~105
Adds individual student responses supplied as pasted, downloaded or transcribed text, with each student's name as written. Photo transcriptions require transcribedFromPhotos and explicit teacherConfirmedTranscription approval of the transcription. Returns counts only.
| Name | Type | Req | Description |
|---|---|---|---|
| essays | array | yes | – |
| sessionId | string | yes | Grading session id from list_grading_sessions or create_grading_session. |
| teacherConfirmedTranscription | boolean | yes | – |
| transcribedFromPhotos | boolean | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
link_grading_to_class Link grading to a class ~103
Links a grading session to a workspace class so results feed class insights. Exact roster-name matches link automatically; explicit essay-handle to student-handle matches resolve remaining essays. Returns unmatched essays. A null classId removes the class link.
| Name | Type | Req | Description |
|---|---|---|---|
| classId | – | yes | Class id from list_classes, or null to unlink. |
| matches | array | yes | – |
| sessionId | string | yes | Grading session id from list_grading_sessions or create_grading_session. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
list_cheatsheets List official Fiveable cheatsheets ~84
Find approved Fiveable course and unit PDFs, including course variants, academic year when known, source links and readable-artifact readiness. Does not include user galleries or generated personal visuals.
| Name | Type | Req | Description |
|---|---|---|---|
| courseVariant | string | – | – |
| cursor | string | – | – |
| limit | integer | yes | – |
| subjectSlug | string | – | – |
| unitNumber | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
list_classes List my classes ~57
Lists the signed-in teacher's classes with subject, student count and class id. Class names such as 'period 3' can be resolved to their ids. Cheap.
| Name | Type | Req | Description |
|---|---|---|---|
| includeArchived | boolean | yes | List archived classes instead of active ones. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
list_coursework List coursework ~136
Lists the teacher's assignments and grading sessions from their workspace ledger: status, class, due date, roster-based turn-in counts, review counts and class average. The active status filter selects work currently open to students. Optional filters cover class, subject and status. Cheap.
| Name | Type | Req | Description |
|---|---|---|---|
| classId | string | – | Class id from list_classes. |
| cursor | string | – | Cursor from a previous page. |
| limit | integer | yes | – |
| status | string | yes | Ledger status filter. needs_review shows work waiting for the teacher. |
| subjectSlug | string | – | Limit to one subject, e.g. ap-bio or apush. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
list_frqs List free-response questions ~275
Lists Fiveable's free-response (FRQ) practice prompts for an AP subject, optionally filtered by FRQ type, unit, and excluded IDs. Results use stable ID order; unchanged filters continue pagination. Returns prompt ids and summaries rather than full prompts. Cheap.
| Name | Type | Req | Description |
|---|---|---|---|
| courseVariant | string | – | AP Calculus only (subject ap-calc): 'ab' hides BC-only units, topics and FRQs; 'bc' includes them. Pass the course of the class or assignment draft you are building for ('ab' for ap-calc-ab, 'bc' for… |
| cursor | string | – | – |
| excludeIds | array | – | – |
| frqType | string | – | Optional FRQ type filter, e.g. "DBQ", "LEQ", "SAQ". Varies by subject. |
| intent | string | – | Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics. |
| limit | integer | yes | Maximum prompts to list. |
| subjectSlug | string | yes | Fiveable subject slug, e.g. "ap-bio". A course name such as "AP Biology" also resolves. |
| unitId | string | – | Unit ID or public unit slug from get_subject_outline. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
list_google_classroom_work List Google Classroom work ~112
Walks the teacher's Google Classroom: with no ids, their courses; with a course id, its assignments; with a course and assignment id, who turned it in, each with a handle (T-…) and a link to the turned-in file. Use it to grade typed work collected in Classroom. Needs the teacher's Google Classroom connection.
| Name | Type | Req | Description |
|---|---|---|---|
| courseId | string | – | Id from list_google_classroom_work. |
| courseWorkId | string | – | Id from list_google_classroom_work. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
list_grading_sessions List grading sessions ~57
The teacher's grading sessions for work done outside Fiveable (stacks of essays graded in the workspace), newest first, with essay, scored and approved counts. Use to resume a stack. Cheap.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
list_key_terms List key terms ~180
Lists the key vocabulary terms for an AP subject, paginated alphabetically. Suitable for building flashcards or checking what vocabulary a student should know; results include stable term slugs for full definitions. Cheap.
| Name | Type | Req | Description |
|---|---|---|---|
| intent | string | – | Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics. |
| letter | string | yes | Filter to terms starting with one letter, or "ALL" for every term. |
| limit | integer | yes | Terms per page. |
| page | integer | yes | 1-indexed page number. |
| subjectSlug | string | yes | Fiveable subject slug, e.g. "ap-bio" or "apush". The course name or a close approximation such as "ap-biology" also resolves. Use list_subjects to find it. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome. |
| text | string | – | Readable tool result text for clients that consume structured output. |
No examples provided.
What is the Fiveable for AP Teachers MCP server?
Fiveable for AP Teachers is an MCP server listed in the public MCP registry as io.github.thinkfiveable/fiveable-ap-teachers. AP rubric grading, assignment drafts, question-bank materials, and class insights for teachers. This page covers its hosted endpoint (https://fiveable.me/api/mcp/teacher).
Is the Fiveable for AP Teachers MCP server safe to use?
Fiveable for AP Teachers scores 70 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Fiveable for AP Teachers MCP server expose?
Fiveable for AP Teachers exposes 77 tools: get_my_teacher_workspace, list_classes, get_class, list_coursework, get_assignment, and 72 more. Their descriptions and schemas cost roughly 8,586 tokens of context every time the server is loaded.
Does the Fiveable for AP Teachers MCP server require authentication?
No. We connected to Fiveable for AP Teachers without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Fiveable for AP Teachers MCP server still maintained?
Fiveable for AP Teachers is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.