# Sequin Stream MCP connector

Connect Sequin Stream to Claude, ChatGPT, Cursor, or any MCP client and manage your Postgres databases, sink consumers, HTTP endpoints, and backfills in plain language, with every action running as the signed-in person and logged.

Source: https://elaichi.ai/connectors/sequinstream/

## Facts

| | |
| --- | --- |
| Application | Sequin Stream |
| Category | Database |
| AI tools | 27 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | Yes |

## What you can ask once Sequin Stream is connected

- List all Sequin Stream backfills started this week.
- Which Postgres databases feed our production HTTP endpoints?
- Create a backfill for the orders table in Sequin Stream.

## Connect Sequin Stream in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Sequin Stream.
2. Optionally set Share with, then press Connect.
3. Paste a Sequin Stream API key. One person generates a token in Sequin Stream and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Sequin Stream tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Sequin Stream to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Sequin Stream to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Sequin Stream to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Sequin Stream to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Sequin Stream tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Sequin Stream through Elaichi

### Check every sink before a release

Data engineering. Ask which sink consumers are running in Sequin Stream, which are paused, and where each one is delivering, so you know the pipeline is healthy before you ship.

### Start a backfill after a schema change

Platform. Once a table has been altered, ask the agent to create a backfill for it in Sequin Stream and keep an eye on it until the consumer has caught up.

### Find out why the warehouse is behind

Analytics. When numbers look stale, ask which backfills are still in progress and which sink consumers feed that table, and get a plain answer instead of opening three dashboards.

### Test a database connection before anyone pages

Operations. Run a connection test against a Postgres database in Sequin Stream and refresh its table list, so a dropped credential is caught during the day and not at two in the morning.

### Point a sink at a new webhook

Product engineering. Create or update an HTTP endpoint in Sequin Stream, then change the sink consumer to deliver there, all from the same conversation where you are writing the receiving code.

### Review every connected Postgres database

IT. List the Postgres databases, HTTP endpoints, and pull consumers registered in Sequin Stream, spot the ones nobody remembers setting up, and remove them.

## Frequently asked questions

### How do I connect Sequin Stream to Claude?

In Elaichi, choose Sequin Stream, paste in the API key from your Sequin Stream account, and the connection is live. Then in Claude open Customize, then Connectors, then Add, and paste the Elaichi endpoint, https://api.elaichi.ai/mcp. There is no OAuth application to register for Sequin Stream and no client ID or secret to generate. The whole thing takes a few minutes.

### Does Sequin Stream work with ChatGPT and Cursor as well as Claude?

Yes. Once Sequin Stream is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, is added to Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Sequin Stream once and every client you use can reach it.

### What can an AI agent actually do with my Sequin Stream data?

An agent can list the Postgres databases, sink consumers, HTTP endpoints, and backfills in your Sequin Stream account, look at any one of them in detail, and create, update, or remove them. It can also run a connection test against a database and refresh its table list. In practice that means asking whether a sink is paused, starting a backfill after a schema change, or pointing a consumer at a new HTTP endpoint, all in plain language.

### Does connecting Sequin Stream give the AI access to every database and consumer?

The agent can only reach what the API key used to connect Sequin Stream can reach, and nothing beyond that. Elaichi can then narrow that further, for example allowing a team to view sink consumers and backfills without being able to create or delete them. Elaichi never widens what Sequin Stream itself allows, it only restricts it.

### Can my team share one Sequin Stream connection?

Yes. One person connects Sequin Stream in Elaichi and shares the connection with a team, and nobody else ever sees or handles the API key. Each teammate still signs in to Elaichi as themselves, so every backfill they start or consumer they change is recorded in the audit log under their own name.

### Can I stop an agent from deleting or changing things in Sequin Stream?

Yes. Restrictions in Elaichi apply per action, so you can allow listing and viewing Postgres databases, sink consumers, and backfills in Sequin Stream while blocking create, update, and delete. A blocked action is never shown to Claude, ChatGPT, Cursor, or any other client, so no prompt, however worded, can reach it.

### What happens to a Sequin Stream connection when someone leaves?

When a person is offboarded in Elaichi, their access to Sequin Stream through Elaichi ends at once, in every client they had set up. A Sequin Stream connection that was shared with the team keeps working for everyone else. If you ever want to remove Sequin Stream entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client at the same time.

## All 27 Sequin Stream tools

