PluginBench
MCP Server
Active

Sessy — Amazon SES observability MCP Server

io.github.marckohlbrugge/sessy

Open-source email observability for AWS SES: search events, inspect bounces, and pull delivery stats via AI agents.

What is the Sessy — Amazon SES observability MCP server?

Sessy is an open-source email observability platform for Amazon SES that provides a beautiful interface to track deliveries, bounces, complaints, opens, and clicks. It ships with an MCP server that allows AI agents like Claude and Cursor to query email data, search events, inspect delivery timelines with bounce diagnostics, and retrieve aggregate statistics—all read-only.

Sessy gives you visibility into what happens after you send emails through AWS SES. Instead of paying for expensive email service wrappers, you run your own Sessy instance (via Docker, Kamal, or Dokku) and get a web UI plus MCP integration so AI agents can help you analyze email performance, troubleshoot delivery issues, and monitor SES activity.

How to install Sessy — Amazon SES observability

Copy-paste configuration for popular MCP clients.

transport: http
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • Authorization
    required
    secret

    Bearer token from your Sessy API keys page (https://app.sessy.do/api_keys). Self-hosters: point the URL at your own instance's /mcp endpoint instead of api.sessy.do. Setup: https://sessy.do/docs/mcp

~/.cursor/mcp.json
{
  "mcpServers": {
    "sessy": {
      "url": "https://api.sessy.do/mcp"
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • search_events — Search and query email events in your SES account
  • inspect_message — Inspect a message's full delivery timeline with bounce diagnostics
  • pull_stats — Retrieve aggregate email delivery and engagement statistics

Use cases

  • Ask Claude to analyze why emails are bouncing and get detailed diagnostics from your SES account
  • Query email delivery stats and engagement metrics (opens, clicks) programmatically via AI agents
  • Search your email event history to investigate delivery issues or compliance questions
  • Monitor SES performance trends and get alerts on bounce or complaint spikes
  • Troubleshoot email configuration problems by inspecting full delivery timelines for specific messages

Sessy — Amazon SES observability MCP server FAQ

What is Sessy?

Sessy is an open-source email observability platform for AWS SES. It provides a web UI to track email deliveries, bounces, complaints, opens, and clicks, plus an MCP server so AI agents can query your email data programmatically.

Is Sessy free?

Yes, Sessy is open-source and free. You run your own instance using Docker, Kamal, or Dokku. You only pay for AWS SES usage itself, which is very cost-effective.

How do I connect Sessy to Claude or Cursor?

Create an API key in the Sessy web UI (API keys page), then use `claude mcp add --transport http sessy https://your-sessy-host/mcp --header "Authorization: Bearer YOUR_API_KEY"` or add it to your Cursor/Claude config. See `/docs/mcp` on your instance for full instructions.

What authentication does Sessy require?

Sessy uses API keys for MCP access. You create keys in the web UI. The MCP endpoint (`/mcp`) authenticates with API keys only and ignores HTTP Basic auth. If you enable HTTP Basic auth later, it does not revoke existing API keys.

Are all MCP tools read-only?

Yes, all MCP tools are read-only. You can search events, inspect messages, and pull stats, but cannot modify or delete data through the MCP server.

What if I use Cloudflare or a CDN?

Bot protection (managed challenges) on Cloudflare blocks MCP clients. Exempt the `/mcp` path from bot protection or agent requests will fail.

README (reference)

Source of truth, from the repository.

<img src="docs/icon.svg" height="64" alt="Sessy icon">

Sessy

Open-source email observability for AWS SES by Marc Köhlbrugge.

What is Sessy?

Amazon SES is a fantastic email service: cost-effective, reliable, and great deliverability. But it's frustratingly difficult to see what's actually happening with your emails.

That's why many people turn to overpriced email services that are often just glorified SES wrappers with a nice UI. You end up paying a lot for something you could do yourself.

Sessy is the open-source alternative. Use raw SES and still get a beautiful interface to see what happens after you hit send: deliveries, bounces, complaints, opens, clicks, and more.

<img src="docs/screenshot.png" alt="Sessy screenshot">

Running your own Sessy instance

The easiest way to run Sessy is with Docker:

docker run -p 80:80 \
  -e SECRET_KEY_BASE=$(openssl rand -hex 64) \
  -e DISABLE_SSL=true \
  -v sessy:/rails/storage \
  ghcr.io/marckohlbrugge/sessy:main

See Docker deployment docs for full configuration options.

Want to deploy your own modified version? See Kamal deployment docs for deploying from a fork.

Using Dokku? See Dokku deployment docs.

Need help configuring AWS SES itself? See AWS SES setup guide.

For hardening recommendations, see SES security and deliverability best practices.

MCP server for AI agents

Sessy ships an MCP server at /mcp, so AI coding agents (Claude Code, Cursor, Codex) can query your email data: search events, inspect a message's full delivery timeline with bounce diagnostics, and pull aggregate stats. All tools are read-only.

Create an API key on the API keys page in the web UI, then follow the connect instructions at /docs/mcp on your instance. For example, for Claude Code:

claude mcp add --transport http sessy https://your-sessy-host/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Two things worth knowing:

  • Cloudflare / CDN users: bot protection (managed challenges) blocks MCP clients. Exempt the /mcp path from bot protection or agent requests will fail.
  • HTTP Basic auth: /mcp authenticates with API keys only and ignores HTTP_AUTH_*. Enabling HTTP Basic later does not revoke previously created API keys — review the API keys page after locking down an install.

Hosted version

We're working on a managed version of Sessy for those who'd rather not run their own instance.

You'll notice references to it in this codebase: a saas/ directory, Gemfile.saas, and the occasional Sessy.saas? check. These power the hosted version and are intentionally kept in this repository for simplicity, rather than maintaining separate repos. None of it affects self-hosting: the default bundle ignores the saas/ engine entirely, and the test suite verifies the open-source version behaves identically without it.

Jobs dashboard

Sessy uses Solid Queue for background jobs. A web dashboard is available at /jobs to monitor queues, retry failed jobs, and view recurring tasks.

Development

You are welcome to modify Sessy to your liking.

To get started:

bin/setup
bin/dev

Contributing

We welcome contributions! Since we're still in a very early stage, please keep the following in mind:

  • Typos and obvious bugs: Feel free to submit a PR directly.
  • Code changes: Please try to match our existing style.
  • New features: Please open an issue first to discuss before implementing.
  • Deployment docs: We keep first-party deployment docs focused on broad, open, self-hosted paths we actively use (for example Docker, Kamal, and Dokku). We generally do not add provider-specific deployment guides to this repository.

For anything beyond small fixes, please open an issue first so no one wastes their time on something we might not merge.

License

Sessy is released under the O'Saasy License, except where a subdirectory specifies otherwise (for example, the Claude and Cursor plugin packages are MIT).

Inspiration

Sessy was heavily inspired by Fizzy and we're grateful to 37signals for open-sourcing their codebase.

Related MCP servers

Read a Tierward project's governance state (doctor, team-settings, arch-audit, skills) over MCP.

4
JavaScript
MIT
View repository →

Automate Substack publishing, subscriber management, and analytics through AI with 27 MCP tools.

80
JavaScript
MIT
View repository →

Move data between 15+ databases, queues and files at high throughput, without it entering context

7
TypeScript
MIT
View repository →

Simulate and analyze stochastic Boolean network models with MaBoSS for systems biology research.

18
Python
View repository →

Build and analyze signalling networks from interaction databases using pathway data.

18
Python
View repository →

Build, inspect, and export PhysiCell and PhysiBoSS configuration files with AI assistance.

18
Python
View repository →