PPL Free Ground School

Free FAA private-pilot ground school: source-cited answers, lessons and practice questions.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
96%
이름 품질
100%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,257토큰 (도구 정의)
~1.2 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 0.98%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "ground-school": {
      "url": "https://pplfree.com/mcp"
    }
  }
}

원격 엔드포인트

https://pplfree.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (5)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_faa_knowledge(query, limit)

Answer a US private-pilot (FAA) ground-school question from a source-cited curriculum. Use this whenever the user asks about FAA regulations, airspace, VFR weather minimums, weight and balance, aerodynamics, aircraft systems, navigation, weather theory, human factors, or private-pilot certification requirements. Returns short passages, each with the FAA citation it came from (e.g. "14 CFR 91.155", "PHAK Ch. 15") and a link to the lesson. Cite those labels in your answer.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The user's question, in their own words.",
      "minLength": 3,
      "maxLength": 500
    },
    "limit": {
      "type": "integer",
      "description": "How many passages to return (1-8, default 4).",
      "minimum": 1,
      "maximum": 8
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢get_practice_question(topic, count, question_id, reveal_answer)

Return private-pilot practice questions written for this course in the style of the FAA knowledge test (not actual FAA test questions), each with its answer choices, its topic, a question_id and a link to try it on pplfree.com. The correct answer is withheld by default so the user can attempt the question first. Once the user has answered, call check_answer with that question_id and their choice to grade it (or call this tool again with the question_id and reveal_answer: true to show the answer without grading). Use this when the user wants to be quizzed, asks for practice or test questions, wants to check their understanding of a topic, or is preparing for the FAA private-pilot knowledge test. Optionally scope it to a topic.

입력 스키마

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "description": "Optional topic to draw from, e.g. \"airspace\", \"weather\", \"aerodynamics\", \"regulations\", \"navigation\", \"weight-balance\", \"systems\". Omit for any topic.",
      "maxLength": 80
    },
    "count": {
      "type": "integer",
      "description": "How many questions to return (1-5, default 1).",
      "minimum": 1,
      "maximum": 5
    },
    "question_id": {
      "type": "string",
      "description": "A question_id from an earlier call, to return that exact question (typically with reveal_answer: true). Overrides topic and count.",
      "maxLength": 120
    },
    "reveal_answer": {
      "type": "boolean",
      "description": "Include the correct choice and the explanation. Default false: leave it off until the user has attempted the question.",
      "default": false
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢check_answer(question_id, choice, previous_token)

Grade the user's answer to a practice question from get_practice_question. Use this when the user replies with their choice (for example "B" or "I think it is C"): pass the question_id and their choice. Returns whether the answer is correct, the correct choice, why each choice is right or wrong, and the FAA citations. It also returns save_progress_url, a pplfree.com link where the user can save the answers from this chat to their study progress on that site, and save_token: pass it back as previous_token on the next check_answer call so one link collects every answer in the chat (up to 20, valid for 7 days). Nothing is stored unless the user opens the link.

입력 스키마

{
  "type": "object",
  "properties": {
    "question_id": {
      "type": "string",
      "description": "The questionId returned by get_practice_question.",
      "maxLength": 120
    },
    "choice": {
      "type": "string",
      "description": "The choice the user picked: its label (e.g. \"b\" or \"B\").",
      "maxLength": 20
    },
    "previous_token": {
      "type": "string",
      "description": "The save_token from the previous check_answer call in this chat, if any, so the save link keeps every answer. Omit on the first answer.",
      "maxLength": 4096
    }
  },
  "required": [
    "question_id",
    "choice"
  ],
  "additionalProperties": false
}
🟢get_lesson(lessonKey)

Fetch one full ground-school lesson: its summary, why it matters in flight, the learning objectives it covers, and a link to read it. Use this after search_faa_knowledge when the user wants the whole topic rather than a single answer, or when they ask to study or learn a subject properly. Call list_curriculum first if you do not already have a lesson key.

입력 스키마

{
  "type": "object",
  "properties": {
    "lessonKey": {
      "type": "string",
      "description": "Lesson key, e.g. \"as.lesson.vfr-minimums\". From list_curriculum.",
      "maxLength": 120
    }
  },
  "required": [
    "lessonKey"
  ],
  "additionalProperties": false
}
🟢list_curriculum(module)

List the ground-school curriculum: modules and the published lessons in each, with their keys. Use this to orient yourself before get_lesson, to answer "what does the course cover", or to help a user plan what to study next.

입력 스키마

{
  "type": "object",
  "properties": {
    "module": {
      "type": "string",
      "description": "Optional module key to expand, e.g. \"MOD-08\". Omit for all modules.",
      "maxLength": 40
    }
  },
  "required": [],
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 5개