# Fiveable for AP Teachers (io.github.thinkfiveable/fiveable-ap-teachers): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.thinkfiveable%2Ffiveable-ap-teachers/versions/latest)
- Connected to: https://fiveable.me/api/mcp/teacher
- Homepage: https://fiveable.me/mcp/teachers
- Repository: https://github.com/thinkfiveable/fiveable-mcp
- Scoring rules: v2
- Tools: 77
- Average: 61.5 / 100 (Cloudy)
- Near-identical pairs: 0

This page shows how Fiveable for AP Teachers (io.github.thinkfiveable/fiveable-ap-teachers)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 77 tools. Above 40, models choose less accurately.
- Minor: The server's instructions are 6938 characters. Claude Code reads only the first 2,048 by default (Codex 0.154.0 reads them whole). Put what the server is for first.

## Tools

- `get_exam_options`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subjectSlug, unitNumber.
  - Minor: No `required` list, so every argument is optional.
- `list_teaching_resources`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subjectSlug, kind, query, offset, limit.
- `list_submissions_to_review`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subjectSlug, filter, cursor, limit.
- `approve_essays`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: essayHandles, all, approve.
  - Minor: The meaning of the boolean argument all is unclear.
  - Minor: The meaning of the boolean argument approve is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `get_grading_results`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: filter, offset, limit.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `list_grading_sessions`: 47 / 100
  - Major: Arguments without a description: limit.
- `list_cheatsheets`: 50 / 100
  - Major: Arguments without a description: subjectSlug, courseVariant, unitNumber, cursor, limit.
  - Minor: The description mentions none of its 3 or more arguments.
- `override_submission_part`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: itemId, part, points, reasonCategory, reason.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId, submissionId, itemId. Name the tool or the place that returns it, or models look it up first.
- `score_submission`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: itemScores, itemScores[].itemId, itemScores[].points, overallFeedback, itemFeedback, itemFeedback[].itemId, itemFeedback[].text.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId, submissionId. Name the tool or the place that returns it, or models look it up first.
- `prepare_update_publication`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: assignmentId, action, changes[].opensAt, changes[].dueAt.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId. Name the tool or the place that returns it, or models look it up first.
- `confirm_push_grades_to_google_classroom`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: previewId. Name the tool or the place that returns it, or models look it up first.
- `confirm_release_results`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: previewId. Name the tool or the place that returns it, or models look it up first.
- `confirm_update_publication`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: previewId. Name the tool or the place that returns it, or models look it up first.
- `get_cheatsheet`: 54 / 100
  - Major: Arguments without a description: cheatsheetId, page, limit.
  - Minor: Required identifiers whose description does not say where the value comes from: cheatsheetId. Name the tool or the place that returns it, or models look it up first.
- `get_my_teacher_workspace`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_questions_for_materials`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subjectSlug, questionIds.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: questionIds. Name the tool or the place that returns it, or models look it up first.
- `restore_assignment_draft`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: undoId. Name the tool or the place that returns it, or models look it up first.
- `restore_students`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: undoId. Name the tool or the place that returns it, or models look it up first.
- `save_submission_feedback`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: overallFeedback, itemFeedback, itemFeedback[].itemId, itemFeedback[].text.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId, submissionId. Name the tool or the place that returns it, or models look it up first.
- `override_essay_score`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: points, reasonCategory, reason.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `archive_assignment`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId. Name the tool or the place that returns it, or models look it up first.
- `archive_class`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: classId. Name the tool or the place that returns it, or models look it up first.
- `confirm_correct_answer_key`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: previewId. Name the tool or the place that returns it, or models look it up first.
- `duplicate_assignment`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId, requestId. Name the tool or the place that returns it, or models look it up first.
- `get_class`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: classId. Name the tool or the place that returns it, or models look it up first.
- `prepare_push_grades_to_google_classroom`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `prepare_release_results`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId. Name the tool or the place that returns it, or models look it up first.
- `remove_students`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: handles.
  - Minor: Required identifiers whose description does not say where the value comes from: classId. Name the tool or the place that returns it, or models look it up first.
- `update_class`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: name, subjectSlug.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: classId. Name the tool or the place that returns it, or models look it up first.
- `update_student`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: email.
- `import_essays_from_text`: 59 / 100
  - Major: Arguments without a description: essays, essays[].text, transcribedFromPhotos, teacherConfirmedTranscription.
  - Minor: The meaning of the boolean argument transcribedFromPhotos is unclear.
  - Minor: The meaning of the boolean argument teacherConfirmedTranscription is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `list_coursework`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
- `list_google_classroom_work`: 59 / 100
  - Minor: No `required` list, so every argument is optional.
- `report_content_issue`: 59 / 100
  - Minor: Arguments without a description: contentType, requestId.
  - Minor: Required identifiers whose description does not say where the value comes from: contentId, requestId. Name the tool or the place that returns it, or models look it up first.
- `rescore_essay`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId, requestId. Name the tool or the place that returns it, or models look it up first.
- `set_class_assignment_defaults`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: defaults.timerMode, defaults.durationMinutes, defaults.maxAttempts, defaults.notifications, defaults.notifications.onPublish, defaults.notifications.dueReminder, defaults.notifications.onResultsRelease.
  - Minor: The meaning of the boolean argument defaults.notifications.onPublish is unclear.
  - Minor: The meaning of the boolean argument defaults.notifications.dueReminder is unclear.
  - Minor: The meaning of the boolean argument defaults.notifications.onResultsRelease is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: classId. Name the tool or the place that returns it, or models look it up first.
- `start_grading`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: retryFailed.
  - Minor: The meaning of the boolean argument retryFailed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId, requestId. Name the tool or the place that returns it, or models look it up first.
- `add_students`: 60 / 100
  - Minor: Arguments without a description: students, students[].email.
  - Minor: Required identifiers whose description does not say where the value comes from: classId. Name the tool or the place that returns it, or models look it up first.
- `get_assignment`: 61 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId. Name the tool or the place that returns it, or models look it up first.
- `get_grading_progress`: 61 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `list_subjects`: 61 / 100
  - Minor: No `required` list, so every argument is optional.
- `list_classes`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
- `prepare_correct_answer_key`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId. Name the tool or the place that returns it, or models look it up first.
- `preview_assignment_as_student`: 62 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId. Name the tool or the place that returns it, or models look it up first.
- `preview_question`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: subjectSlug.
  - Minor: Required identifiers whose description does not say where the value comes from: questionId. Name the tool or the place that returns it, or models look it up first.
- `update_assignment_draft`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: assignmentId, title, instructions, settings.timerMode, settings.durationMinutes, settings.maxAttempts, settings.notifications, settings.notifications.onPublish, settings.notifications.dueReminder, settings.notifications.onResultsRelease, addSections, addSections[].type, addSections[].type, addSections[].type, addSections[].type, addSections[].unitLabels, removeSectionIds.
  - Minor: String arguments with no constraint or example: addSections[].type, addSections[].type, addSections[].type, addSections[].type.
  - Minor: The meaning of the boolean argument settings.notifications.onPublish is unclear.
  - Minor: The meaning of the boolean argument settings.notifications.dueReminder is unclear.
  - Minor: The meaning of the boolean argument settings.notifications.onResultsRelease is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId. Name the tool or the place that returns it, or models look it up first.
- `get_content_sections`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: maximumSections, maximumTokens.
  - Minor: The description mentions none of its 3 or more arguments.
- `import_essays_from_files`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: files, files[].fileName, files[].dataBase64, uploads[].download_url, uploads[].file_id, uploads[].mime_type, uploads[].file_name.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `link_grading_to_class`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: matches, matches[].studentHandle.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId, classId. Name the tool or the place that returns it, or models look it up first.
- `update_grading_rubric`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: fiveableQuestionId, prompt, prompt.images[].mediaType.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `confirm_publish_assignment`: 64 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: previewId. Name the tool or the place that returns it, or models look it up first.
- `create_classes`: 64 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: classes.
  - Minor: Required identifiers whose description does not say where the value comes from: requestId. Name the tool or the place that returns it, or models look it up first.
- `get_grading_rubric`: 64 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `import_essays_from_google_classroom`: 64 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: turnIns.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_guided_notes`: 65 / 100
  - Minor: Arguments without a description: subjectSlug.
