Aviation Resources MCP
An official MCP server provided by Aviation Resources that allows AI assistants to search FAA handbooks and Airman Certification Standards, retrieve full page text with images, and list available standards for study and citation purposes.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.aviationresources.io/mcpWhat you can do with it
- Search FAA handbooks for specific topics
- Read and view full pages with figures
- List Airman Certification Standards
Source and maintenance
Protocol and capabilities
- Server
- aviation-resources 7.5.5
- MCP protocol
- 2025-06-18
- Tools
- 4 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
list_airman_certification_standards — 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"standards"
],
"properties": {
"standards": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"ready",
"areaOfOperationCount",
"taskCount",
"createdAt",
"updatedAt"
],
"properties": {
"id": {
"type": "string",
"description": "UUID of the ACS. Pass it to airman_certification_standards to get its areas of operation, tasks, elements and sub-elements."
},
"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."
},
"createdAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"taskCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"updatedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"areaOfOperationCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}airman_certification_standards — Get Airman Certification Standard
Returns one FAA Airman Certification Standard (ACS) in full: every area of operation, each task with its objective, and every knowledge, risk management and skills element with its sub-elements and ACS codes (e.g. PA.I.A.K1a). Get the ID from list_airman_certification_standards. A whole ACS is large (a Private Pilot ACS is close to 1,000 elements), so pass areaOfOperation, and task if you can, when you only need part of it.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"acsId"
],
"properties": {
"task": {
"type": "string",
"maxLength": 3,
"minLength": 1,
"description": "Only this task of the area of operation, by its letter, e.g. \"A\". Needs areaOfOperation."
},
"acsId": {
"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 ACS's ID, from list_airman_certification_standards."
},
"areaOfOperation": {
"type": "string",
"maxLength": 10,
"minLength": 1,
"description": "Only this area of operation, by its Roman numeral, e.g. \"I\" or \"VII\". Leave out for the whole ACS."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"standard",
"filter",
"counts",
"areasOfOperation"
],
"properties": {
"counts": {
"type": "object",
"required": [
"areasOfOperation",
"tasks",
"elements",
"subElements"
],
"properties": {
"tasks": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"elements": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"subElements": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"areasOfOperation": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"description": "How much the result holds.",
"additionalProperties": false
},
"filter": {
"type": "object",
"required": [
"areaOfOperation",
"task"
],
"properties": {
"task": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"areaOfOperation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"description": "The areaOfOperation and task the result was narrowed to, or null.",
"additionalProperties": false
},
"standard": {
"type": "object",
"required": [
"id",
"name",
"abbreviation",
"code",
"ready",
"updatedAt"
],
"properties": {
"id": {
"type": "string"
},
"code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The prefix of every ACS code in this standard, e.g. \"PA\"."
},
"name": {
"type": "string"
},
"ready": {
"type": "boolean",
"description": "True when the ACS has been fully entered and reviewed."
},
"updatedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"abbreviation": {
"type": "string",
"description": "e.g. \"PPL\"."
}
},
"additionalProperties": false
},
"areasOfOperation": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"numeral",
"name",
"tasks"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string",
"description": "e.g. \"Preflight Preparation\"."
},
"tasks": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"letter",
"code",
"name",
"objective",
"knowledge",
"riskManagement",
"skills"
],
"properties": {
"id": {
"type": "string"
},
"code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "e.g. \"PA.I.A\"."
},
"name": {
"type": "string",
"description": "e.g. \"Pilot Qualifications\"."
},
"letter": {
"type": "string",
"description": "e.g. \"A\"."
},
"skills": {
"type": "object",
"required": [
"description",
"elements"
],
"properties": {
"elements": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"text",
"subElements"
],
"properties": {
"code": {
"type": "string",
"description": "ACS code, e.g. \"PA.I.A.K1\"."
},
"text": {
"type": "string"
},
"subElements": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"text"
],
"properties": {
"code": {
"type": "string",
"description": "ACS code, e.g. \"PA.I.A.K1a\"."
},
"text": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"description": "In ACS code order."
},
"description": {
"type": "string",
"description": "The ACS lead-in, e.g. \"The applicant demonstrates understanding of:\"."
}
},
"additionalProperties": false
},
"knowledge": {
"type": "object",
"required": [
"description",
"elements"
],
"properties": {
"elements": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"text",
"subElements"
],
"properties": {
"code": {
"type": "string",
"description": "ACS code, e.g. \"PA.I.A.K1\"."
},
"text": {
"type": "string"
},
"subElements": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"text"
],
"properties": {
"code": {
"type": "string",
"description": "ACS code, e.g. \"PA.I.A.K1a\"."
},
"text": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"description": "In ACS code order."
},
"description": {
"type": "string",
"description": "The ACS lead-in, e.g. \"The applicant demonstrates understanding of:\"."
}
},
"additionalProperties": false
},
"objective": {
"type": "string"
},
"riskManagement": {
"type": "object",
"required": [
"description",
"elements"
],
"properties": {
"elements": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"text",
"subElements"
],
"properties": {
"code": {
"type": "string",
"description": "ACS code, e.g. \"PA.I.A.K1\"."
},
"text": {
"type": "string"
},
"subElements": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"text"
],
"properties": {
"code": {
"type": "string",
"description": "ACS code, e.g. \"PA.I.A.K1a\"."
},
"text": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"description": "In ACS code order."
},
"description": {
"type": "string",
"description": "The ACS lead-in, e.g. \"The applicant demonstrates understanding of:\"."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"numeral": {
"type": "string",
"description": "Roman numeral, e.g. \"I\"."
}
},
"additionalProperties": false
},
"description": "In ACS order."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}search_documents — Search FAA Documents
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "How many documents to return."
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"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."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 1000,
"minimum": 0,
"description": "How many documents to skip, for the next page of results (pagination.offset + pagination.limit)."
},
"resourceIds": {
"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)$"
},
"maxItems": 50,
"description": "Only search these documents (IDs from earlier results). Leave out to search every document."
},
"pagesPerResource": {
"type": "integer",
"default": 2,
"maximum": 5,
"minimum": 1,
"description": "How many of each document's best pages to return."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query",
"results",
"pagination"
],
"properties": {
"query": {
"type": "string",
"description": "The query as it was run."
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"resource",
"score",
"matchedPageCount",
"pages"
],
"properties": {
"pages": {
"type": "array",
"items": {
"type": "object",
"required": [
"pageNumber",
"score",
"viewerUrl",
"matches"
],
"properties": {
"score": {
"type": "number"
},
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"heading",
"snippet"
],
"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 \" … \"."
}
},
"additionalProperties": false
}
},
"viewerUrl": {
"type": "string",
"description": "Opens this page in the Aviation Resources web app. Give this to the user as the source link."
},
"pageNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "1-based page number in the PDF. Pass to get_page to read or see the page."
}
},
"additionalProperties": false
}
},
"score": {
"type": "number",
"description": "Relevance within this response only; higher is better."
},
"resource": {
"type": "object",
"required": [
"id",
"documentName",
"documentNumber",
"pageCount"
],
"properties": {
"id": {
"type": "string",
"description": "UUID of the document. Pass it to get_page, or in resourceIds to search only this document."
},
"pageCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"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\"."
}
},
"additionalProperties": false
},
"matchedPageCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "How many pages of the document match; pages holds only the best of them."
}
},
"additionalProperties": false
},
"description": "Matching documents, best first. Empty when nothing matches."
},
"pagination": {
"type": "object",
"required": [
"limit",
"offset",
"total",
"hasMore"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"total": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Number of matching documents across all pages of results."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"hasMore": {
"type": "boolean",
"description": "True when calling again with offset + limit returns more documents."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}get_page — Get Document Page
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"resourceId",
"pageNumber"
],
"properties": {
"pageNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number in the PDF, as search_documents returns it (not the number printed on the page)."
},
"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."
},
"includeImage": {
"type": "boolean",
"default": true,
"description": "Set false to get only the text, for example when reading through several pages."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"resource",
"pageNumber",
"previousPageNumber",
"nextPageNumber",
"indexed",
"passages",
"image",
"imageUnavailableReason",
"viewerUrl"
],
"properties": {
"image": {
"anyOf": [
{
"type": "object",
"required": [
"mimeType",
"width",
"height"
],
"properties": {
"width": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"height": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"mimeType": {
"type": "string",
"const": "image/jpeg"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Describes the image content block (the whole page), or null when there is none."
},
"indexed": {
"type": "boolean",
"description": "False when the document has no text index yet; passages is then empty."
},
"passages": {
"type": "array",
"items": {
"type": "object",
"required": [
"chunkIndex",
"heading",
"pageStart",
"pageEnd",
"text"
],
"properties": {
"text": {
"type": "string",
"description": "The passage's full text."
},
"heading": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"pageEnd": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Last page the passage covers; can be after pageNumber."
},
"pageStart": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "First page the passage covers; can be before pageNumber."
},
"chunkIndex": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
},
"description": "Every indexed passage that covers this page, in document order."
},
"resource": {
"type": "object",
"required": [
"id",
"documentName",
"documentNumber",
"pageCount"
],
"properties": {
"id": {
"type": "string",
"description": "UUID of the document. Pass it to get_page, or in resourceIds to search only this document."
},
"pageCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"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\"."
}
},
"additionalProperties": false
},
"viewerUrl": {
"type": "string",
"description": "Opens this page in the Aviation Resources web app. Give this to the user as the source link."
},
"pageNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"nextPageNumber": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
],
"description": "The page after, or null on the last page."
},
"previousPageNumber": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
],
"description": "The page before, or null on the first page."
},
"imageUnavailableReason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Why image is null when an image was asked for."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 456 ms
- 95th percentile latency
- 456 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 456 ms · metadata changed · 4 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http aviation-resources-mcp https://api.aviationresources.io/mcpCodex
codex mcp add aviation-resources-mcp --url https://api.aviationresources.io/mcpCursor
{
"mcpServers": {
"aviation-resources-mcp": {
"url": "https://api.aviationresources.io/mcp"
}
}
}Cline
{
"mcpServers": {
"aviation-resources-mcp": {
"type": "streamableHttp",
"url": "https://api.aviationresources.io/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"aviation-resources-mcp": {
"type": "http",
"url": "https://api.aviationresources.io/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http aviation-resources-mcp https://api.aviationresources.io/mcpClaude Desktop
{
"mcpServers": {
"aviation-resources-mcp": {
"url": "https://api.aviationresources.io/mcp"
}
}
}Windsurf
{
"mcpServers": {
"aviation-resources-mcp": {
"serverUrl": "https://api.aviationresources.io/mcp"
}
}
}Let your agent find its tools
Find servers like Aviation Resources MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other documentation and reference servers
Do you run Aviation Resources MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.