Skip to main content
Glama
PostGrid MCP Server

PostGrid MCP Server

PostGrid MCP Server

MCP server for PostGrid Print & Mail and Address Verification APIs. Send letters (standard, certified, certified with return receipt), mail MICR-encoded checks, manage contacts and templates, and verify US/Canadian addresses — all from Claude.

Tools (30)

Contacts

  • postgrid_create_contact — Create a mailing contact

  • postgrid_get_contact — Get contact details

  • postgrid_list_contacts — List contacts with search and pagination

  • postgrid_update_contact — Update contact fields

  • postgrid_delete_contact — Delete a contact

Address Verification

  • postgrid_verify_address — Verify and standardize an address (structured or freeform)

  • postgrid_verify_addresses_batch — Verify up to 2,000 addresses at once

  • postgrid_autocomplete_address — Autocomplete a partial address

  • postgrid_lookup_city_state — Look up city/state from a ZIP code

Letters

  • postgrid_create_letter — Send a letter (first class, standard, certified, or certified with return receipt)

  • postgrid_get_letter — Get letter status and tracking

  • postgrid_list_letters — List letters with search and pagination

  • postgrid_cancel_letter — Cancel a letter before it prints

Bank Accounts

  • postgrid_create_bank_account — Register a bank account for check payments

  • postgrid_get_bank_account — Get bank account details (numbers masked)

  • postgrid_list_bank_accounts — List bank accounts

  • postgrid_delete_bank_account — Delete a bank account

Checks

  • postgrid_create_cheque — Send a MICR-encoded check

  • postgrid_get_cheque — Get check status

  • postgrid_list_cheques — List checks with pagination

  • postgrid_cancel_cheque — Cancel a check before it prints

Templates

  • postgrid_create_template — Create an HTML template with Handlebars merge variables

  • postgrid_get_template — Get template details and HTML content

  • postgrid_list_templates — List templates

  • postgrid_update_template — Update template HTML or description

  • postgrid_delete_template — Delete a template

Utility

  • postgrid_upload_pdf — Upload a PDF to temporary storage (Cloudflare R2) and get a URL for PostGrid

  • postgrid_get_upload_url — Get a presigned PUT/GET URL pair for direct-to-R2 PDF upload (for Cowork/sandboxed environments)

  • postgrid_estimate_cost — Estimate mailing cost without an API call

  • postgrid_account_summary — Show API mode, connectivity, and rate table

Related MCP server: PostcardAI MCP Server

Setup

1. Get API Keys

Sign up at postgrid.com and get your API keys from the dashboard:

  • Print & Mail API key — for contacts, letters, checks, templates

  • Address Verification API key — for address verification tools

Both test and live keys are supported. Test keys start with test_ and live keys start with live_.

2. Install

git clone https://github.com/nathanieljones/postgrid-mcp-server.git
cd postgrid-mcp-server
npm install

3. Configure

Create a .env file (or set environment variables):

POSTGRID_PRINT_API_KEY=test_sk_...
POSTGRID_VERIFY_API_KEY=test_sk_...

For live keys, you must also set:

POSTGRID_CONFIRM_LIVE_MODE=true

This prevents accidental sends with real postage.

PDF upload (optional) — To use postgrid_upload_pdf, configure Cloudflare R2:

R2_ACCESS_KEY_ID=your_r2_access_key
R2_SECRET_ACCESS_KEY=your_r2_secret_key
R2_ENDPOINT=https://<account_id>.r2.cloudflarestorage.com
R2_BUCKET=postgrid-pdfs

Create an R2 bucket in your Cloudflare dashboard and add a lifecycle rule to auto-delete objects after 1 day.

4. Add to Claude

Claude Code (~/.claude.json):

{
  "mcpServers": {
    "postgrid": {
      "command": "node",
      "args": ["/full/path/to/postgrid-mcp-server/dist/index.js"],
      "env": {
        "POSTGRID_PRINT_API_KEY": "test_sk_...",
        "POSTGRID_VERIFY_API_KEY": "test_sk_...",
        "R2_ACCESS_KEY_ID": "your_r2_access_key",
        "R2_SECRET_ACCESS_KEY": "your_r2_secret_key",
        "R2_ENDPOINT": "https://<account_id>.r2.cloudflarestorage.com",
        "R2_BUCKET": "postgrid-pdfs"
      }
    }
  }
}

