← All integrations

Keen MCP server

16 operations0 webhooks

Event analytics with Keen - record single events and batches, inspect the collections and property types Keen inferred, run count, sum, average and the rest of its analyses, and manage saved queries and cached datasets.

Try Keen with your agent

Connect Keen, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.

Using Corsair, show me what you can do in Keen on my account, then run one read-only example and show me the result.

Runs once, when you ask

Keen tools and triggers

Tools are what your agent can do in Keen through Corsair's MCP server. Triggers are the Keen events a routine can start from.

Saved Queries

  • CreateWrite

    Create or replace a saved query by name, with the refresh rate that caches its result

    savedQueries.create

  • DeleteDestructive

    Delete a saved query and its cached result; it cannot be restored

    savedQueries.delete

  • GetRead-only

    One saved query’s definition

    savedQueries.get

  • ListRead-only

    Every saved query on the project, with its definition and refresh rate

    savedQueries.list

  • ResultRead-only

    The cached result of a saved query, which is what makes a dashboard load instantly

    savedQueries.result

Datasets

  • DeleteDestructive

    Delete a cached dataset and its computed rows; it cannot be restored

    datasets.delete

  • GetRead-only

    One cached dataset’s definition, including how far behind its computation is

    datasets.get

  • ListRead-only

    Cached dataset definitions, paged by `after_name`; `next_after_name` carries the cursor

    datasets.list

  • ResultRead-only

    A cached dataset’s computed rows, selected by the values of its `index_by` properties

    datasets.result

Collections

  • GetRead-only

    One collection’s property names and their inferred types

    collections.get

  • ListRead-only

    Every event collection on the project, with its properties and types

    collections.list

Events

  • RecordWrite

    Record one event in a collection; Keen answers `created` and takes up to 10 seconds to make it queryable

    events.record

Connect Keen to Claude, ChatGPT or Cursor

  1. 1

    Connect Keen in Corsair

    Add your Keen API key once in Corsair. Corsair stores the credential encrypted and makes the Keen API calls for your agent, so it never goes into a prompt or a config file. Connect Keen

    If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Keen. On a ChatGPT personal plan, connect Keen here first.

  2. 2

    Add Corsair's MCP server to your agent

    Every client uses the same address:

    https://mcp.corsair.dev/mcp
    Open Customize → Connectors → Add custom connector, paste the address, then select Connect.

    Codex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client

  3. 3

    Sign in and choose what needs your approval

    Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Keen's read and write operations run right away and its 2 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.

FAQ

Install corsair and @corsair-dev/keen, add the Keen plugin, and connect with an API key. Then call methods like corsair.keen.api.collections.get() from your app. Corsair keeps each tenant isolated.

Yes. Keen requires an API key from your Keen account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.

Yes. One Corsair client can hit Keen, GitHub, Notion, Stripe, and the rest. Trigger Keen from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.

Teams use Corsair for event analytics with Keen - record single events and batches, inspect the collections and property types Keen inferred, run count, sum, average and the rest of its analyses, and manage saved queries and cached datasets. Common builds include sync jobs, admin tooling, and agents that call Keen APIs from your backend.

The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Keen API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.

We maintain @corsair-dev/keen in the open repo. When Keen ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.

No. Corsair does not read your Keen data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Keen data on your behalf.

Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.

Yes. Put Keen on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 2 destructive Keen operations. You can change a link's mode at hub.corsair.dev/me.