PostGrid MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PostGrid MCP Server verify this address: 100 Broadway, New York, NY 10013"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 contactpostgrid_get_contact— Get contact detailspostgrid_list_contacts— List contacts with search and paginationpostgrid_update_contact— Update contact fieldspostgrid_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 oncepostgrid_autocomplete_address— Autocomplete a partial addresspostgrid_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 trackingpostgrid_list_letters— List letters with search and paginationpostgrid_cancel_letter— Cancel a letter before it prints
Bank Accounts
postgrid_create_bank_account— Register a bank account for check paymentspostgrid_get_bank_account— Get bank account details (numbers masked)postgrid_list_bank_accounts— List bank accountspostgrid_delete_bank_account— Delete a bank account
Checks
postgrid_create_cheque— Send a MICR-encoded checkpostgrid_get_cheque— Get check statuspostgrid_list_cheques— List checks with paginationpostgrid_cancel_cheque— Cancel a check before it prints
Templates
postgrid_create_template— Create an HTML template with Handlebars merge variablespostgrid_get_template— Get template details and HTML contentpostgrid_list_templates— List templatespostgrid_update_template— Update template HTML or descriptionpostgrid_delete_template— Delete a template
Utility
postgrid_upload_pdf— Upload a PDF to temporary storage (Cloudflare R2) and get a URL for PostGridpostgrid_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 callpostgrid_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 install3. 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=trueThis 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-pdfsCreate 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 toolspostgrid_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
Scored across 30 tools
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.
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.
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.
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
Related MCP Connectors
Write, preview and mail real letters and postcards to US addresses from your AI app.
Mail one-off USPS letters from ChatGPT or Claude after you approve the preview and price. US only.
Verify US & international addresses and send physical mail (postcards, letters, checks) via Lob.
Connect any IMAP/SMTP mailbox to Claude & ChatGPT: search, read, sort, draft. Sends only with OK.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides 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.229 npm3MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables 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.-
- FlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to interact with Postale.io email accounts, supporting multiple mailboxes with features like reading, searching, replying, drafts, and batch operations.-
- AlicenseNot gradedqualityDmaintenanceEnables sending emails via the Resend API from Claude, with tools for sending, checking delivery status, listing recent emails, and managing domains.30 npm1MIT