- `get_reteach_gaps`: 65 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_guide_reading_questions`: 69 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: guideId. Name the tool or the place that returns it, or models look it up first.
- `get_submission`: 69 / 100
  - Minor: Arguments without a description: includeText.
  - Minor: The meaning of the boolean argument includeText is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId, submissionId. Name the tool or the place that returns it, or models look it up first.
- `search_question_bank`: 69 / 100
  - Minor: Arguments without a description: format, stimulus, offset, limit.
- `get_assignment_question_breakdown`: 70 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId. Name the tool or the place that returns it, or models look it up first.
- `get_class_insights`: 70 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
- `list_key_terms`: 70 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `create_grading_session`: 71 / 100
  - Minor: Arguments without a description: prompt.images[].mediaType, title.
  - Minor: Required identifiers whose description does not say where the value comes from: requestId. Name the tool or the place that returns it, or models look it up first.
- `create_assignment_draft`: 72 / 100
  - Minor: Arguments without a description: title, instructions, sections, sections[].type, sections[].type, sections[].type, sections[].type, sections[].unitLabels, settings, settings.timerMode, settings.durationMinutes, settings.maxAttempts, settings.notifications, settings.notifications.onPublish, settings.notifications.dueReminder, settings.notifications.onResultsRelease.
  - Minor: String arguments with no constraint or example: sections[].type, sections[].type, sections[].type, sections[].type.
  - Minor: The meaning of the boolean argument settings.notifications.onPublish is unclear.
  - Minor: The meaning of the boolean argument settings.notifications.dueReminder is unclear.
  - Minor: The meaning of the boolean argument settings.notifications.onResultsRelease is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: requestId. Name the tool or the place that returns it, or models look it up first.
- `get_assignment_status`: 72 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId. Name the tool or the place that returns it, or models look it up first.
- `get_frq`: 72 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: frqId. Name the tool or the place that returns it, or models look it up first.
- `get_student_insights`: 72 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_subject_outline`: 72 / 100
  - Major: Says nothing about when to use it, or when not to.
- `list_frqs`: 72 / 100
  - Minor: Arguments without a description: excludeIds, cursor.
  - Minor: The description mentions none of its 3 or more arguments.
- `export_grading_results`: 74 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `get_essay_feedback`: 74 / 100
  - Minor: Arguments without a description: includeText.
  - Minor: The meaning of the boolean argument includeText is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: sessionId. Name the tool or the place that returns it, or models look it up first.
- `prepare_publish_assignment`: 74 / 100
  - Minor: Arguments without a description: classes, classes[].dueAt, anyoneWithLink.
  - Minor: The meaning of the boolean argument anyoneWithLink is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: assignmentId. Name the tool or the place that returns it, or models look it up first.
- `get_study_guide`: 77 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `get_unit_overview`: 77 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `search_content`: 82 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `get_key_term`: 84 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `get_skill_insights`: 85 / 100
  - Minor: The description mentions none of its 3 or more arguments.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
