SendGrid for AI agents

SendGrid is a cloud email delivery service that sends transactional and marketing email at scale. Developers and marketing teams use it to reach inboxes reliably and track how messages perform. 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.

EmailAPI keyMCP + RESTsendgrid.com
AUDIT LOG · SENDGRIDPOLICY: acme-support
09:41:07 · claude · u_8f2read
sendgrid.list_designs
List designs✓ allowed · 212ms
09:41:08 · claude · u_8f2read
sendgrid.get_design
Get design✓ allowed · 164ms
09:41:09 · claude · u_8f2write
sendgrid.create_list
Create list✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
sendgrid.delete_blocks
Delete blocks✕ blocked · policy: deny
EVERY SENDGRID CALL, ON THE RECORD
01 · USE CASES

What agents do in SendGrid.

01

Send a transactional email

Fire off a receipt, password reset, or notification email through an authenticated sending domain.

02

Manage recipient lists

Add or update a contact and place them on the right marketing list without duplicating records.

03

Pause a scheduled send for review

Cancel or pause a scheduled campaign send so a person can check it before it reaches inboxes.

02 · ACTIONS

364 SendGrid actions, graded by risk.

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

read

171

Look things up. Allowed by default.

  • sendgrid.get_design
    Get design
  • sendgrid.list_designs
    List designs
  • sendgrid.get_geo_stats
    Retrieve email statistics by country and state province
  • sendgrid.list_api_keys
    List api keys
  • sendgrid.get_integration
    Get Marketing Integration
  • sendgrid.get_user_scopes
    Retrieve a list of scopes for which this user has access
  • sendgrid.search_contacts
    Search contacts
  • sendgrid.get_all_accounts
    Get all accounts
  • sendgrid.list_integration
    Listintegration
  • sendgrid.list_all_subusers
    List all subusers
  • sendgrid.search_recipients
    Search recipients
  • sendgrid.get_all_categories
    Get All Single Sends Categories
  • sendgrid.get_a_contact_by_id
    Get a contact by id
  • sendgrid.get_sample_contacts
    Get sample contacts
  • sendgrid.get_all_single_sends
    Get all single sends
  • sendgrid.get_a_user_s_profile
    Get User Profile
+ 155 MORE

write

132

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

  • sendgrid.add_ips
    Add ips
  • sendgrid.create_list
    Create list
  • sendgrid.update_list
    Update list
  • sendgrid.create_a_list
    Create a list
  • sendgrid.create_design
    Create design
  • sendgrid.update_a_list
    Update a list
  • sendgrid.update_design
    Update design
  • sendgrid.create_segment
    Create segment
  • sendgrid.create_subuser
    Create subuser
  • sendgrid.create_api_keys
    Create api keys
  • sendgrid.create_a_sender
    Create a sender
  • sendgrid.send_a_campaign
    Send a campaign
  • sendgrid.update_an_alert
    Update an alert
  • sendgrid.update_a_sender
    Update a sender
  • sendgrid.create_a_segment
    Create a segment
  • sendgrid.update_a_segment
    Update a segment
+ 116 MORE

destructive

61

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

  • sendgrid.delete_blocks
    Delete blocks
  • sendgrid.delete_design
    Delete design
  • sendgrid.delete_bounces
    Delete bounces
  • sendgrid.delete_ip_pool
    Delete ip pool
  • sendgrid.delete_a_bounce
    Delete a bounce
  • sendgrid.delete_an_alert
    Delete an alert
  • sendgrid.delete_api_keys
    Delete api keys
  • sendgrid.delete_a_sender
    Delete a sender
  • sendgrid.delete_contacts
    Delete contacts
  • sendgrid.delete_teammate
    Delete teammate
  • sendgrid.delete_a_segment
    Delete a segment
  • sendgrid.delete_a_subuser
    Delete a subuser
  • sendgrid.delete_a_campaign
    Delete a campaign
  • sendgrid.delete_an_account
    Delete an account
  • sendgrid.delete_an_ip_pool
    Delete an IP Pool
  • sendgrid.delete_a_template
    Delete a template
+ 45 MORE
03 · HOW IT WORKS

SendGrid in three steps.

  1. 01Your users connect SendGridThey add their SendGrid api key on Arc0 Connect, under your brand. It goes straight into the vault.
  2. 02You set the rulesReads run, writes like “create list” can wait for the user, and “delete blocks” can be denied outright.
  3. 03Any agent can actYour agent calls SendGrid 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('sendgrid', {
  read: 'allow',
  write: 'ask',        // create_list
  destructive: 'deny',  // delete_blocks
})

# 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 SendGrid connects.

Users add their SendGrid 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 SendGrid 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 SendGrid from any agent.

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

SendGrid and Arc0, answered.

Q01

Can I use SendGrid with Claude, ChatGPT or Cursor?

Yes. Connect SendGrid 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 SendGrid actions you allow.

Q02

How do users connect SendGrid?

Users add their SendGrid 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 SendGrid actions can my agent take?

364 in total: 171 read, 132 write and 61 destructive, such as “create list”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in SendGrid?

Yes. Actions like “delete blocks” 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 SendGrid too?

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

Get started

Plug SendGrid into your agent.

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

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