Skip to contentPostalForm

Agent skill

PostalForm agent skill

Read this file before using PostalForm from an AI assistant, MCP client, coding agent, or autonomous runtime.

Published May 30, 2026 • Updated May 31, 2026

Quick setup

  • Remote MCP endpoint: https://postalform.com/mcp
  • Transport: streamable HTTP
  • Authentication: none required today for the hosted MCP endpoint
  • A2A Agent Card: https://postalform.com/.well-known/agent-card.json
  • MCP manifest: https://postalform.com/.well-known/mcp.json
  • MCP Server Card: https://postalform.com/.well-known/mcp/server-card.json
  • MCP Registry server manifest: https://postalform.com/.well-known/mcp/server.json
  • OpenAPI: https://postalform.com/openapi.json
  • Full developer docs: https://postalform.com/developers
  • Autonomous payment guide: https://postalform.com/agents

If your client accepts a remote MCP URL, add https://postalform.com/mcp as a streamable HTTP MCP server named postalform.

Works with

PostalForm is designed for MCP-capable clients and runtimes including ChatGPT custom connectors or OpenAI Responses API MCP tools, Gemini SDKs, Gemini CLI, Claude, Claude Code, Codex, Cursor, Windsurf, Cline, Replit, OpenClaw, Hermes, n8n, LangChain, and other clients that can connect to a remote streamable HTTP MCP endpoint.

For ChatGPT or OpenAI API flows, configure a remote MCP tool with server_url set to https://postalform.com/mcp. Require approval for tool calls that send document contents, addresses, or payment-related data.

For Gemini CLI, add PostalForm as an HTTP MCP server:

gemini mcp add --transport http postalform https://postalform.com/mcp

For Gemini SDK integrations, connect to the same MCP endpoint with an MCP client session and pass the session tools to the Gemini SDK's MCP/tool-calling integration.

Tool choice

Use these tools first when a human should review and pay:

  • postalform.create_letter_order_draft for a plain letter that PostalForm renders into a printable PDF.
  • postalform.create_order_draft for an uploaded PDF or a PDF file URL.
  • postalform.list_forms, postalform.get_form_schema, and postalform.create_form_order_draft for supported form workflows.
  • postalform.search_addresses when the user wants autocomplete-backed address validation.
  • postalform.get_order_status after checkout starts or payment completes.

Use postalform.create_machine_order only when the owner explicitly authorized autonomous payment and the runtime has a spend limit. The first call returns an MPP or x402 payment challenge. Retry the same request with the payment credential after the payment client answers the challenge.

Payment guidance

  • Default for ChatGPT, Gemini, Claude, and web-chat style clients: create a draft and return checkout_url or checkout_session.
  • Default for autonomous coding agents with explicit approval: validate or create a machine order, show the preview and price, then answer the MPP or x402 challenge.
  • Never send raw card details to PostalForm. Machine payment paths use MPP, x402, hosted checkout, or Stripe Shared Payment Tokens where applicable.

Mailing rules

  • PostalForm supports specific destination countries. Validate or quote the order before promising delivery.
  • Certified Mail is only available for qualifying U.S. First Class mail.
  • Express, Fast, postcard, international, and provider-specific options vary by destination, size, address, and provider eligibility.
  • Do not use PostalForm for physical originals, checks, keys, ID cards, packages, notarization, process serving, legal advice, or guaranteed delivery by a specific date.

Best prompt for a user

Ask the user for the document or letter text, sender address, recipient address, preferred mailing option, and whether they want to review and pay in hosted checkout. Then create a PostalForm draft and return the checkout URL.

Minimal letter example

Call postalform.create_letter_order_draft with:

{
  "letter": {
    "title": "Payment demand",
    "body": "Hello,\n\nThis is the letter body.\n\nSincerely,\nSender Example",
    "signature": "Sender Example"
  },
  "sender_name": "Sender Example",
  "sender_address_type": "Manual",
  "sender_address_manual": {
    "line1": "123 Sender St",
    "city": "Springfield",
    "state": "IL",
    "zip": "62701"
  },
  "recipient_name": "Recipient Example",
  "recipient_address_type": "Manual",
  "recipient_address_manual": {
    "line1": "456 Recipient Ave",
    "city": "Springfield",
    "state": "IL",
    "zip": "62701"
  }
}

Return the resulting checkout_url to the user for final review and payment.

Machine-readable references

  • https://postalform.com/llms.txt
  • https://postalform.com/llms-full.txt
  • https://postalform.com/ai.md
  • https://postalform.com/developers.md
  • https://postalform.com/agents.md
  • https://postalform.com/pricing-calculator.md