# Beamer MCP connector

The Beamer connector brings changelog posts, comments, reactions, and feature requests into Claude, ChatGPT, Cursor, and any MCP client, so your team can draft announcements and review customer feedback while signed in as themselves.

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

## Facts

| | |
| --- | --- |
| Application | Beamer |
| Category | Marketing Automation |
| AI tools | 44 |
| 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 | No. 44 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Beamer is connected

- Summarize this week's new Beamer posts and reactions.
- Draft a Beamer post announcing the latest release.
- List Beamer comments awaiting a reply this month.

## Connect Beamer in Elaichi

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

1. Open Connections, choose Add connection, and pick Beamer.
2. Optionally set Share with, then press Connect.
3. Paste a Beamer API key. One person generates a token in Beamer 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 Beamer tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Beamer 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 Beamer 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 Beamer 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 Beamer 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 Beamer 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 Beamer through Elaichi

### Draft the release announcement

Product. Describe what shipped and have the agent write a Beamer post in your usual voice, ready for you to check before it goes out to customers.

### Turn call notes into feature requests

Product. Capture an idea a customer raised as a new Beamer feature request, or add the new context to one that already exists, without leaving the conversation.

### Fix a live post fast

Marketing. Correct a typo, swap a link, or refresh the wording of a Beamer post that has already been published.

### Read the room after a launch

Customer Success. Pull the comments and reactions on a Beamer post and get a plain summary of what customers liked and where they were confused.

### Answer tickets from the changelog

Support. Check whether the fix a customer is asking about has been announced in Beamer, and pull the post so you can share it.

### Report on changelog activity

Product Operations. Count Beamer posts, comments, reactions, and feature requests over the month and drop the numbers into your update.

## Frequently asked questions

### How do I connect Beamer to Claude?

It takes two steps. In Elaichi, choose Beamer and paste the API key from your Beamer settings; there is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude asks you to sign in to Elaichi, and your Beamer posts and feature requests are available from that point.

### Does Beamer work with ChatGPT and Cursor as well as Claude?

Yes. Once Beamer is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent. You connect Beamer once and every client picks it up.

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

An agent can read and write the things you already handle in Beamer: list and draft changelog posts, edit or remove a post, read and add comments and reactions, check what is unread, and create or update feature requests. Because Beamer offers many actions, the agent searches for the right one as you go, so short concrete asks such as "draft a post about the new export option" work better than long paragraphs.

### Does connecting Beamer give the AI everything in my Beamer account?

No. Every call to Beamer runs inside the access of the person who signed in, so an agent can only see and change the posts, comments, and feature requests that person could reach in Beamer themselves. Elaichi can narrow that access further with restrictions, and it can never widen it.

### Can my team share one Beamer connection?

Yes. One person connects Beamer in Elaichi and shares the connection with a team, and nobody else ever handles the Beamer API key. Each teammate still signs in to Elaichi as themselves, so every post or feature request they touch is recorded in the audit log under their own name.

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

Yes. Restrictions in Elaichi work per action, so you can allow reading Beamer posts and feature requests while blocking deleting a post, removing a comment, or editing a published announcement. A blocked action is never shown to Claude, ChatGPT, or any other client, so no prompt can reach it.

### What happens to a Beamer connection when someone leaves?

Offboarding that person in Elaichi ends their access to Beamer through every client at once. If they had shared a Beamer connection with a team, it keeps working for everyone else. Disconnecting Beamer once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client at the same time.

## All 44 Beamer tools

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

