MCP · Nous Research

Marketing MCP for Hermes Agent

Hermes runs on your own infrastructure and remembers what it learns. Connect Spreeflo and your marketing work becomes something it gets better at.

Connect Hermes Agent

Self-hosted, open source·Persistent memory·Reachable from chat apps

MCP server config
{
  "mcpServers": {
    "spreeflo": {
      "url": "https://mcp.spreeflo.com/mcp",
      "headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
    }
  }
}

Writes apply to your live workspace immediately — there's no approval queue here. Keep a human in the loop and check Hermes Agent's confirmation settings first.

60+
tools exposed
0
servers to host
120
tool calls / minute
1
server URL to add

The agent

What is Hermes Agent?

Hermes Agent is Nous Research’s self-hosted, self-improving agent. It runs on your own infrastructure, keeps memory across sessions, reaches you through messaging platforms, and connects to external tool servers over MCP.

Your infrastructure

Because you host it, the agent and its credentials stay inside your own perimeter.

Memory that compounds

Recurring marketing tasks get better over time — it remembers how your segments and templates are structured.

Reachable from chat

Telegram, Slack, Discord and others, so “what did that campaign do?” can be a message rather than a login.

Setup

Connect Hermes Agent in about a minute

A Spreeflo API key, and one entry in Hermes Agent.

Create an API key

In the Spreeflo app, go to Settings → API Keys and click + Add API Key. Name it Hermes Agent so you can revoke this one connection later without touching the others. It goes in the Authorization header — never in the server URL.

Add the Spreeflo MCP server

MCP server config
  1. 1.Add Spreeflo to your Hermes MCP server configuration.
  2. 2.Use the Streamable HTTP form below, with your key in the Authorization header.
  3. 3.Restart the gateway so the new tools are discovered.
{
  "mcpServers": {
    "spreeflo": {
      "url": "https://mcp.spreeflo.com/mcp",
      "headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
    }
  }
}

Because Hermes is self-hosted, keep the key in an environment variable rather than the config file itself.

Check it works

Ask Hermes Agent for something small — "list my Spreeflo audiences". A working connection is one where your gateway returns real audience names, which also confirms egress is open.

Full setup guide and troubleshooting

In practice

What Hermes Agent does with it

Two ordinary requests, and the Spreeflo tools behind them.

From a chat app

How did the welcome journey do this month?

Checked the journey and its per-template numbers, and replied in the thread:

  • list_journeys
  • get_campaign_performance

Asked and answered over Telegram — no dashboard, no login.

Recurring upkeep

Every Monday, check for contacts going cold and keep the re-engagement segment current.

Scheduled it, and on each run refreshes the segment definition from recent activity:

  • get_segment_definition
  • segment_update
  • get_segment_preview

Scheduled jobs are a Hermes feature; Spreeflo just exposes the tools it calls.

Running it

Self-hosting, memory, and what each one buys you

Hermes is the only client here you run yourself, and the only one that remembers across sessions. Both change the shape of the pairing — mostly in your favour, and in two places worth planning around.

Self-hosting moves the key, not the permissions

Running the agent inside your perimeter means the credential never sits with a vendor, which is a real gain. It does not change what that credential may do: Spreeflo enforces the same tool surface and the same withheld actions whether the caller is your own box or someone else’s cloud.

Memory holds structure, and holds it after rotation

What compounds is knowledge of how your workspace is shaped — which segments exist, how templates are named, what a normal audience looks like. That memory survives a key rotation, so an agent you have revoked still remembers the layout. Clear its memory too if that matters to you.

Scheduled jobs run with nobody reading

Hermes can run marketing upkeep on a cron without a person in the loop. Keep those jobs narrow and idempotent — refreshing a segment definition is safe to repeat, whereas anything that creates an object will happily create it again on every run.

Outbound only, so no inbound rule

Your gateway dials Spreeflo, never the reverse. Self-hosting therefore costs you no firewall exposure: no port to open, no tunnel, no public hostname. Restart the gateway after adding the server, or the new tools will not be discovered.

Your infrastructure, still your live workspace

Self-hosting invites the assumption that everything is now local and reversible. Spreeflo is not — it is a hosted service the agent reaches over the network, and its writes are as permanent as any other client’s. The perimeter you gained protects the key and the conversation; it does not put a staging copy of your workspace behind it.

Why this pairing

Hermes Agent + Spreeflo

  • Self-hosted, so credentials stay in your perimeter
  • Memory makes recurring marketing tasks cheaper each time
  • Reachable from the chat apps you already use
  • Scheduled jobs turn upkeep into background work
  • No MCP tool for deletes or sends, regardless of host

Coverage

Everything it can touch

The same surfaces you work with in the app, exposed as tools — and a short list that is deliberately off limits.

Self-hosted and scheduled, Hermes gravitates to the upkeep end — segment definitions kept current, journey and campaign numbers answered from a chat thread.

Audience

  • Audiences and contacts
  • Segments, static and dynamic
  • Tags
  • Custom contact attributes
  • CSV import

Sending

  • Campaigns and journeys
  • Email templates
  • Web push templates
  • Sender and domain identities

Capture

  • Forms and question types
  • Inline and popup embeds
  • Response summaries
  • CSV export of responses

Insight

  • Campaign and web push performance
  • Tracked events and pages
  • Link clicks
  • Form analytics

What MCP can’t do

These are irreversible or they reach real people, so they are removed from the surface rather than left to your client's confirmation settings. A person does them in the app.

Deleting anything Starting a campaign Resuming a campaign or journey Sending or scheduling a broadcast Publishing a form
See the full tool catalog

Supercharge your marketing automation

14-day free trial
No commitment
Cancel anytime

FAQ

Questions, answered.

No. The tool surface, the withheld actions and the rate limit are enforced by Spreeflo’s server, so they are identical whether the caller runs on your hardware or a vendor’s. What self-hosting changes is custody of the key and the conversation, not the reach of either.

Whatever it saw in a session can end up in memory, and that includes anything a tool returned — contact previews among it. Since you host the agent, that store is yours to inspect and clear. Worth knowing before you ask it to look at a large audience, and worth clearing alongside any key you revoke.

No. The MCP connection is outbound HTTPS from your gateway to Spreeflo, so nothing needs to reach in. You can run it entirely behind NAT with no inbound rules at all — the same setup works on a home server and a hardened VPS.

No. Spreeflo runs a hosted MCP server, so Hermes Agent calls it directly over Streamable HTTP — nothing to install, nothing to self-host, no SDK to keep up to date. A server URL and a sign-in (or, for a headless agent, an API key in the Authorization header) are the whole integration.

It cannot delete anything or start a send. Spreeflo has no MCP tool for deletes, starting or resuming a campaign or journey, sending or scheduling a broadcast, or publishing a form, rather than leaving them to client settings. Those stay in the Spreeflo app, where a person does them. Journeys you have already switched on keep running, though, so editing a contact, its tags, a segment or an email template, or importing contacts, can set one off, just as the same edit would in the app.

The key resolves to exactly one workspace, and every action runs as the person who owns that key — their membership re-verified on each request. The audit trail names a real person, so agent-made changes are attributable.