Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.capout.ai/llms.txt

Use this file to discover all available pages before exploring further.

capout_process_pdf is the primary MCP tool for single-document processing.

Required arguments

  • Always send xn_address
  • Send exactly one of:
    • pdf
    • url
    • file_base64
    • file_path
  • When using file_base64, also send file_name
When using file_base64, keep the PDF at or below 50 MB. For larger local or workspace PDFs, use Staged Uploads, which supports uploads up to 100 MB. For the public CapOut MCP, the practical inputs are pdf, url, and file_base64. The MCP is hosted remotely and cannot read your local machine paths directly.

Use the right source type

  • Use pdf for ChatGPT-style file attachments that include download_url and file_id
  • Use url for a public https:// PDF URL
  • Use file_base64 when the client has bytes but not a URL and the inline payload stays within the 50 MB base64 limit
  • Use file_path only for a path that already exists on the CapOut MCP server itself. Do not send your local /Users/... or workspace path here.
CapOut MCP is hosted remotely and cannot read your local filesystem. For local workspace PDFs, use Staged Uploads.

Example: attached PDF

{
  "tool": "capout_process_pdf",
  "arguments": {
    "pdf": {
      "download_url": "https://files.chatgpt.com/file-123",
      "file_id": "file-123"
    },
    "xn_address": "matt@capout.prod"
  }
}

Example: HTTPS PDF URL

{
  "tool": "capout_process_pdf",
  "arguments": {
    "url": "https://example.com/claims/123/estimate.pdf",
    "xn_address": "matt@capout.prod"
  }
}

Example: inline base64

{
  "tool": "capout_process_pdf",
  "arguments": {
    "file_base64": "JVBERi0xLjQKJ...",
    "file_name": "claim-123-estimate.pdf",
    "xn_address": "matt@capout.prod"
  }
}

Successful response

The MCP intentionally returns only the handoff needed for the next step:
{
  "document_id": "b9cf4ef8-9fa3-441b-b0d3-990bee7fbcce",
  "message": "CapOut accepted the document for background processing. Keep polling with capout_wait_for_document or capout_document_status until terminal is true."
}

What to do next

After the document is accepted, keep polling until the export reaches a terminal state: