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.
What agents do in SendGrid.
Send a transactional email
Fire off a receipt, password reset, or notification email through an authenticated sending domain.
Manage recipient lists
Add or update a contact and place them on the right marketing list without duplicating records.
Pause a scheduled send for review
Cancel or pause a scheduled campaign send so a person can check it before it reaches inboxes.
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
171Look things up. Allowed by default.
- sendgrid.get_designGet design
- sendgrid.list_designsList designs
- sendgrid.get_geo_statsRetrieve email statistics by country and state province
- sendgrid.list_api_keysList api keys
- sendgrid.get_integrationGet Marketing Integration
- sendgrid.get_user_scopesRetrieve a list of scopes for which this user has access
- sendgrid.search_contactsSearch contacts
- sendgrid.get_all_accountsGet all accounts
- sendgrid.list_integrationListintegration
- sendgrid.list_all_subusersList all subusers
- sendgrid.search_recipientsSearch recipients
- sendgrid.get_all_categoriesGet All Single Sends Categories
- sendgrid.get_a_contact_by_idGet a contact by id
- sendgrid.get_sample_contactsGet sample contacts
- sendgrid.get_all_single_sendsGet all single sends
- sendgrid.get_a_user_s_profileGet User Profile
write
132Create and change things. Allow, or ask the user first.
- sendgrid.add_ipsAdd ips
- sendgrid.create_listCreate list
- sendgrid.update_listUpdate list
- sendgrid.create_a_listCreate a list
- sendgrid.create_designCreate design
- sendgrid.update_a_listUpdate a list
- sendgrid.update_designUpdate design
- sendgrid.create_segmentCreate segment
- sendgrid.create_subuserCreate subuser
- sendgrid.create_api_keysCreate api keys
- sendgrid.create_a_senderCreate a sender
- sendgrid.send_a_campaignSend a campaign
- sendgrid.update_an_alertUpdate an alert
- sendgrid.update_a_senderUpdate a sender
- sendgrid.create_a_segmentCreate a segment
- sendgrid.update_a_segmentUpdate a segment
destructive
61Delete, cancel or archive. Ask first, or deny outright.
- sendgrid.delete_blocksDelete blocks
- sendgrid.delete_designDelete design
- sendgrid.delete_bouncesDelete bounces
- sendgrid.delete_ip_poolDelete ip pool
- sendgrid.delete_a_bounceDelete a bounce
- sendgrid.delete_an_alertDelete an alert
- sendgrid.delete_api_keysDelete api keys
- sendgrid.delete_a_senderDelete a sender
- sendgrid.delete_contactsDelete contacts
- sendgrid.delete_teammateDelete teammate
- sendgrid.delete_a_segmentDelete a segment
- sendgrid.delete_a_subuserDelete a subuser
- sendgrid.delete_a_campaignDelete a campaign
- sendgrid.delete_an_accountDelete an account
- sendgrid.delete_an_ip_poolDelete an IP Pool
- sendgrid.delete_a_templateDelete a template
SendGrid in three steps.
- 01Your users connect SendGridThey add their SendGrid api key on Arc0 Connect, under your brand. It goes straight into the vault.
- 02You set the rulesReads run, writes like “create list” can wait for the user, and “delete blocks” can be denied outright.
- 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.
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
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
Use SendGrid from any agent.
SendGrid and Arc0, answered.
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.
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.
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.
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.
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.
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