Skip to the content
Agent Tools

Email Engagement Report in ChatGPT

Events to recipient report. The MCP server is https://emailpld.openkrill.app/mcp. No key. The steps below are only for ChatGPT. A call to engagement_report was checked against that server on 2026-10-08.

Connection
Streamable HTTP
API key
None needed
Free limit
200 calls a day
Protocol
MCP 2024-11-05

Questions it answers

Email Engagement Report turns a raw email event export into a per-recipient engagement report. Paste a Customer.io reporting webhook file as NDJSON or JSON. SendGrid and Mailgun event objects are accepted when their field names are present.

Add an optional recipient CSV with recipient_id, email and an external id such as npi. Add an optional campaign CSV with deployment_key, deployment_code, campaign_name, client and deploy_date.

It counts each event id once, joins events to recipients by id, delivery id or email, and applies editable rules. Machine opens from Apple privacy proxies and link-scanner clicks stay apart from human opens. Unique open and unique click are one per recipient per send. A bounce clears delivered. Opens and clicks outside the time window stay out of the file.

The answer has a per-send summary, a per-recipient table, a CSV, and an exceptions list of events with no recipient. The page at the tool host runs the same report on pasted text.

There is no account and nothing is stored. The report is computed for the call and is not kept or cached. The only lasting record is a daily count of calls per tool.

What it can do

  • Removes repeated events by event id
  • Joins events to recipients by id, delivery id or email
  • Keeps machine opens and link-scanner clicks apart from human opens
  • Counts unique open and unique click once per recipient per send
  • Clears delivered when a bounce arrives, inside an editable time window
  • Returns a summary, a recipient table, a CSV and unmatched events

Tools

  • engagement_report, Build an email engagement report. Use this when the user pastes a Customer.io reporting webhook export, or a SendGrid or Mailgun event file, and wants a per-recipient engagement report or CSV. Pass events as NDJSON or a JSON array. Optional recipients_csv uses recipient_id, email and npi or external_id. Optional campaigns_csv uses deployment_key and deployment_code. Returns a per-send summary, up to 500 recipient rows, a CSV of every row, and events with no recipient. Nothing is stored. Do not use it to send mail or to call a mail platform API.

Add Email Engagement Report in ChatGPT

ChatGPT does not read a local config file. A custom MCP server is added in the product, and only after developer mode is on. These steps were checked against OpenAI's plugin connect guide and the ChatGPT MCP guide on 2026-10-01. Developer mode can be hidden by a workspace policy, so a Team or Enterprise admin may have to allow it first.

  1. Open ChatGPT settings, then Security and login, and turn on Developer mode.
  2. Open ChatGPT plugins and select the plus button.
  3. Enter a name such as "Email Engagement Report" and a one-line description of what you want it to answer.
  4. Under Connection, choose the public endpoint and paste https://emailpld.openkrill.app/mcp. Include the /mcp path. Do not add a tunnel id: this server is already public.
  5. Create the connection and review the tools ChatGPT lists. You should see engagement_report. The feedback tools on the same server are optional and not required for the lookup.
  6. Start a new conversation, add the connection from the tools menu, and ask: Turn this Customer.io webhook export into a per-recipient engagement report.

No API key and no OAuth client id are required. The server answers without a login. Calls are limited per network and per day, and a limit comes back as a tool error rather than a partial answer. If the tool list is stale after a server change, open the connection and select Refresh, then start a new conversation.

The ChatGPT desktop app, Codex CLI and IDE extension share a different config. In the desktop app, open Settings, then MCP servers, choose Add server, select Streamable HTTP, and paste the same URL. In ~/.codex/config.toml the equivalent is a table named mcp_servers.emailpld with url = "https://emailpld.openkrill.app/mcp". ChatGPT on the web does not read that file. A published directory listing is also a different path: this page is the developer-mode connection, not a claim that Email Engagement Report is already in the ChatGPT directory.

Treat the server as untrusted until you have read a few answers. A remote MCP server sees the arguments the model sends. Email Engagement Report is read-only and documents what it sends onward on the privacy page.

A call checked on 2026-10-08

The events are made-up sample rows with one repeated event id, one machine open and one click. No real person is in the file. The request below was posted to https://emailpld.openkrill.app/mcp as tools/call. HTTP 200. Source: the Email Engagement Report server, read 2026-10-08.

{
  "method": "tools/call",
  "params": {
    "name": "engagement_report",
    "arguments": {
      "events": "{\"event_id\":\"e1\",\"object_type\":\"email\",\"metric\":\"sent\",\"timestamp\":1789480800,\"data\":{\"newsletter_id\":41,\"delivery_id\":\"D1\",\"identifiers\":{\"id\":\"R-1\",\"email\":\"ada@example.com\"}}}\n{\"event_id\":\"e1\",\"object_type\":\"email\",\"metric\":\"sent\",\"timestamp\":1789480801,\"data\":{\"newsletter_id\":41,\"delivery_id\":\"D1\",\"identifiers\":{\"id\":\"R-1\",\"email\":\"ada@example.com\"}}}\n{\"event_id\":\"e2\",\"object_type\":\"email\",\"metric\":\"opened\",\"timestamp\":1789480900,\"data\":{\"newsletter_id\":41,\"delivery_id\":\"D1\",\"identifiers\":{\"id\":\"R-1\"},\"prefetched\":true}}\n{\"event_id\":\"e3\",\"object_type\":\"email\",\"metric\":\"clicked\",\"timestamp\":1789481000,\"data\":{\"newsletter_id\":41,\"delivery_id\":\"D1\",\"identifiers\":{\"id\":\"R-1\"}}}",
      "recipients_csv": "recipient_id,email,npi\nR-1,ada@example.com,9999000001\n"
    }
  }
}
  • duplicates removed. 1
  • recipients. 1 returned
  • unique open. 1
  • unique click. 1
  • notice. Computed for this call only. Nothing is stored.

Repeat the call yourself if you need a newer reading. Cached answers expire. A rate limit is not a result: wait and try again. Nothing in the call is a ranking, a filing, or advice.

Use it in other apps

Frequently asked questions

How do I install the Email Engagement Report MCP server in ChatGPT?

Add the server configuration pointing to https://emailpld.openkrill.app/mcp using streamable HTTP in ChatGPT. Follow the client configuration steps and restart ChatGPT.

Do I need an API key to run Email Engagement Report in ChatGPT?

No API key is needed to connect and run calls. The server provides an unpaid network allowance. An optional key can be supplied for higher limits.

What should I do if Email Engagement Report does not connect in ChatGPT?

Check that your client config uses the streamable HTTP endpoint https://emailpld.openkrill.app/mcp without local command wrappers, and restart your client.

Words on this page

Source: plugin listing for emailpld in this repository, and a live tools/call on 2026-10-08. As of 2026-10-08.