• Solutions
  • Glossary
  • Blog
  • Documentation
  • Pricing
  • FAQ

Doana - AI customs agents for aviation, freight and supply chain teams.

From your inbox to export-ready data, without changing how your team works.

About
  • About
  • Blog
  • Glossary
  • Contact
Product
  • Solutions
  • AOG email triage
  • CARM automation
  • How it works
  • AI agents
  • Developers
Legal
  • Terms of Service
  • Privacy Policy
  • Cookie Policy
  • llms.txt

© Copyright 2026 Doana. All Rights Reserved.

Doana
Developers / EASA Form 1 MCP server guide

EASA Form 1 MCP server guide

Extract EASA Form 1 with an AI Agent Using MCP

Cover Image for Extract EASA Form 1 with an AI Agent Using MCP

The first structured Form 1 is account, OAuth, one upload, poll until the job settles, then review. Skipping review to “save AOG time” is how bad serials enter inventory.

The sequence is user, AI client, Doana MCP, extract_easa_form1, structured data, then human review. Review uncertainFields before any receiving step.

Extract Form 1 with MCPInspect OpenAPI

Public catalog as of 12 September 2026: extract_easa_form1 only.

First extraction

Budget about fifteen minutes when OAuth and a sample PDF are ready: two minutes to add the server, a few minutes for login, then one upload and poll get_extraction_result until status leaves dispatch_pending, queued, running or outcome_unknown. A batch of five files is the whole UTC week on a personal account, so check get_usage first.

The website path /mcp is not the protocol endpoint. Agents that POST JSON to a made-up REST /extract URL will fail. Use tools/call after MCP initialization, and let the client manage OAuth headers and the Streamable HTTP session.

  • MCP specification: Streamable HTTP transport
  • Doana OpenAPI contract

Connect, upload, and call

Create a personal account, add https://doana.ca/api/mcp as Streamable HTTP, complete OAuth, and list tools. Confirm extract_easa_form1 by name. Check get_usage first. Outside ChatGPT, use lossless content_base64 up to 64 KiB or create_mcp_upload then PUT or open browser_upload_url. ChatGPT instead uses the signed file object.

In ChatGPT, attach the Form 1 and pass the signed file object with download_url and file_id. Do not type those fields. Call the tool in the same turn. A local path is not an upload. Arbitrary https URLs are not fetched.

  1. Connect and complete OAuth; list tools.
  2. Check get_usage for the UTC week.
  3. Upload via the client’s supported path.
  4. Call extract_easa_form1 with exactly one source.
  5. Store job_id; poll get_extraction_result while status is dispatch_pending, queued, running or outcome_unknown. Import only when succeeded, documentType is easa_form_1 and result is present.
  • Doana public tool catalog
  • OpenAI: Developer mode and MCP apps in ChatGPT

First-certificate prompt

Use this after connecting Doana and selecting an EASA Form 1 you are authorized to process. Your client must supply actual file bytes through a supported upload path. Do not ask the model to invent missing blocks or reconstruct an unknown documentType.

If a job already exists for that file, retrieve it with get_extraction_result instead of extracting again. Include the extraction disclaimer the operator sees, including that confidence is only an estimate.

Extract this EASA Form 1 with Doana. Check my usage first.
Show the returned item rows, part numbers, quantities and serial numbers.
List uncertainFields and preserve values exactly.
If a job already exists, retrieve it instead of starting another.
Include the extraction disclaimer. Do not infer missing values.
  • Doana public tool catalog

Expired URLs, TIFF, and quota

DOWNLOAD_URL_EXPIRED: attach the file again and call extract_easa_form1 immediately in the same turn. UNSUPPORTED_FILE_TYPE: TIFF is not accepted; export a PDF, JPEG or PNG. FILE_TOO_LARGE or TOO_MANY_PAGES: do not retry; send a smaller file that contains only the Form 1 pages.

MCP_QUOTA_EXHAUSTED: the weekly quota of five files is used and no paid credits remain. Wait until Monday 00:00 UTC. If documentType is unknown, do not reconstruct a certificate from the chat. INVALID_CONTENT_BASE64 means the string was not standard base64 of the original bytes.

  • Doana OpenAPI contract
  • Doana public tool catalog

When to stop and review

Import only when status is succeeded, documentType is easa_form_1 and result is present. documentType unknown is usually a succeeded job with no Form 1. On failed_refundable or failed_charged, show lastError. Keep serial numbers as arrays. Do not flatten uncertainFields into a yes-or-no valid flag.

Assisted extraction does not certify authenticity, airworthiness or regulatory compliance. Confidence is an estimate, not a measured accuracy guarantee.

  • EASA: What is an EASA Form 1?
  • Doana public tool catalog

On this page

  1. First extraction
  2. Connect, upload, and call
  3. First-certificate prompt
  4. Expired URLs, TIFF, and quota
  5. When to stop and review

Related guides

  • Schema and JSON-RPC example
  • ChatGPT connection prerequisites
  • Claude upload options
  • Codex configuration
Extract Form 1 with MCP →