Sessy logo

Sessy

Community
marckohlbrugge

Open-source email observability for AWS SES

Publishermarckohlbrugge
Repositorysessy
LanguageRuby
Forks
43
Stars
933
Available tools
0
Transport typestdio
Categories
Links
  • Connect tools to AI workflows

    Sessy exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 0 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    933 stars and 43 forks from the linked repository.

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.

Running your own Sessy instance

The easiest way to run Sessy is with Docker:

bash
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:

bash
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:

bash
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.

Use Sessy MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Sessy is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Sessy as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Sessy MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "sessy": {
      "command": "npx",
      "args": [
        "-y",
        "<mcp-server-package>"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Sessy MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Sessy MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Sessy to help me with this task?
Sessy
Sure. I read it.
Here is what I found using Sessy.

Frequently asked questions

What is the Sessy MCP server used for?

Sessy is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Sessy MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Sessy with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Sessy MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Sessy connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Sessy MCP to TypingMind?

Sessy runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does Sessy MCP provide in TypingMind?

Sessy exposes MCP capabilities that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Sessy MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Sessy requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