Beamer MCP by usefulapi
Read posts, comments, reactions, feature requests, votes and NPS responses in Beamer.
我该使用它吗
质量与安全性
发现(2)
- LOW在 beamer_list_feature_request_comments 中
- LOW在 beamer_list_feature_request_votes 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"beamer": {
"url": "https://beamer.usefulapi.io/mcp"
}
}
}远程端点
https://beamer.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(16)
🟢beamer_list_posts(date_from, date_to, language, category, published, ...)
List changelog posts (announcements) with their translations, category, publish date, and stats (views, unique views, clicks, feedbacks, reactions). Does not record views. Beamer API: GET /posts.
输入模式
{
"type": "object",
"properties": {
"date_from": {
"description": "Only posts published after this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"date_to": {
"description": "Only posts published before this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"language": {
"description": "Only posts with a translation in this two-letter language code.",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"category": {
"description": "Only posts in this category.",
"type": "string"
},
"published": {
"description": "true = published posts only, false = drafts only. Omit for both.",
"type": "boolean"
},
"archived": {
"description": "true = archived only, false = not archived. Omit for both.",
"type": "boolean"
},
"expired": {
"description": "true = expired only, false = not expired. Omit for both.",
"type": "boolean"
},
"ignore_filters": {
"description": "true = ignore audience segmentation so all posts return. Needs the key permission 'Read posts (ignore filters)'; without it the result is an empty list.",
"type": "boolean"
},
"max_results": {
"description": "Results per page (at most 10).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10
},
"page": {
"description": "Page number for pagination (combine with max_results).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_count_posts(date_from, date_to, language, category, published, ...)
Count changelog posts that match the filters. Beamer API: GET /posts/count.
输入模式
{
"type": "object",
"properties": {
"date_from": {
"description": "Only posts published after this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"date_to": {
"description": "Only posts published before this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"language": {
"description": "Only posts with a translation in this two-letter language code.",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"category": {
"description": "Only posts in this category.",
"type": "string"
},
"published": {
"description": "true = published posts only, false = drafts only. Omit for both.",
"type": "boolean"
},
"archived": {
"description": "true = archived only, false = not archived. Omit for both.",
"type": "boolean"
},
"expired": {
"description": "true = expired only, false = not expired. Omit for both.",
"type": "boolean"
},
"ignore_filters": {
"description": "true = ignore audience segmentation so all posts return. Needs the key permission 'Read posts (ignore filters)'; without it the result is an empty list.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_get_post(post_id, language)
Get one changelog post by id: translations, category, dates, audience filter, and stats. Does not record a view. Beamer API: GET /posts/{postId}.
输入模式
{
"type": "object",
"properties": {
"post_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric id of the post."
},
"language": {
"description": "Two-letter language code.",
"type": "string",
"minLength": 2,
"maxLength": 2
}
},
"required": [
"post_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_list_post_comments(post_id, date_from, date_to, language, search, ...)
List the comments that users left on one changelog post, with the author and text. Beamer API: GET /posts/{postId}/comments.
输入模式
{
"type": "object",
"properties": {
"post_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric id of the post."
},
"date_from": {
"description": "Only comments published after this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"date_to": {
"description": "Only comments published before this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"language": {
"description": "Two-letter language code.",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"search": {
"description": "Only comments whose text contains this.",
"type": "string"
},
"max_results": {
"description": "Results per page (at most 10).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10
},
"page": {
"description": "Page number for pagination (combine with max_results).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"post_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_count_post_comments(post_id)
Count the comments on one changelog post. Beamer API: GET /posts/{postId}/comments/count.
输入模式
{
"type": "object",
"properties": {
"post_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric id of the post."
}
},
"required": [
"post_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_list_post_reactions(post_id, date_from, date_to, reaction, max_results, ...)
List the reactions (positive, neutral, negative) that users gave one changelog post. Beamer API: GET /posts/{postId}/reactions.
输入模式
{
"type": "object",
"properties": {
"post_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric id of the post."
},
"date_from": {
"description": "Only reactions after this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"date_to": {
"description": "Only reactions before this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"reaction": {
"description": "Only this reaction type.",
"type": "string",
"enum": [
"positive",
"neutral",
"negative"
]
},
"max_results": {
"description": "Results per page (at most 10).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10
},
"page": {
"description": "Page number for pagination (combine with max_results).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"post_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_count_post_reactions(post_id, reaction)
Count the reactions on one changelog post. Beamer API: GET /posts/{postId}/reactions/count.
输入模式
{
"type": "object",
"properties": {
"post_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric id of the post."
},
"reaction": {
"description": "Only this reaction type.",
"type": "string",
"enum": [
"positive",
"neutral",
"negative"
]
}
},
"required": [
"post_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_list_feature_requests(date_from, date_to, language, category, status, ...)
List feature requests (ideas) from the Beamer Feedback board with status, category, vote and comment counts, and the author. Beamer API: GET /requests (beta).
输入模式
{
"type": "object",
"properties": {
"date_from": {
"description": "Only requests created after this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"date_to": {
"description": "Only requests created before this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"language": {
"description": "Two-letter language code.",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"category": {
"description": "Only this category.",
"type": "string"
},
"status": {
"description": "Only this status, e.g. under_review.",
"type": "string"
},
"visible": {
"description": "true = visible only, false = hidden only. Omit for both.",
"type": "boolean"
},
"search": {
"description": "Only requests whose title or content contains this.",
"type": "string"
},
"max_results": {
"description": "Results per page (at most 10).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10
},
"page": {
"description": "Page number for pagination (combine with max_results).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_count_feature_requests(date_from, date_to, language, category, status, ...)
Count feature requests that match the filters. Beamer API: GET /requests/count.
输入模式
{
"type": "object",
"properties": {
"date_from": {
"description": "Only requests created after this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"date_to": {
"description": "Only requests created before this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"language": {
"description": "Two-letter language code.",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"category": {
"description": "Only this category.",
"type": "string"
},
"status": {
"description": "Only this status.",
"type": "string"
},
"visible": {
"description": "true = visible only, false = hidden only.",
"type": "boolean"
},
"search": {
"description": "Only requests whose title or content contains this.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_get_feature_request(feature_request_id)
Get one feature request by id. Beamer API: GET /requests/{featureRequestId}.
输入模式
{
"type": "object",
"properties": {
"feature_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric id of the feature request."
}
},
"required": [
"feature_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_list_feature_request_comments(feature_request_id, date_from, date_to, search, max_results, ...)
List the comments on one feature request, with the author and whether a team member wrote it. Beamer API: GET /requests/{featureRequestId}/comments.
输入模式
{
"type": "object",
"properties": {
"feature_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric id of the feature request."
},
"date_from": {
"description": "Only comments after this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"date_to": {
"description": "Only comments before this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"search": {
"description": "Only comments whose text contains this.",
"type": "string"
},
"max_results": {
"description": "Results per page (at most 10).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10
},
"page": {
"description": "Page number for pagination (combine with max_results).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"feature_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_list_feature_request_votes(feature_request_id, date_from, date_to, max_results, page)
List the votes on one feature request, with the user who voted and the date. Beamer API: GET /requests/{featureRequestId}/votes.
输入模式
{
"type": "object",
"properties": {
"feature_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric id of the feature request."
},
"date_from": {
"description": "Only votes after this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"date_to": {
"description": "Only votes before this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"max_results": {
"description": "Results per page (at most 10).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10
},
"page": {
"description": "Page number for pagination (combine with max_results).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"feature_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_list_nps_responses(date_from, date_to, score_from, score_to, search, ...)
List Net Promoter Score responses with score (0-10), written feedback, user, and date. Beamer API: GET /nps.
输入模式
{
"type": "object",
"properties": {
"date_from": {
"description": "Only responses sent after this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"date_to": {
"description": "Only responses sent before this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"score_from": {
"description": "Only scores at or above this (0-10).",
"type": "integer",
"minimum": 0,
"maximum": 10
},
"score_to": {
"description": "Only scores at or below this (0-10).",
"type": "integer",
"minimum": 0,
"maximum": 10
},
"search": {
"description": "Only responses whose feedback or user name contains this.",
"type": "string"
},
"max_results": {
"description": "Results per page (at most 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"page": {
"description": "Page number for pagination (combine with max_results).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_count_nps_responses(date_from, date_to, score_from, score_to, search)
Count NPS responses that match the filters. Beamer API: GET /nps/count.
输入模式
{
"type": "object",
"properties": {
"date_from": {
"description": "Only responses sent after this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"date_to": {
"description": "Only responses sent before this ISO-8601 date or date-time, e.g. 2026-01-31T00:00:00Z.",
"type": "string"
},
"score_from": {
"description": "Only scores at or above this (0-10).",
"type": "integer",
"minimum": 0,
"maximum": 10
},
"score_to": {
"description": "Only scores at or below this (0-10).",
"type": "integer",
"minimum": 0,
"maximum": 10
},
"search": {
"description": "Only responses whose feedback or user name contains this.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_list_users(user_id, beamer_id, user_email, sort, max_results, ...)
List the end users that Beamer tracked in Analytics (first seen, last seen, language, custom attributes). Beamer API: GET /users.
输入模式
{
"type": "object",
"properties": {
"user_id": {
"description": "Your own user id (the user_id from the embed script).",
"type": "string"
},
"beamer_id": {
"description": "The Beamer-generated user id.",
"type": "string"
},
"user_email": {
"description": "Email of the user.",
"type": "string"
},
"sort": {
"description": "User attribute to sort by, ascending. Prefix with '-' for descending, e.g. -lastSeen. Default firstSeen.",
"type": "string"
},
"max_results": {
"description": "Results per page (at most 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"page": {
"description": "Page number for pagination (combine with max_results).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢beamer_get_unread_count
Get how many changelog posts are unread in the feed, plus the feed URL and the popup URL. Beamer API: GET /unread/count.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据