# Fiveable for AP Students (io.github.thinkfiveable/fiveable-ap-students): 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-students/versions/latest)
- Connected to: https://fiveable.me/api/mcp
- Homepage: https://fiveable.me/mcp
- Repository: https://github.com/thinkfiveable/fiveable-mcp
- Scoring rules: v2
- Tools: 38
- Average: 61.5 / 100 (Cloudy)
- Near-identical pairs: 0

This page shows how Fiveable for AP Students (io.github.thinkfiveable/fiveable-ap-students)'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

- Minor: 38 tools. Above 25, models start to tell tools apart less well.
- Minor: The server's instructions are 2962 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_assignment_summary`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: publicationId.
  - Minor: Required identifiers whose description does not say where the value comes from: publicationId. Name the tool or the place that returns it, or models look it up first.
- `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.
- `get_my_practice_history`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subjectSlug, limit, cursor.
  - Minor: The description mentions none of its 3 or more arguments.
- `list_my_assignments`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subjectSlug, cursor, limit.
  - Minor: The description mentions none of its 3 or more arguments.
- `list_my_study_plans`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subjectSlug, cursor, limit.
  - Minor: The description mentions none of its 3 or more arguments.
- `update_study_plan_tasks`: 49 / 100
  - Major: Arguments without a description: planId, expectedRevision, tasks, tasks[].taskId, tasks[].completed.
  - Minor: The meaning of the boolean argument tasks[].completed is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: planId, requestId. Name the tool or the place that returns it, or models look it up first.
- `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.
- `list_my_exam_attempts`: 50 / 100
  - Major: Arguments without a description: subjectSlug, cursor, limit.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_my_access`: 51 / 100
  - Major: Arguments without a description: subjectSlug.
- `open_guided_practice`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subjectSlug, unitId, topicId, limit, questionFormat, tier.
  - Minor: The description mentions none of its 3 or more arguments.
- `score_frq_response`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: frqId, partResponses, partResponses[].partLetter, partResponses[].subpartNumeral, partResponses[].drawingData, partResponses[].drawingData.type, partResponses[].drawingData.data, partResponses[].drawingData.width, partResponses[].drawingData.height, partResponses[].drawingData.source, partResponses[].drawingData.mimeType, partResponses[].drawingData.drawingLabel, selectedLeqQuestion, programCode, businessProjectReference, businessProjectReference.product, businessProjectReference.target_customer, businessProjectReference.target_customer.profile, businessProjectReference.customer_problem_or_need, businessProjectReference.value_proposition, businessProjectReference.pricing_decision, businessProjectReference.pricing_decision.strategy, businessProjectReference.pricing_decision.selected_price, businessProjectReference.pricing_decision.decision, businessProjectReference.tested_hypothesis, businessProjectReference.research_method_and_evidence, businessProjectReference.research_method_and_evidence.method, businessProjectReference.research_method_and_evidence.sample, businessProjectReference.research_method_and_evidence.evidence, businessProjectReference.financing_assumptions, businessProjectReference.financing_assumptions.startup_costs, businessProjectReference.financing_assumptions.operating_costs_until_break_even, businessProjectReference.financing_assumptions.internal_financial_capital, businessProjectReference.financing_assumptions.external_financial_capital_needed, businessProjectReference.financing_assumptions.access_constraints, businessProjectPracticeMode, promptVariantId.
  - Minor: String arguments with no constraint or example: partResponses[].drawingData.type, promptVariantId.
  - 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_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_exam_results`: 54 / 100
  - Major: Arguments without a description: attemptId, submissionId.
  - Minor: No `required` list, so every argument is optional.
- `submit_diagnostic_answer`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: sessionToken, questionId, answer.
  - 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.
- `create_study_plan`: 57 / 100
  - Major: Arguments without a description: subjectSlug, scope, timeAmount, timeUnit.
  - 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_diagnostic_results`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: sessionToken.
- `get_study_plan`: 57 / 100
  - Major: Arguments without a description: planId.
  - Minor: Required identifiers whose description does not say where the value comes from: planId. Name the tool or the place that returns it, or models look it up first.
- `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.
- `calculate_ap_score`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
- `list_subjects`: 61 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_scoring_result`: 62 / 100
  - Minor: Arguments without a description: scoringJobId.
  - Minor: Required identifiers whose description does not say where the value comes from: scoringJobId. 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.
- `start_diagnostic`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: subjectSlug, unitId.
- `get_frq_attempt_history`: 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: frqId. Name the tool or the place that returns it, or models look it up first.
- `check_practice_answer`: 69 / 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: questionId. Name the tool or the place that returns it, or models look it up first.
- `submit_practice_answer`: 69 / 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: questionId. Name the tool or the place that returns it, or models look it up first.
- `list_key_terms`: 70 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `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_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.
- `get_my_frq_progress`: 74 / 100
- `get_my_study_progress`: 77 / 100
- `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.
- `get_practice_questions`: 80 / 100
- `score_external_frq_response`: 80 / 100
  - Minor: Arguments without a description: partResponses, promptImages[].mediaType, responseImages[].mediaType, responseImages[].partLetter, responseImages[].label.
- `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.

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)