Every tool below is callable through https://api.elaichi.ai/mcp once Sequin Stream is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Create a Sequin Stream backfill** (Create). Create a new backfill for a Sequin sink, starting it in the active state. Returns: id, state, sink_consumer, rows_initial_count, rows_processed_count, rows_ingested_count, inserted_at, updated_at, canceled_at, completed_at, table, sort_column. Required: sink_id_or_name. Specify table when the sink is configured to stream all tables in a schema.
- **Delete a Sequin Stream backfill by ID** (Delete). Delete a Sequin backfill by id. Returns: id, deleted. Required: sink_id_or_name, id.
- **Get single Sequin Stream backfill by ID** (Get). Get details of a specific Sequin backfill by id. Returns: id, state, sink_consumer, rows_ingested_count, rows_processed_count, rows_initial_count, inserted_at, updated_at, canceled_at, completed_at, table, sort_column. Required: sink_id_or_name, id.
- **List all Sequin Stream backfills** (List). List all backfills for a Sequin sink. Returns: id, state, sink_consumer, rows_ingested_count, rows_processed_count, rows_initial_count, inserted_at, updated_at, canceled_at, completed_at, table, sort_column. Required: sink_id_or_name.
- **Update a Sequin Stream backfill by ID** (Update). Update the state of a Sequin backfill, for example to cancel an active backfill. Returns: id, state, sink_consumer, rows_ingested_count, rows_processed_count, rows_initial_count, inserted_at, updated_at, canceled_at, completed_at, table, sort_column. Required: sink_id_or_name, id.
- **Create a Sequin Stream http endpoint** (Create). Create a new HTTP endpoint in Sequin (regular HTTP, webhook.site, or local type). Returns: id, name, url, headers, encrypted_headers (response fields vary by endpoint type). Required: name.
- **Delete a Sequin Stream http endpoint by ID** (Delete). Delete an HTTP endpoint in Sequin by id. Returns: id, deleted.
- **Get single Sequin Stream http endpoint by ID** (Get). Get details for a specific HTTP endpoint in Sequin by id. Returns: id, name, url, headers, encrypted_headers (fields vary by endpoint type: regular, webhook.site, or local).
- **List all Sequin Stream http endpoints** (List). List all HTTP endpoints in Sequin. Returns: id, name, url, headers, encrypted_headers per endpoint (fields vary by type: regular, webhook.site, or local).
- **Update a Sequin Stream http endpoint by ID** (Update). Update an existing HTTP endpoint in Sequin by id. Returns: id, name, url, headers, encrypted_headers (fields vary by endpoint type: regular, webhook.site, or local).
- **Create a Sequin Stream postgres database** (Create). Create a Sequin Postgres database connection with a replication slot. Returns: id, name, hostname, port, database, ssl, ipv6, use_local_tunnel, replication_slots. Required: name, replication_slots (exactly one slot). Supply either url or individual connection params (hostname, database, username, password).
- **Delete a Sequin Stream postgres database by ID** (Delete). Delete a Sequin Postgres database connection and its associated replication slot by id. Returns: success, id. Required: id. Fails with a validation error if the database has associated sink consumers or WAL pipelines.
- **Get single Sequin Stream postgres database by ID** (Get). Get a single Sequin Postgres database connection by id. Returns: id, name, hostname, port, database, username, ssl, ipv6, use_local_tunnel, pool_size, queue_interval, queue_target, replication_slots. Required: id.
- **List all Sequin Stream postgres databases** (List). List all Sequin Postgres database connections in your account. Returns: id, name, hostname, port, database, username, ssl, ipv6, use_local_tunnel, pool_size, queue_interval, queue_target, replication_slots.
- **Update a Sequin Stream postgres database by ID** (Update). Update an existing Sequin Postgres database connection by id. Returns: id, name, hostname, port, database, ssl, ipv6, use_local_tunnel, replication_slots. Required: id. When updating replication_slots, supply exactly one slot object including its id.
- **Create a Sequin Stream sink consumer** (Create). Create a new sink consumer in Sequin. Returns: id, name, status, database, source, destination, actions, batch_size, load_shedding_policy, health, and more. Required: name, database, destination.
- **Delete a Sequin Stream sink consumer by ID** (Delete). Delete a Sequin sink consumer by id. Returns an empty 204 response on success.
- **Get single Sequin Stream sink consumer by ID** (Get). Get a single Sequin sink consumer by id. Returns: id, name, status, database, source, destination, actions, batch_size, load_shedding_policy, message_grouping, health, and more.
- **List all Sequin Stream sink consumers** (List). List all Sequin sink consumers. Returns per record: id, name, status, database, source, destination, actions, batch_size, load_shedding_policy, and health.
- **Update a Sequin Stream sink consumer by ID** (Update). Update an existing Sequin sink consumer by id. Returns: id, name, status, database, source, destination, actions, batch_size, load_shedding_policy, message_grouping, health, and more.
- **Update a Sequin Stream http pull consumer by ID** (Update). Acknowledge messages in a Sequin http_pull_consumer, marking them as processed and removing them from the stream. Returns: success. Required: ack_ids.
- **List all Sequin Stream http pull consumers** (List). Receive next messages from a Sequin http_pull_consumer stream. Returns: ack_id, record, action, changes, and metadata per message. Use batch_size to request multiple messages at once and wait_for to enable long polling.
- **Create a Sequin Stream postgres database table refresh** (Create). Trigger a table refresh for a Sequin PostgreSQL database, causing Sequin to re-sync its internal list of available tables from the upstream database. Returns an empty 204 response on success. Required: database_id_or_name.
- **Create a Sequin Stream postgres database connection test** (Create). Test the connection for an existing Sequin Postgres database, verifying network reachability, authentication, connect permissions, and replication slot validity. Returns an empty 204 response on success. Required: database_id_or_name.
- **List all Sequin Stream http pull consumer messages** (List). Receive pending messages from a Sequin HTTP pull consumer. Returns messages including ack_id and data (the record payload with metadata). Required: consumer_id_or_name.
- **Create a Sequin Stream http pull consumer ack** (Create). Acknowledge one or more messages for a Sequin HTTP pull consumer, marking them as successfully processed and removing them from redelivery. Required: consumer_id_or_name, ack_ids. Returns an empty 204 response on success.
- **Create a Sequin Stream http pull consumer nack** (Create). Negatively acknowledge (nack) messages for a Sequin HTTP pull consumer, signaling that they should be requeued for redelivery. Returns an empty 204 response on success. Required: consumer_id_or_name.