- **Beamer ping ping** (Action). Verify your Beamer API key authentication by sending a ping request. Returns: name, url.
- **List all Beamer posts** (List). List existing posts in Beamer with optional filtering by date, language, category, publication status, and segmentation. Returns each post's id, date, published, pinned, category, translations, filter, views, clicks, and reaction counts. Max 10 posts per page.
- **Create a Beamer post** (Create). Create a new post in Beamer with one or more translations. Returns the created post including id, date, published, category, translations with title and content, and analytics fields such as views, clicks, and feedbacks. Required: title, content. Multiple translations require the Starter plan or above.
- **Beamer posts count** (Action). Count existing posts in Beamer, optionally filtered by date range, language, category, publication status, segmentation, and user attributes. Returns: url.
- **Get single Beamer post by ID** (Get). Get a single Beamer post by id. Returns the full post object including id, date, translations, category, views, clicks, and reaction statistics. Required: id.
- **Update a Beamer post by ID** (Update). Update an existing Beamer post by id. Returns the updated post object including id, date, published, pinned, category, translations, and analytics fields such as views, clicks, and reactions. Required: id.
- **Delete a Beamer post by ID** (Delete). Delete a Beamer post by id. Returns an empty 204 response on success. Required: id.
- **List all Beamer post comments** (List). List comments for a Beamer post. Returns each comment's id, date, text, postTitle, userId, userEmail, userFirstName, userLastName, url, and userCustomAttributes. Required: post_id.
- **Create a Beamer post comment** (Create). Create a new comment on a Beamer post. Returns the created comment including id, date, text, postTitle, userId, userEmail, userFirstName, userLastName, url, and userCustomAttributes. Required: post_id, text.
- **Beamer post comments count** (Action). Count existing comments on a Beamer post, optionally filtered by date range, language, or search text. Returns: url. Required: post_id.
- **Get single Beamer post comment by ID** (Get). Get a single Beamer post comment by id. Returns the comment including id, date, text, postTitle, userId, userEmail, userFirstName, userLastName, url, and userCustomAttributes. Required: post_id, id.
- **Delete a Beamer post comment by ID** (Delete). Delete a Beamer post comment by id. Returns an empty 204 response on success. Required: post_id, id.
- **List all Beamer post reactions** (List). List existing reactions for a Beamer post, optionally filtered by date range and reaction type. Returns: id, url. Required: post_id. Max 10 results per page.
- **Create a Beamer post reaction** (Create). Create a new reaction on a Beamer post. Returns the created reaction including id, date, reaction, postTitle, userId, userEmail, userFirstName, userLastName, url, and userCustomAttributes. Required: post_id, reaction.
- **Beamer post reactions count** (Action). Count existing reactions for a Beamer post, optionally filtered by date range and reaction type. Returns: url. Required: post_id.
- **Get single Beamer post reaction by ID** (Get). Get a single Beamer post reaction by id. Returns the reaction including id, date, reaction, postTitle, userId, userEmail, userFirstName, userLastName, url, and userCustomAttributes. Required: post_id, id.
- **Delete a Beamer post reaction by ID** (Delete). Delete a Beamer post reaction by id. Returns an empty 204 response on success. Required: post_id, id.
- **List all Beamer unread** (List). List the unread posts in your Beamer feed for a user. Only posts visible in the feed are returned - draft, deleted, archived, expired and scheduled posts are excluded. Returns an array of posts with id, date, published, pinned, category, translations (title, content, language, images), filter, views, clicks and reaction counts - the same shape as posts list. IMPORTANT: markAsRead defaults to true, so calling this marks the returned posts as read; pass markAsRead=false (and saveViews=false) for a side-effect-free read. Pair userId with Pro+ plans for multi-device read sync. Max 10 posts per page; Truto paginates with page/maxResults.
- **Beamer unread count** (Action). Count unread posts visible in your Beamer feed. Only posts visible in your feed are counted (draft, deleted, archived, expired, and scheduled posts are excluded). Returns: url.
- **List all Beamer feature requests** (List). List Beamer feature requests with optional filters by category, status, language, date range, visibility, or search text. Returns: id, url. Max 10 results per page.
- **Create a Beamer feature request** (Create). Create a new feature request in Beamer. Returns the created feature request including id, date, visible, category, status, translations, votesCount, commentsCount, notes, and filters. Title and content are string arrays supporting multiple translations simultaneously.
- **Beamer feature requests count** (Action). Count existing feature requests in Beamer. Returns the total number of matching feature requests. Accepts an optional filters parameter to narrow the count by segmentation filter.
- **Get single Beamer feature request by ID** (Get). Get a single Beamer feature request by id. Returns: id, url. Required: id.
- **Update a Beamer feature request by ID** (Update). Update a Beamer feature request by id. Returns the updated feature request including id, date, visible, category, status, translations, votesCount, commentsCount, and notes. Required: id.
- **Delete a Beamer feature request by ID** (Delete). Delete a feature request in Beamer by id. Returns an empty 204 response on success. Required: id.
- **List all Beamer feature request votes** (List). List votes cast on a Beamer feature request. Returns: id, url. Required: feature_request_id.
- **Create a Beamer feature request vote** (Create). Create a new vote on a Beamer feature request. Returns: id, date, featureRequestTitle, userId, userEmail, userFirstName, userLastName, userCustomAttributes, url. Required: feature_request_id.
- **Beamer feature request votes count** (Action). Count existing votes on a Beamer feature request. Returns the total vote count as a count object. Required: feature_request_id.
- **Get single Beamer feature request vote by ID** (Get). Get a single Beamer feature request vote by id. Returns: id, url. Required: feature_request_id, id.
- **Delete a Beamer feature request vote by ID** (Delete). Delete a Beamer feature request vote by id. Returns an empty 204 response on success. Required: feature_request_id, id.
- **List all Beamer feature request comments** (List). List comments on a Beamer feature request. Returns: id, url. Required: feature_request_id.
- **Create a Beamer feature request comment** (Create). Create a new comment on a Beamer feature request. Returns the created comment including id, date, text, visible, and user details. Required: feature_request_id, text.
- **Beamer feature request comments count** (Action). Count existing comments from a Beamer feature request. Returns: url. Required: feature_request_id. Supports optional filters by date range, visibility, language, and text search.
- **Get single Beamer feature request comment by ID** (Get). Get a single comment from a Beamer feature request by id. Returns: id, url. Required: feature_request_id, id.
- **Delete a Beamer feature request comment by ID** (Delete). Delete a comment from a Beamer feature request by id. Returns an empty 204 response on success. Required: feature_request_id, id.
- **List all Beamer nps** (List). List NPS responses in Beamer, with optional filtering by date, score, and feedback text. Returns each response's id, date, score, feedback, userId, userEmail, userFirstName, userLastName, refUrl, and url. Supports filtering by dateFrom, dateTo, scoreFrom, scoreTo, and search.
- **Beamer nps count** (Action). Count NPS responses in Beamer, with optional filtering by date, score, and feedback text. Returns a count object with the total number of matching responses. Supports filtering by dateFrom, dateTo, scoreFrom, scoreTo, and search.
- **Beamer nps get survey URL** (Get). Get the URL for your NPS survey in Beamer. Returns: url.
- **List all Beamer users** (List). List Beamer analytics users with optional filtering by userId, beamerId, or userEmail. Returns: url. Max 100 per page.
- **Create a Beamer user** (Create). Create a new user in Beamer Analytics. Returns: userId, userEmail, userFirstName, userLastName, url.
- **Beamer users bulk update** (Update). Update matching Beamer analytics users identified by userId, beamerId, or userEmail with new attribute values. Returns: userId, userEmail, userFirstName, userLastName, url.
- **Create a Beamer team** (Create). Invite a new team member into your Beamer account. Returns: email, role, url. Required: email, role.
- **Beamer team bulk delete** (Delete). Remove a team member from your Beamer account by email. Returns: email, url. Required: email.
- **List all Beamer feed** (List). Get the URL for your Beamer standalone feed. Returns the feed url. Optional parameters support language selection, segmentation filters, URL filtering, user analytics details, and theme customization.