Claude Desktop / Cowork (claude_desktop_config.json):

{
  "mcpServers": {
    "postgrid": {
      "command": "node",
      "args": ["/full/path/to/postgrid-mcp-server/dist/index.js"],
      "env": {
        "POSTGRID_PRINT_API_KEY": "test_sk_...",
        "POSTGRID_VERIFY_API_KEY": "test_sk_...",
        "R2_ACCESS_KEY_ID": "your_r2_access_key",
        "R2_SECRET_ACCESS_KEY": "your_r2_secret_key",
        "R2_ENDPOINT": "https://<account_id>.r2.cloudflarestorage.com",
        "R2_BUCKET": "postgrid-pdfs"
      }
    }
  }
}

Safety Features

Two-step confirmation — postgrid_create_letter and postgrid_create_cheque require two calls. The first returns a cost preview; the second (with confirmed: true) actually sends.

Live mode gate — Live API keys require POSTGRID_CONFIRM_LIVE_MODE=true in the environment. Without it, the server refuses to start with live keys.

Mode indicators — Every response is prefixed with [TEST] or [LIVE] so you always know which mode you're in.

Check safety thresholds — Checks over $10,000 show a warning. Checks over $100,000 are rejected.

Account number masking — Bank account and routing numbers are masked in all responses.

Idempotency — Create operations include unique idempotency keys so network retries don't produce duplicates.

Rate Table

Type

Class

B&W

Color

Letter (1 page)

First Class

$1.14

$1.29

Letter (1 page)

Standard

$0.76

$0.91

Letter (1 page)

Certified

$5.00

$5.15

Letter (1 page)

Certified + Return Receipt

$7.43

$7.58

Extra page

—

+$0.07

+$0.13

Check

First Class

$2.50

—

Use postgrid_estimate_cost to calculate costs before sending.

License

MIT

Available Tools

30 tools
postgrid_account_summaryA

Show PostGrid account status: API mode (test/live), connectivity, and the rate table.

Inputs: no named parameters.

postgrid_autocomplete_addressB

Autocomplete a partial street address. Returns matching address suggestions.

Inputs: partialAddress (required), countryCode.

postgrid_cancel_chequeA

Cancel a check. Only works when the check status is 'ready' (before it enters printing).

Inputs: id (required).

postgrid_cancel_letterA

Cancel a letter. Only works when the letter status is 'ready' (before it enters printing).

Inputs: id (required).

postgrid_create_bank_accountA

Create a bank account for check printing. WARNING: Bank account details (account/routing numbers) will transit through chat history. For security, consider creating bank accounts via the PostGrid dashboard instead.

Inputs: bankName (required), accountNumber (required), routingNumber (required), description, +3 more.

postgrid_create_chequeA

Print and mail a MICR-encoded check via PostGrid. Amount is specified in dollars and converted to cents internally. Call without confirmed=true to preview; call with confirmed=true to send.

Inputs: to (required), from (required), amount (required), bankAccount (required), +8 more.

postgrid_create_contactA

Create a contact in PostGrid with a mailing address. Contacts can be used as recipients or senders for letters and checks.

Inputs: addressLine1 (required), city, email, lastName, +8 more.

postgrid_create_letterA

Send a physical letter via PostGrid. Supports standard First Class, Certified Mail, and Certified Mail with Return Receipt. Call without confirmed=true to preview the send details; call with confirmed=true to actually send.

Inputs: to (required), from (required), html, color, +10 more.

postgrid_create_templateA

Create an HTML template with Handlebars merge variables (e.g., {{name}}, {{address}}). Templates can be reused across multiple letters.

Inputs: html (required), description.

postgrid_delete_bank_accountA

Delete a bank account. This cannot be undone. Checks already created using this account are not affected.

Inputs: id (required).

postgrid_delete_contactA

Delete a PostGrid contact. This action cannot be undone.

Inputs: id (required).

postgrid_delete_templateA

Delete a template. This cannot be undone.

Inputs: id (required).

postgrid_estimate_costA

Estimate the cost of sending a letter or check without making an API call. Uses PostGrid's published rate table.

Inputs: type (required), color, quantity, pageCount, +1 more.

postgrid_get_bank_accountA

Get bank account details by ID. Account and routing numbers are masked for security.

Inputs: id (required).

postgrid_get_chequeA

Get a check's details, status, and tracking information by ID.

