Aviation Resources

Search FAA handbooks and Airman Certification Standards; read and cite pages with figures.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
77%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'list_airman_certification_standards' name length outside 3-30 rangein list_airman_certification_standards

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,461Tokens (tool definitions)
~8.4 KBTypical response size
Moderate attention impact (1.92% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "aviation-resources": {
      "url": "https://api.aviationresources.io/mcp"
    }
  }
}

Remote endpoints

https://api.aviationresources.io/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_airman_certification_standards

Lists every FAA Airman Certification Standard (ACS) in Aviation Resources, such as Private Pilot - Airplane or Instrument Rating - Airplane, with its ID, whether it is ready for use, and how many areas of operation and tasks it has. Use this first to find the ACS a lesson is for.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "standards": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID of the ACS. Pass it to other tools to drill into its areas of operation and tasks."
          },
          "name": {
            "type": "string",
            "description": "Name of the ACS, e.g. \"Private Pilot - Airplane\"."
          },
          "ready": {
            "type": "boolean",
            "description": "True when the ACS has been fully entered and reviewed. Prefer ready standards."
          },
          "areaOfOperationCount": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "taskCount": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "ready",
          "areaOfOperationCount",
          "taskCount",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "standards"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢search_documents(query, resourceIds, limit, offset, pagesPerResource)

Full-text search across the FAA handbooks, advisory circulars and other reference documents in Aviation Resources (for example the Pilot's Handbook of Aeronautical Knowledge, Airplane Flying Handbook, Instrument Flying Handbook, Aviation Weather and the Weight & Balance Handbook). Returns the best-matching documents, each with its best pages and short snippets. Use it to find where a topic is covered, then call get_page to read a page in full or see its figures. Cite pages with their viewerUrl.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Search terms, e.g. holding entry or \"density altitude\". Words must all match (English variants count); use \"quotes\" for a phrase, or for alternatives, and -word to exclude. Use the words an FAA handbook would use; search for an ACS task's topic, not its code."
    },
    "resourceIds": {
      "description": "Only search these documents (IDs from earlier results). Leave out to search every document.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      }
    },
    "limit": {
      "default": 5,
      "description": "How many documents to return.",
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    },
    "offset": {
      "default": 0,
      "description": "How many documents to skip, for the next page of results (pagination.offset + pagination.limit).",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000
    },
    "pagesPerResource": {
      "default": 2,
      "description": "How many of each document's best pages to return.",
      "type": "integer",
      "minimum": 1,
      "maximum": 5
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The query as it was run."
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "resource": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID of the document. Pass it to get_page, or in resourceIds to search only this document."
              },
              "documentName": {
                "type": "string",
                "description": "e.g. \"Pilot's Handbook of Aeronautical Knowledge\"."
              },
              "documentNumber": {
                "type": "string",
                "description": "FAA document number, e.g. \"FAA-H-8083-25\"."
              },
              "pageCount": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "id",
              "documentName",
              "documentNumber",
              "pageCount"
            ],
            "additionalProperties": false
          },
          "score": {
            "type": "number",
            "description": "Relevance within this response only; higher is better."
          },
          "matchedPageCount": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "How many pages of the document match; pages holds only the best of them."
          },
          "pages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "pageNumber": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991,
                  "description": "1-based page number in the PDF. Pass to get_page to read or see the page."
                },
                "score": {
                  "type": "number"
                },
                "viewerUrl": {
                  "type": "string",
                  "description": "Opens this page in the Aviation Resources web app. Give this to the user as the source link."
                },
                "matches": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "heading": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Section heading the passage falls under."
                      },
                      "snippet": {
                        "type": "string",
                        "description": "Plain text around the matched words, excerpts joined by \" … \"."
                      }
                    },
                    "required": [
                      "heading",
                      "snippet"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "pageNumber",
                "score",
                "viewerUrl",
                "matches"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "resource",
          "score",
          "matchedPageCount",
          "pages"
        ],
        "additionalProperties": false
      },
      "description": "Matching documents, best first. Empty when nothing matches."
    },
    "pagination": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "offset": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "total": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "Number of matching documents across all pages of results."
        },
        "hasMore": {
          "type": "boolean",
          "description": "True when calling again with offset + limit returns more documents."
        }
      },
      "required": [
        "limit",
        "offset",
        "total",
        "hasMore"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query",
    "results",
    "pagination"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_page(resourceId, pageNumber, includeImage)

Returns one page of an FAA document from Aviation Resources: an image of the whole page plus the full text of the passages on it. Use it after search_documents to read a page in full or to see figures, charts and tables, or to read on with nextPageNumber / previousPageNumber. Cite the page with its viewerUrl.

Input Schema

{
  "type": "object",
  "properties": {
    "resourceId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "The document's ID, from search_documents."
    },
    "pageNumber": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "1-based page number in the PDF, as search_documents returns it (not the number printed on the page)."
    },
    "includeImage": {
      "default": true,
      "description": "Set false to get only the text, for example when reading through several pages.",
      "type": "boolean"
    }
  },
  "required": [
    "resourceId",
    "pageNumber"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID of the document. Pass it to get_page, or in resourceIds to search only this document."
        },
        "documentName": {
          "type": "string",
          "description": "e.g. \"Pilot's Handbook of Aeronautical Knowledge\"."
        },
        "documentNumber": {
          "type": "string",
          "description": "FAA document number, e.g. \"FAA-H-8083-25\"."
        },
        "pageCount": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "id",
        "documentName",
        "documentNumber",
        "pageCount"
      ],
      "additionalProperties": false
    },
    "pageNumber": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "previousPageNumber": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "The page before, or null on the first page."
    },
    "nextPageNumber": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "The page after, or null on the last page."
    },
    "indexed": {
      "type": "boolean",
      "description": "False when the document has no text index yet; passages is then empty."
    },
    "passages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "chunkIndex": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "heading": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "pageStart": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "First page the passage covers; can be before pageNumber."
          },
          "pageEnd": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Last page the passage covers; can be after pageNumber."
          },
          "text": {
            "type": "string",
            "description": "The passage's full text."
          }
        },
        "required": [
          "chunkIndex",
          "heading",
          "pageStart",
          "pageEnd",
          "text"
        ],
        "additionalProperties": false
      },
      "description": "Every indexed passage that covers this page, in document order."
    },
    "image": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "mimeType": {
              "type": "string",
              "const": "image/jpeg"
            },
            "width": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "height": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "mimeType",
            "width",
            "height"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "Describes the image content block (the whole page), or null when there is none."
    },
    "imageUnavailableReason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Why image is null when an image was asked for."
    },
    "viewerUrl": {
      "type": "string",
      "description": "Opens this page in the Aviation Resources web app. Give this to the user as the source link."
    }
  },
  "required": [
    "resource",
    "pageNumber",
    "previousPageNumber",
    "nextPageNumber",
    "indexed",
    "passages",
    "image",
    "imageUnavailableReason",
    "viewerUrl"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools