Sessy — Amazon SES observability
io.github.marckohlbruggePublished by GitHub account marckohlbruggev1.0.0Updated Oct 24, 2026
Read-only Amazon SES observability: search events, inspect bounces, pull delivery stats.
Overview
Read-only Amazon SES observability server that lets an assistant search email events, inspect bounces and pull delivery stats.
- What you can do
- Search and inspect email events, including a message's full delivery timeline with bounce diagnostics
- Pull aggregate delivery statistics for your SES sending
- Create and rename sources
- Fetch SES wiring details such as webhook URL, configuration set and topic names to set up a new app
- When to use it
- Useful when you send email through Amazon SES and want an AI coding agent to look into what happened after sending — tracing a bounce, checking delivery timelines, or wiring a new app to SES — without opening the web UI.
- Requirements
- A remote MCP endpoint (api.sessy.do, or your own self-hosted instance's /mcp path). A Sessy API key created in the web UI, sent as an Authorization bearer token. Self-hosting runs via Docker; Cloudflare or CDN bot protection must exempt the /mcp path.
Installation
In SourceWeft
- Open Sessy — Amazon SES observability in the dashboard and add it to a workspace.
- Connect Authorization token credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.marckohlbrugge%2Fsessy/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"sessy-amazon-ses-observability": {
"type": "http",
"url": "https://api.sessy.do/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}README
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.
[Sessy screenshot]Running your own Sessy instance
The easiest way to run Sessy is with Docker:
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. Agents can also create and rename sources and fetch the SES wiring details (webhook URL, configuration set and topic names) to set up a new app end to end. Email data is read-only; retention settings and deleting sources stay in the web UI.
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:
Two things worth knowing:
- Cloudflare / CDN users: bot protection (managed challenges) blocks MCP clients. Exempt the
/mcppath from bot protection or agent requests will fail. - HTTP Basic auth:
/mcpauthenticates with API keys only and ignoresHTTP_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:
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.
Source: README.md at commit 1ebbe41
Tools
0Version history
1- v1.0.0LatestSep 16, 2026
Score
75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.