Inputs: id (required).

postgrid_get_contactA

Get a PostGrid contact by ID. Returns contact details including name and address.

Inputs: id (required).

postgrid_get_letterA

Get a letter's details, status, and tracking information by ID.

Inputs: id (required).

postgrid_get_templateA

Get a template by ID, including its HTML content.

Inputs: id (required).

postgrid_get_upload_urlA

Get a presigned URL to upload a PDF directly to cloud storage. Returns a PUT URL (for uploading) and a GET URL (for use as uploadedPDF in postgrid_create_letter). Workflow: (1) call this tool, (2) upload the PDF to the PUT URL via curl, (3) pass the GET URL to postgrid_create_letter. Use this from Cowork or sandboxed environments where file system access is unavailable.

Inputs: no named parameters.

postgrid_list_bank_accountsA

List bank accounts. Account and routing numbers are masked.

Inputs: skip, limit.

postgrid_list_chequesB

List checks with optional search and pagination.

Inputs: skip, limit, search.

postgrid_list_contactsB

List or search PostGrid contacts. Supports pagination with skip/limit.

Inputs: skip, limit, search.

postgrid_list_lettersB

List letters with optional search and pagination.

Inputs: skip, limit, search.

postgrid_list_templatesC

List templates with optional search and pagination.

Inputs: skip, limit, search.

postgrid_lookup_city_stateB

Look up city and state from a ZIP/postal code.

Inputs: postalOrZip (required), countryCode.

postgrid_update_contactA

Update an existing PostGrid contact. Only provided fields will be updated.

Inputs: id (required), city, email, lastName, +9 more.

postgrid_update_templateA

Update an existing template's HTML content or description.

Inputs: id (required), html, description.

postgrid_upload_pdfA

Upload a PDF to temporary storage and get a URL that PostGrid can access. Use this before postgrid_create_letter when you have a PDF file to mail. Accepts either a local file path or base64-encoded PDF content. The URL expires after 5 minutes and the file is auto-deleted after 24 hours.

Inputs: base64, filePath.

postgrid_verify_addressA

Verify a single US/CA address using PostGrid Address Verification. Returns verified, corrected (with before/after diff), or failed status.

Inputs: city, line1, line2, countryCode, +3 more.

postgrid_verify_addresses_batchA

Verify multiple addresses at once (up to 2,000). Addresses are chunked into batches of 500. Returns verification status for each address.

Inputs: addresses (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 30 tools

    Disambiguation4/5

    Most tools are cleanly separated by resource and action: letters, cheques, contacts, templates, bank accounts, and address verification. The only mild ambiguity is between the two PDF-upload workflows (postgrid_upload_pdf vs postgrid_get_upload_url) and between the create_letter preview path and postgrid_estimate_cost, though descriptions provide enough context to choose correctly.

    Naming Consistency4/5

    All tools share the postgrid_ prefix and almost all follow a verb_noun snake_case pattern, making navigation predictable. Minor deviations include postgrid_account_summary as a noun phrase and the slightly awkward postgrid_verify_addresses_batch, but these do not undermine the overall consistency.

    Tool Count4/5

    30 tools is at the high end for an MCP server, but the count is justified by the breadth of PostGrid's domain: letters, cheques, contacts, templates, bank accounts, address verification, PDF upload, and cost estimation. Each tool maps to a distinct operation with little redundancy or filler.

    Completeness5/5

    The tool surface covers full lifecycle management for letters, cheques, contacts, templates, and bank accounts, plus address verification, batch verification, autocomplete, PDF upload, cost estimation, and account status. There are no obvious dead ends for the physical-mail and check-printing workflows described.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Provides integration with Lulu Print API for print-on-demand services through Claude Desktop and other MCP clients, enabling users to create and manage print jobs, validate files, calculate costs, and handle shipping for books and printed materials.
      2
      29 npm
      3
      MIT
    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables AI assistants to create, design, and send physical postcards directly through the PostcardAI platform. It provides comprehensive tools for managing contacts, generating postcard designs from prompts, and tracking mailing delivery metrics.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables Claude Desktop to interact with Postale.io email accounts, supporting multiple mailboxes with features like reading, searching, replying, drafts, and batch operations.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables sending emails via the Resend API from Claude, with tools for sending, checking delivery status, listing recent emails, and managing domains.
      30 npm
      1
      MIT