Skip to content

Rotate Pilot — FAA exam prep

by Perufitlife · remote · no sign-in to list tools · v1.0.0 · published by GitHub user Perufitlife

FAA written-test prep: practice questions, readiness diagnostic, METAR/TAF, drone airspace

Changes · 10

13 tools: 10 change things and 3 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http rotate-pilot https://rotatepilot.com/api/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "diagnose" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "start": a word for a change.

    What this check looks for
  • The server marks "start_checkout" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "start_checkout" says "start": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

13 tools

Changes things 10Claude Code: ask
  • airspace_atFor a US ZIP code or latitude/longitude: the FAA airspace class at drone altitudes (0-400 ft AGL), the controlled airspace overhead, and the FAA UAS Facility Map (LAANC) ceiling if…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    For a US ZIP code or latitude/longitude: the FAA airspace class at drone altitudes (0-400 ft AGL), the controlled airspace overhead, and the FAA UAS Facility Map (LAANC) ceiling if the point is on the grid, with a one-sentence plain-English verdict under 14 CFR Part 107. Uses FAA Class Airspace and UAS Facility Map data and USGS elevation. Checks one point only — not TFRs, NOTAMs or special-use airspace.

    Annotations the server declares

    • title: Drone airspace at a US location
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • check_answerGrades one answer to a Rotate Pilot practice question, identified by its question_id.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Grades one answer to a Rotate Pilot practice question, identified by its question_id. Returns whether it is correct, the correct letter and text, the explanation and its citations (14 CFR, AIM, ACS code when available). Accepts a letter (A/B/C), a number 1-3 or the option text.

    Annotations the server declares

    • title: Check a practice answer
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • cost_of_failingThe concrete cost of failing an FAA knowledge test, with sources: fee per attempt, mandatory wait or endorsement before a retest, the 2025 national failure rate, and the expected c…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The concrete cost of failing an FAA knowledge test, with sources: fee per attempt, mandatory wait or endorsement before a retest, the 2025 national failure rate, and the expected cost of a failure.

    Annotations the server declares

    • title: What failing an FAA knowledge test costs
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • decode_metarDecodes a METAR aviation weather report into plain English: wind, visibility, weather, clouds, ceiling, temperature/dew point, altimeter and the VFR/MVFR/IFR/LIFR flight category.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Decodes a METAR aviation weather report into plain English: wind, visibility, weather, clouds, ceiling, temperature/dew point, altimeter and the VFR/MVFR/IFR/LIFR flight category. Pass either the raw METAR text or a 4-letter ICAO airport code to fetch the latest report from NOAA's Aviation Weather Center. For training, not for flight planning.

    Annotations the server declares

    • title: Decode a METAR
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • decode_tafDecodes a TAF terminal aerodrome forecast into plain-English periods (initial, FM, BECMG, TEMPO, PROB) with the forecast flight category of each.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Decodes a TAF terminal aerodrome forecast into plain-English periods (initial, FM, BECMG, TEMPO, PROB) with the forecast flight category of each. Pass the raw TAF text or a 4-letter ICAO code to fetch the current TAF from NOAA's Aviation Weather Center. For training, not for flight planning.

    Annotations the server declares

    • title: Decode a TAF
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • diagnoseStarts a free readiness diagnostic for an FAA knowledge test: returns 10-20 quiz questions (answers hidden) spread across the exam's areas — for Part 107 in proportion to the offic…1 finding

    Why it is in this group

    • The description's first verb is "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "diagnose" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Starts a free readiness diagnostic for an FAA knowledge test: returns 10-20 quiz questions (answers hidden) spread across the exam's areas — for Part 107 in proportion to the official FAA weights. Each question has a question_id; scoring the set of answers gives the result per area, how it compares with the pass mark and a suggested next step.

    Annotations the server declares

    • title: Start an exam readiness diagnostic
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • exam_factsOfficial facts about an FAA knowledge test with sources: number of questions, time limit, pass mark, answer choices, minimum age, whether an instructor endorsement is needed, retes…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Official facts about an FAA knowledge test with sources: number of questions, time limit, pass mark, answer choices, minimum age, whether an instructor endorsement is needed, retest rules after a failure, how long the result is valid, 2025 national pass rate and average score, test fee when the FAA states it, and (Part 107) the official weight of each area.

    Annotations the server declares

    • title: FAA knowledge test facts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • score_diagnosticScores a set of answers to a Rotate Pilot readiness diagnostic.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Scores a set of answers to a Rotate Pilot readiness diagnostic. Returns overall and per-area results (for Part 107 also the score weighted by the official FAA area weights), the areas below the pass mark, the correct answer with explanation for each question, and a suggested next step based on the result.

    Annotations the server declares

    • title: Score an exam readiness diagnostic
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • start_checkoutReturns the direct purchase link for Rotate Pilot's prep for an exam (Stripe Checkout on rotatepilot.com), or the plans page when that exam has no one-click checkout.1 finding

    Why it is in this group

    • The name "start_checkout" says "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "start_checkout" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "start_checkout" says "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Returns the direct purchase link for Rotate Pilot's prep for an exam (Stripe Checkout on rotatepilot.com), or the plans page when that exam has no one-click checkout. It does not charge anything: the user completes payment in their browser.

    Annotations the server declares

    • title: Get the purchase link
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • study_planBuilds a dated study plan from today to the exam date on Rotate Pilot's course material: learning blocks per area (Part 107 in proportion to the official FAA weights) with the Rota…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Builds a dated study plan from today to the exam date on Rotate Pilot's course material: learning blocks per area (Part 107 in proportion to the official FAA weights) with the Rotate Pilot lessons that cover each one where available, a mixed-practice block for weak areas and a final block of full timed practice tests, plus the free FAA references for that exam.

    Annotations the server declares

    • title: Day-by-day FAA study plan
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 3Claude Code: allow
  • compare_prep_optionsSide-by-side prices and contents of common prep options for an FAA exam, with the date the prices were checked and free alternatives.No findings

    Why it is in this group

    • The name "compare_prep_options" says "compare": a word for reading.
    Description, as the server wrote it
    Side-by-side prices and contents of common prep options for an FAA exam, with the date the prices were checked and free alternatives. Only lists competitor prices Rotate has verified (currently Part 107); for other exams it says so instead of guessing.

    Annotations the server declares

    • title: Compare FAA exam prep options
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_offerRotate Pilot's current paid prep for an FAA exam: price, what is included, guarantee and refund terms with a link to the full terms, the free practice options, and purchase links.No findings

    Why it is in this group

    • The name "get_offer" says "get": a word for reading.
    Description, as the server wrote it
    Rotate Pilot's current paid prep for an FAA exam: price, what is included, guarantee and refund terms with a link to the full terms, the free practice options, and purchase links.

    Annotations the server declares

    • title: Rotate Pilot prep options and prices
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • practice_questionsReturns 1-10 multiple-choice practice questions (3 options, like the real FAA knowledge test) from Rotate Pilot's reviewed bank for Part 107, PPL, IFR, CPL or ATP, optionally limit…No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Returns 1-10 multiple-choice practice questions (3 options, like the real FAA knowledge test) from Rotate Pilot's reviewed bank for Part 107, PPL, IFR, CPL or ATP, optionally limited to one area/topic. mode=quiz (default) returns the questions without their answers; mode=study includes the answer, explanation and regulatory citations (14 CFR / AIM / ACS).

    Annotations the server declares

    • title: FAA practice questions
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http rotate-pilot https://rotatepilot.com/api/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__rotate-pilot__practice_questions",
      "mcp__rotate-pilot__get_offer",
      "mcp__rotate-pilot__compare_prep_options"
    ],
    "ask": [
      "mcp__rotate-pilot__check_answer",
      "mcp__rotate-pilot__diagnose",
      "mcp__rotate-pilot__score_diagnostic",
      "mcp__rotate-pilot__exam_facts",
      "mcp__rotate-pilot__cost_of_failing",
      "mcp__rotate-pilot__study_plan",
      "mcp__rotate-pilot__decode_metar",
      "mcp__rotate-pilot__decode_taf",
      "mcp__rotate-pilot__airspace_at",
      "mcp__rotate-pilot__start_checkout"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as rotate-pilot. Review it before you use it.