How to connect SendGrid to Hermes Agent
Connect SendGrid to Hermes with ClawLink: paste your SendGrid key once and 359 tools work from chat. No MCP server to run, nothing stored on your machine.


Deliver transactional and marketing emails. Once connected, Hermes Agent can read and act on SendGrid from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent SendGrid access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical SendGrid setup: pair once in the browser and your always-on Hermes agent can act on SendGrid for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into Hermes to install the plugin and pair your account.
Set up ClawLink for Hermes and tell me when it's ready.
1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin
3. I'll approve it in my browser, then reply "approved".
4. When I say approved, finish setup:
hermes clawlink finish
5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.Setup
It takes three steps to connect Hermes to SendGrid.
1Install and pair
Install the ClawLink plugin, then pair Hermes with a one-time browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable- 2
Connect SendGrid
Paste your API key in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with SendGrid?"
Install by command
The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin # prints an approval link — open it and approve
hermes clawlink finish # after approving in the browser
hermes clawlink testThen connect SendGrid in the ClawLink dashboard — paste your SendGrid API key once.
Verify the connection by asking Hermes:
Send an email to <address> with subject <subject> using a verified sender identity, and show me the exact message body before you send it. Do not send until I approve the body.
Using a different agent?
The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once SendGrid is connected in the dashboard, that agent calls the same 359 SendGrid tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
SendGrid MCP for Hermes
Looking for a SendGrid MCP server for Hermes Agent? ClawLink connects SendGrid to Hermes Agent and exposes 359 SendGrid tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw SendGrid integration works the same way.
The strongest argument against this integration is the one search results make for you: SendGrid is send-only, it has no inbound receiving and no reply threading, and an autonomous agent loop that must read replies cannot live on it alone. That argument is accurate, and the 359 tools below make the point from the inside: every one of them is send, marketing, or account side, from sending mail to building campaigns, templates, and contact lists to reading delivery statistics. There is no pretending the tools read inbound mail, because they do not, and the agent's IMAP side of Hermes handles receiving. What the argument misses is that SendGrid's whole surface being send side is why it is the right connection for the sending half of an agent's email loop. The key is a SendGrid API key pasted once into the hosted setup page and held server-side, which is the direct answer to the search-result warning that you should not paste keys into chat windows: the key never goes into a chat, and it never sits in an environment file on your machine.
What the Hermes Agent SendGrid integration can do
359 SendGrid tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 359.
30 of 359 SendGrid tools for Hermes
| Tool | What it does |
|---|---|
Add or update a contact sendgrid_add_or_update_a_contact | Add or update a SendGrid contact |
Create a campaign sendgrid_create_a_campaign | Create a SendGrid campaign |
Create a custom field sendgrid_create_a_custom_field | Create a SendGrid custom field |
Create a list sendgrid_create_a_list | Create a SendGrid contact list |
Create a transactional template sendgrid_create_a_transactional_template | Create a SendGrid transactional email template |
Get a user s account information sendgrid_get_a_user_s_account_information | Get SendGrid account information |
Get all automation stats sendgrid_get_all_automation_stats | Get SendGrid automation statistics |
Get all categories sendgrid_get_all_categories | List SendGrid email categories |
Get all field definitions sendgrid_get_all_field_definitions | List SendGrid custom field definitions |
Get all sender identities sendgrid_get_all_sender_identities | List SendGrid sender identities |
Get all single sends sendgrid_get_all_single_sends | List SendGrid single sends |
Completed steps sendgrid_completed_steps | Retrieves the verification status of a SendGrid account, checking if Domain Authentication and |
Domain warn list sendgrid_domain_warn_list | Retrieves a list of domains known to implement DMARC (Domain-based Message Authentication |
Download CSV sendgrid_download_csv | Retrieves a presigned S3 URL to download a CSV file of email activity data (up to 1M events |
Export contacts status sendgrid_export_contacts_status | Retrieves the status of a contact export job and provides download URLs when ready |
Export single send stats sendgrid_export_single_send_stats | Exports Single Send campaign statistics in CSV format |
Filter all messages sendgrid_filter_all_messages | Filter and retrieve email activity from the SendGrid Email Activity Feed API |
Filter messages by message ID sendgrid_filter_messages_by_message_id | Retrieve detailed information about a specific email message by its unique message ID |
Get a contact by ID sendgrid_get_a_contact_by_id | Retrieves the full details of a single contact by their unique ID from SendGrid Marketing |
Get a list of all ip addresses on your account sendgrid_get_a_list_of_all_ip_addresses_on_your_account | Fetches your account's IP addresses with details such as pool association and warm-up status |
Get a list of all senders sendgrid_get_a_list_of_all_senders | Retrieves a list of all Sender identities associated with your SendGrid account |
Get a list of subusers assigned to an ip sendgrid_get_a_list_of_subusers_assigned_to_an_ip | Retrieves a list of Subuser IDs assigned to a specific IP address in your SendGrid account |
Get a specific sender sendgrid_get_a_specific_sender | Retrieves the details of a specific Marketing Sender by its unique ID |
Get a user s profile sendgrid_get_a_user_s_profile | Retrieve the authenticated user's profile details |
Get account offerings sendgrid_get_account_offerings | Retrieves the offerings (email packages and add-ons) assigned to a specific customer account |
Get all accounts sendgrid_get_all_accounts | Retrieves all accounts under the organization |
Get all available offerings sendgrid_get_all_available_offerings | Retrieves all available SendGrid offerings for account provisioning |
Get all existing exports sendgrid_get_all_existing_exports | Retrieves all existing contact export jobs from SendGrid Marketing Campaigns |
Get all ip pools that have associated ips sendgrid_get_all_ip_pools_that_have_associated_ips | The function lists your IP Pools and samples up to 10 IPs from each |
Get all single sends stats sendgrid_get_all_single_sends_stats | Retrieve email statistics for SendGrid Single Sends (one-time marketing email campaigns) |
Try it: find the SendGrid tool you need
Browse the 30 SendGrid tools
Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.
Example prompts
Send an email to <address> with subject <subject> using a verified sender identity, and show me the exact message body before you send it. Do not send until I approve the body.
Use sendgrid_get_all_single_sends_stats and sendgrid_filter_all_messages for the last 7 days. Tell me delivered versus bounced rates and which messages had the most failures.
List my existing contacts and lists with sendgrid_get_a_contact_by_id and the list tools, then tell me which segments I could target for a campaign about <topic>. Do not create anything yet.
Show me my transactional templates and tell me which ones are missing a subject line or have a known rendering issue, using the template tools. Do not send anything.
How the SendGrid tools behave
Details that decide whether a SendGrid prompt is a quick answer or a deliverability incident.
- The surface is send, marketing, and account side, in that order of risk. Sending mail and creating campaigns, templates, and contacts are the writes to be deliberate about; the read side covers message history, statistics, sender identities, IP pools, and subusers.
- Sender identity verification gates real sending.
sendgrid_get_all_sender_identitiesandsendgrid_get_a_specific_sendershow which senders are verified; sending from an unverified identity fails with a sender-authentication error before any message goes out. - Contacts are objects, not rows.
sendgrid_add_or_update_a_contact,sendgrid_create_a_list, andsendgrid_create_a_custom_fieldoperate on the account's contact model, so a bad field name or list name lands in shared marketing state, not in a scratch file. - Stats are aggregated on the account side.
sendgrid_get_all_automation_stats,sendgrid_get_all_single_sends_stats, andsendgrid_export_single_send_statsare the report surface; per-message filters likesendgrid_filter_all_messagesare the expensive shape when used to reconstruct what a stats tool already summarizes. - Exports are asynchronous.
sendgrid_export_contacts_statusandsendgrid_download_csvrun a job and download the result, so an agent should poll status rather than assume the CSV arrives instantly. - No inbound surface, by design. None of the tools read received mail; pairing this connection with Hermes' IMAP side is the way the agent gets a full email loop, and prompts should not pretend otherwise.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want SendGrid working from chat.
| Manual | ClawLink | |
|---|---|---|
| Credential handling | Collect, validate, store, and rotate the SendGrid API key yourself, then make sure every tool call uses the right account. | Users complete the hosted ClawLink setup once and the connected SendGrid account becomes available to the agent without you building credential management. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for SendGrid. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right SendGrid actions to the runtime in a format your agent can reliably use. | 359 tools for SendGrid are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes SendGrid to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect SendGrid in the browser, and the 359 tools above work from chat. There is no SDK and no config file, and the SendGrid key you paste at setup is stored server-side rather than kept in your environment. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
Hermes paired but still can't use SendGrid
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
Connection succeeds but no tools appear
Reconnect SendGrid from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling SendGrid tools
SendGrid tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every SendGrid call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
SendGrid returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
SendGrid returns 403 although the account shows as connected
On SendGrid the 403 means the key is authentic but lacks the permission for the action, which is different from a 401 where the key itself is broken or mistyped. The taught causes, in the order search results give them: the key's scope is too narrow (fix: edit the key in SendGrid and switch to Full Access), the request is coming from outside the account's IP access management allowlist, or the account itself is suspended or against a billing or trial limit. A hosted connection fails these exactly like a manual one, because they are SendGrid account state, not connection state. The page's own cause remains the fourth one: a placeholder argument such as YOUR_ID reaching the API literally. Re-paste the current key, confirm the account status, then re-run with real arguments before assuming the connection is at fault.
Ask the agent to diagnose it:
Call sendgrid_get_a_user_s_account_information and tell me the account status, then quote the exact error text from the failed call. Do not retry the failed call yet.SendGrid calls start failing with rate-limit responses
SendGrid rate-limits different endpoints on different windows, and an agent that walks a contact list or message history one page at a time is the traffic shape that meets them. The fix is to narrow and pace the work: ask for a bounded page rather than a full export, use the statistics tools that aggregate instead of the per-record filters, and have the agent report the error's rate-limit detail rather than retry blindly. These limits are Twilio-side and documented in their docs; no reconnect changes them.
Ask the agent to diagnose it:
Tell me how many SendGrid calls you made in the last minute and what you were enumerating. Quote the exact error text and any rate-limit headers. Do not call SendGrid again until I reply.SendGrid tools are missing, or one tool name is not found
Two failures share this symptom. If no SendGrid tools appear at all, the connection or pairing is incomplete: confirm the plugin was installed with --enable, that hermes clawlink begin and hermes clawlink finish both ran, and that SendGrid shows as connected in the dashboard. If most tools work and one name fails, the name is wrong rather than missing, and the error lists the closest real ones. There is also a first-call timing case: schemas load on demand, so the opening SendGrid call in a fresh session can arrive before the catalog and needs one retry. What does not apply is the usual advice for this symptom, which assumes a community MCP server missing from a client config file; there is no local server here.
Ask the agent to diagnose it:
List the SendGrid tools you actually have access to. If there are none, say so plainly and tell me whether SendGrid shows as connected. Do not guess tool names.API key setup works but results look incomplete
Double-check that the API key for SendGrid has the right scopes or account access. A valid key can still be too limited for some reads or writes.
FAQ
Is there a Hermes Agent SendGrid integration?
Yes. ClawLink is the fastest way to connect Hermes to SendGrid: link your SendGrid account once in the browser and Hermes Agent can call the SendGrid API through 359 ready-made tools — no custom code or token handling.
How do I connect SendGrid to Hermes with ClawLink?
Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect SendGrid in the dashboard and Hermes can use it from the next message — no config files, and the SendGrid key you paste is stored server-side instead of in your environment.
How long does it take to connect SendGrid to Hermes Agent?
About two minutes. Sign in, click Connect next to SendGrid in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.
Why use ClawLink instead of wiring SendGrid up myself?
The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want SendGrid working from chat.
Can the agent read replies or thread conversations through SendGrid?
No, and that is the honest answer the AI Overviews give about this provider: SendGrid is send-only, with no inbound inbox and no reply threading. Reading replies belongs to an IMAP connection, which Hermes handles separately. This integration is the sending and marketing surface: mail, templates, campaigns, contacts, lists, and delivery analytics. If your loop depends on reading what people write back, pair this connection with the agent's email reading side rather than expecting SendGrid to cover it.
Which key does this need, and what scope?
A SendGrid API key created in your SendGrid dashboard under Settings, API Keys, pasted once on the hosted setup page. Scope matters more here than on most providers: a restricted key fails specific classes of calls, and the fix search results teach is editing the key in SendGrid and switching it to Full Access. A 403 with a valid-looking connection is the classic shape of a scoped key meeting an endpoint its scope does not cover; a 401 is the key itself being wrong or regenerated. Because the key is stored server-side, rotating it in SendGrid means re-pasting the current key in one place.
Is it safe to let the agent use my SendGrid key?
The search-result safety framing warns against two things this setup avoids by construction: pasting keys into chat windows, and keys sitting in files on machines. Here the key goes into the hosted setup page once and is never exposed to the chat, and disconnecting SendGrid in the dashboard revokes the agent's use of it immediately. The remaining risk is reputational rather than credential-based: an agent that mass-sends from a warm domain can hurt deliverability, so send-triggering prompts deserve a confirmation step. Limited-scope keys are also worth considering if the account supports them, though Full Access is what most SendGrid integrations need.
What can the agent do in SendGrid?
The sending side and the marketing side: send mail and filter message history, manage contacts, lists, and custom fields, build and send campaigns, transactional templates, and single sends, manage sender identities and sender verification, read account information, IP pools and subusers, categories, automation and single-send statistics, and pull exported contact data. It is a large surface, and because SendGrid counts account objects rather than chat steps, the risk of a bad prompt is a badly built campaign or contact list, not a broken connection.
Hermes paired but still can't use SendGrid
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.