Thanks.io for AI agents

Thanks.io automates direct mail, including postcards, letters, and notecards with handwritten-style fonts, for businesses running physical mail campaigns alongside their digital marketing. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

MarketingAPI keyMCP + RESTthanks.io
AUDIT LOG · THANKS.IOPOLICY: acme-support
09:41:07 · claude · u_8f2read
thanks_io.list_mailing_lists
List Mailing Lists✓ allowed · 212ms
09:41:08 · claude · u_8f2read
thanks_io.list_image_templates
List Image Templates✓ allowed · 164ms
09:41:09 · claude · u_8f2write
thanks_io.create_mailing_list
Create Mailing List✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
thanks_io.delete_sub_account
Delete Sub-Account✕ blocked · policy: deny
EVERY THANKS.IO CALL, ON THE RECORD
01 · USE CASES

What agents do in Thanks.io.

01

Preview a postcard before sending

Generate a preview of a postcard's design and message before it goes to print.

02

Add a recipient to a mailing list

Add a new address to a mailing list ahead of a scheduled send.

03

Confirm before sending a mail piece

Get sign-off before executing a stored send, since a printed and mailed postcard can't be recalled.

02 · ACTIONS

29 Thanks.io actions, graded by risk.

Every Thanks.io action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

4

Look things up. Allowed by default.

  • thanks_io.list_mailing_lists
    List Mailing Lists
  • thanks_io.list_image_templates
    List Image Templates
  • thanks_io.list_message_templates
    List Message Templates
  • thanks_io.list_handwriting_styles
    List Handwriting Styles

write

21

Create and change things. Allow, or ask the user first.

  • thanks_io.send_postcard
    Send Postcard
  • thanks_io.create_mailing_list
    Create Mailing List
  • thanks_io.add_recipient_to_mailing_list
    Add Recipient to Mailing List
  • thanks_io.orders_list
    List Orders
  • thanks_io.recipients_update
    Update Recipient
  • thanks_io.sub_accounts_list
    List Sub Accounts
  • thanks_io.sub_accounts_show
    Get Sub Account Details
  • thanks_io.execute_stored_send
    Execute Stored Send
  • thanks_io.sub_accounts_create
    Create Sub-Account
  • thanks_io.sub_accounts_update
    Update Sub-Account
  • thanks_io.order_preview_letter
    Preview letter send
  • thanks_io.stored_send_notecard
    Stored Send Notecard
  • thanks_io.stored_send_postcard
    Stored Send Postcard
  • thanks_io.order_preview_notecard
    Preview Notecard
  • thanks_io.recipients_get_details
    Get Recipient Details
  • thanks_io.recipients_create_multi
    Create Multiple Recipients
+ 5 MORE

destructive

4

Delete, cancel or archive. Ask first, or deny outright.

  • thanks_io.delete_sub_account
    Delete Sub-Account
  • thanks_io.delete_mailing_list
    Delete Mailing List
  • thanks_io.delete_recipient_from_mailing_list
    Delete Recipient from Mailing List
  • thanks_io.recipients_delete_by_address
    Delete Recipient by Address
03 · HOW IT WORKS

Thanks.io in three steps.

  1. 01Your users connect Thanks.ioThey add their Thanks.io api key on Arc0 Connect, under your brand. It goes straight into the vault.
  2. 02You set the rulesReads run, writes like “create Mailing List” can wait for the user, and “delete Sub-Account” can be denied outright.
  3. 03Any agent can actYour agent calls Thanks.io through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('thanks_io', {
  read: 'allow',
  write: 'ask',        // create_mailing_list
  destructive: 'deny',  // delete_sub_account
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How Thanks.io connects.

Users add their Thanks.io api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

The same Thanks.io connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
API key
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use Thanks.io from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Thanks.io and Arc0, answered.

Q01

Can I use Thanks.io with Claude, ChatGPT or Cursor?

Yes. Connect Thanks.io to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Thanks.io actions you allow.

Q02

How do users connect Thanks.io?

Users add their Thanks.io api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

Q03

Which Thanks.io actions can my agent take?

29 in total: 4 read, 21 write and 4 destructive, such as “create Mailing List”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in Thanks.io?

Yes. Actions like “delete Sub-Account” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.

Q05

Can my own backend call Thanks.io too?

Yes. The same Thanks.io connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug Thanks.io into your agent.

Your users connect Thanks.io once, under your brand. Your agent gets 29 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan