关于 ParseStream
ParseStream 是供团队监测 Reddit、X、LinkedIn、Quora 和 Hacker News 品牌提及的远程 MCP 服务。它评估相关性和购买意向、读取提及详情并起草回复供人工审核;不能发布内容或联系他人。
主要功能
- 01监测五个平台的品牌提及
- 02评估相关性与购买意向
- 03读取提及的完整详情
- 04起草回复供人工审核
- 05API 密钥按品牌限定访问
适用场景
- 01查看每周品牌提及
- 02识别显示购买意向的提及
- 03为选定帖子准备回复草稿
MCP 相关
通过无状态 Streamable HTTP,向 MCP 客户端提供品牌提及搜索、详情读取和回复起草工具。该服务不提供发布帖子或联系他人的工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.parsestream.com/mcpclaude mcp add --transport http com-parsestream-parsestream https://mcp.parsestream.com/mcp{"mcpServers":{"com-parsestream-parsestream":{"type":"http","url":"https://mcp.parsestream.com/mcp"}}}在 Cursor 中打开{"servers":{"com-parsestream-parsestream":{"type":"http","url":"https://mcp.parsestream.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-parsestream-parsestream":{"type":"http","url":"https://mcp.parsestream.com/mcp"}}}{"mcpServers":{"com-parsestream-parsestream":{"serverUrl":"https://mcp.parsestream.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.parsestream.com/mcp需要授权工具
详细介绍
ParseStream MCP 服务
ParseStream 会监控 Reddit、X、LinkedIn、Quora 和 Hacker News,查找对你品牌的提及,为每条提及评估相关性和购买意向,并生成回复草稿。本服务将这些功能交给你的 AI 助手:你可以询问本周大家对你的品牌有何评价、哪些提及听起来像是有人在寻找工具、调出某条提及的完整内容,并获取一份草稿,由你编辑后自行发送。
本服务无法发布任何内容。它没有任何工具可以向 Reddit、X、LinkedIn、Quora 或 Hacker News 发布内容,也无法联系任何人。
这是一个远程服务——无需在本地安装或运行任何内容,只需一个 URL 和一个 API 密钥。
| 端点 | https://mcp.parsestream.com/mcp(也可通过 https://parsestream.com/api/mcp 访问) |
| 传输方式 | Streamable HTTP,无状态——无需维持会话 |
| 身份验证 | Authorization: Bearer ps_live_... |
| 范围 | 每个密钥对应一个品牌,根据密钥本身确定 |
| 速率限制 | 每个密钥每分钟 100 个请求 |
| 历史记录 | 滚动 30 天窗口 |
先获取 API 密钥
在 ParseStream 中,前往 品牌设置 → API 密钥,并创建一个密钥。密钥以
ps_live_ 开头,且只会显示一次,因此请直接将其复制到客户端配置中。
一个密钥仅对应一个品牌——服务只根据密钥确定你能访问谁的数据,不会读取参数。要连接第二个品牌,请创建第二个密钥,并使用不同的名称将其添加为第二个 MCP 服务。在品牌设置中撤销密钥后,MCP 访问权限会立即被切断。
这是 Mentions REST API 使用的同一个密钥,两者共用同一配额:每个密钥每分钟 100 个请求。每次 JSON-RPC 调用都会计入配额,包括客户端连接时获取的 tools/list。超出限制后,你会收到带有 Retry-After 标头的 429 响应。
安装
在与你的工具对应的配置块中,将 ps_live_xxxxxxxxxxxxxxxx 替换为你自己的密钥,然后重启客户端。这些客户端都可以通过环境变量读取密钥,而不必将密钥保存在文件中——请参阅
在不暴露密钥的情况下连接。如果这些文件位于代码仓库中,请先阅读该部分。
Claude Code
claude mcp add --transport http parsestream https://mcp.parsestream.com/mcp \
--header "Authorization: Bearer ps_live_xxxxxxxxxxxxxxxx" \
-s local
警告
请保留
-s local。-s project作用域会将密钥以明文写入仓库根目录下的.mcp.json——这个文件本来是要提交并与团队共享的。有效的 ParseStream 密钥会进入 git 历史记录;如果仓库是公开的,任何克隆仓库的人都能获得它。-s local(默认值)会将密钥存储在仓库外、你自己的用户配置中,并将其限定在此项目内;-s user也会这样存储,但会让所有项目都能使用该服务。两者都不会在工作树中写入任何内容。如果团队确实需要共享.mcp.json,请在其中放入变量,而不是密钥——见下文。
通过 claude mcp list 验证,或者直接问助手 “我连接的是哪个 ParseStream 品牌?”——它应该会说出你的品牌,并列出你跟踪的关键词。
Claude Code 也可以将此仓库安装为插件,为你设置好服务,并从环境变量而不是配置文件中读取密钥:
/plugin marketplace add parsestream/parsestream-mcp
/plugin install parsestream@parsestream
然后在 shell 配置文件中导出 PARSESTREAM_API_KEY=ps_live_...。
Cursor
~/.cursor/mcp.json(或项目内的 .cursor/mcp.json——注意事项同上,请勿提交):
{
"mcpServers": {
"parsestream": {
"url": "https://mcp.parsestream.com/mcp",
"headers": {
"Authorization": "Bearer ps_live_xxxxxxxxxxxxxxxx"
}
}
}
}
顶部的 Add to Cursor 徽章会为你写入此文件,并填入占位密钥——之后请在 Cursor 的 MCP 设置中打开该条目,并粘贴你的真实密钥。
VS Code(GitHub Copilot)
.vscode/mcp.json——请注意,顶层键是 servers,而不是 mcpServers。VS Code 在这里与众不同:
{
"servers": {
"parsestream": {
"type": "http",
"url": "https://mcp.parsestream.com/mcp",
"headers": {
"Authorization": "Bearer ps_live_xxxxxxxxxxxxxxxx"
}
}
}
}
.vscode/mcp.json 通常会被提交,因此请优先使用 VS Code 的 inputs 机制,或你的用户级 mcp.json(在命令面板中选择 MCP: Open User Configuration),而不是将有效密钥粘贴到受版本控制的文件中。
Codex CLI
~/.codex/config.toml。Codex 可以从环境变量读取密钥,这样密钥就完全不会进入配置文件:
[mcp_servers.parsestream]
url = "https://mcp.parsestream.com/mcp"
bearer_token_env_var = "PARSESTREAM_API_KEY"
然后在 shell 配置文件中执行 export PARSESTREAM_API_KEY="ps_live_xxxxxxxxxxxxxxxx"。如果你更想直接写入密钥,请使用 http_headers——注意,键名是 http_headers,不是 headers:
[mcp_servers.parsestream]
url = "https://mcp.parsestream.com/mcp"
http_headers = { Authorization = "Bearer ps_live_xxxxxxxxxxxxxxxx" }
Grok
Grok 没有可供列出服务的连接器目录,但 Grok 支持自带 MCP 服务:在 grok.com/connectors 添加自定义连接器,URL 为 https://mcp.parsestream.com/mcp,并设置 Authorization 请求头,值为 Bearer ps_live_...。
Grok 的终端 Agent 会读取 Claude Code 的 MCP 配置,因此如果你已运行上面的 claude mcp add 命令,这里就已经连接好了。
Claude Desktop 和 claude.ai
目前还不支持。Anthropic 连接器目录的收录计划尚未推出,因此 Claude 应用中没有一键安装选项。Claude Code 目前即可使用,也是最快的体验方式。
在不暴露密钥的情况下连接
只有一条规则:密钥应放在环境变量中,或放在主目录下的文件中,绝不要放在你会提交的文件里。 ~/.claude.json、~/.cursor/mcp.json 和 ~/.codex/config.toml 都位于仓库之外,将密钥存放在其中是安全的。.mcp.json、.cursor/mcp.json 和 .vscode/mcp.json 是这些文件的项目级版本,三者的用途都是与团队共享——Claude Code 和 VS Code 的文档甚至会直接建议你提交它们。密钥就是在这些地方泄露的。
下面列出的每种客户端都可以从环境变量中读取密钥。各客户端的语法有所不同,这正是本节要提供四段代码,而不是一段的原因。只需导出一次:
export PARSESTREAM_API_KEY="ps_live_xxxxxxxxxxxxxxxx"
Codex CLI
Codex 是四种客户端中唯一存储变量名称而不是变量值的,因此任何类似密钥的内容都不会写入文件:
[mcp_servers.parsestream]
url = "https://mcp.parsestream.com/mcp"
bearer_token_env_var = "PARSESTREAM_API_KEY"
或者,不修改文件:
codex mcp add parsestream --url https://mcp.parsestream.com/mcp \
--bearer-token-env-var PARSESTREAM_API_KEY
该配置文件只包含变量名称和 URL,可以直接安全提交。这正是理想的设计;相比之下,其他三种方式都只是权宜之计。
Claude Code
-s local(默认值)和 -s user 都会写入主目录中的 ~/.claude.json。不会有任何内容写入工作树,也无需进一步操作——上方安装部分中的 claude mcp add 命令本身就是安全的。
如果需要将条目限定在项目范围内并与他人共享,请使用变量。Claude Code 会在 command、args、env、url 和 headers 中展开 ${VAR} 和 ${VAR:-default},因此已提交的 .mcp.json 可以包含此引用:
{
"mcpServers": {
"parsestream": {
"type": "http",
"url": "https://mcp.parsestream.com/mcp",
"headers": {
"Authorization": "Bearer ${PARSESTREAM_API_KEY}"
}
}
}
}
这正是插件提供的内容,因此插件无需你自行准备配置文件。
重要
**如果变量未设置,Claude Code 不会报错——而是直接发送字面文本。**服务器会识别这种情况并说明原因,在 401 的
error_description中指出变量名称:未展开的变量,并非错误密钥:你的 MCP 客户端发送了引用 `${PARSESTREAM_API_KEY}`,而非它所代表的值,这意味着客户端运行环境中未设置 PARSESTREAM_API_KEY。请在 shell 配置文件中导出 PARSESTREAM_API_KEY=ps_live_...,然后完全重启客户端,使其继承该值。仅在交互式 shell 中执行的导出操作,或从桌面而非终端启动的客户端,都会导致这种情况。
${input:...} 提示是 VS Code 的功能;Claude Code 不支持它,使用该提示的配置也会发送字面文本。
Cursor
原理相同,写法不同:Cursor 使用 ${env:NAME},而非 ${NAME}。这些文件看起来相似,但不能互换;在此处粘贴 Claude Code 配置会原样发送占位符。
{
"mcpServers": {
"parsestream": {
"url": "https://mcp.parsestream.com/mcp",
"headers": {
"Authorization": "Bearer ${env:PARSESTREAM_API_KEY}"
}
}
}
}
Cursor 会在 command、args、env、url 和 headers 中展开它。如果配置仅供你自己使用,请将其保存在 ~/.cursor/mcp.json 中;${env:...} 这种写法可确保项目级 .cursor/mcp.json 安全地提交。
VS Code (GitHub Copilot)
.vscode/mcp.json 的设计用途是提交到版本库,因此在其中直接写入密钥,与使用 -s project 是同样的错误。请使用 ${env:VAR},或将 envFile 指向一个被 git 忽略的 .env 文件:
{
"servers": {
"parsestream": {
"type": "http",
"url": "https://mcp.parsestream.com/mcp",
"headers": {
"Authorization": "Bearer ${env:PARSESTREAM_API_KEY}"
}
}
}
}
VS Code 还提供 inputs 机制,可提示输入一次并记住答案——在顶层设置 {"type": "promptString", "id": "parsestream-key", "password": true},然后通过 ${input:parsestream-key} 引用。文档中的示例将其放在 env 块中;没有文档示例展示在 HTTP headers 块中使用 ${input:},因此请将这种组合视为未经测试。对于此服务,建议优先使用 ${env:...} 或 envFile。VS Code 对保存方式的描述仅为“安全存储”,并未承诺使用 OS 密钥链。
密钥管理器
以下两种方式都可以与上面的配置搭配使用:它们会填充环境变量,由客户端读取,不会更改任何文件。
- 1Password CLI — 将
PARSESTREAM_API_KEY保存为op://引用,并通过它启动客户端:op run -- claude。密钥仅在该进程运行期间存在。在 Claude Code 自身的配置中解析op://是一项尚未实现的请求,目前无法使用。 - direnv — 创建一个被 git 忽略的
.envrc,其中包含export PARSESTREAM_API_KEY=ps_live_...,然后运行direnv allow。进入该目录时,密钥会存在于环境变量中;离开后则不会存在。
如果你已经提交了密钥
撤销它。品牌设置 → API 密钥,删除该密钥、生成一个新密钥,并更新你的环境变量。先做这些再处理其他事——重写 Git 历史记录无法消除已泄露的密钥,只会让它更难在自己的仓库中被找到。请假设任何推送到公共远程仓库的内容都会在几分钟内被抓取。
撤销操作的成本本来就很低:密钥仅限于单个品牌,每个品牌最多可持有十个有效密钥,撤销后会立即切断 MCP 和 REST 访问。没有理由继续使用已泄露的密钥。
计划中:OAuth
真正的解决方案不是使用密钥。OAuth 支持已列入路线图——客户端可通过浏览器授权页面获取限定范围的令牌,不会在任何地方写入长期有效的凭据,这一节也就没有存在的必要了。目前尚未发布;在此之前,请使用环境变量。
工具
共有 7 个工具。只有 draft_reply 会产生费用。
| 工具 | 功能 | 访问权限 | 费用 |
|---|---|---|---|
get_brand_context | 完整工作区信息:品牌资料和竞争对手、每个已跟踪关键词及其 ID 和监控平台,以及积分余额和是否可以起草回复 | 读取 | 免费 |
search_mentions | 搜索所有 5 个平台上的提及。可按时间范围、平台、意图、相关性评分、关键词、subreddit、提及类型或状态筛选。每页最多 30 条 | 读取 | 免费 |
get_mention | 单条提及的完整信息:未截断的正文、父帖子标题、点赞数、subreddit 规模,以及是否已有回复草稿 | 读取 | 免费 |
draft_reply | 为一条提及生成回复草稿,并保存到草稿队列。可选择语气和长度,或使用品牌已保存的默认设置 | 写入草稿 | 5 个积分 |
mark_mention_replied | 设置或清除一条提及的已回复标记——与 Web 应用中的切换开关相同 | 写入标记 | 免费 |
highlight_mention | 为一条提及加星标或取消星标,以便在聊天结束后仍保留在精选列表中 | 写入标记 | 免费 |
get_brand_details | 品牌名称、描述和网站,仅此而已。读取一条已索引的记录,几毫秒内即可返回 | 读取 | 免费 |
关于这张表,有两点需要说明。
get_brand_details 看起来应该和 get_brand_context 放在一起,但实际上列在最后。这是有意安排的:tools/list 按固定顺序提供服务,因此不同请求的响应逐字节一致,客户端也可以缓存工具列表区块。新工具只会追加,绝不会插入,因为插入会使每个客户端从该位置开始的缓存失效。
这两个写入标记的工具只会编辑 ParseStream 自己记录的提及信息。它们不会更改平台上的帖子或评论,也不会通知任何人。
工作流程
实际会话如下。由助手选择工具;你只需正常对话。
**你:**这周有什么值得回复的吗?
get_brand_details——我在为谁工作。名称、描述和网站,几毫秒内返回。- 使用
timeframe: "7d"、intents: ["BUY_INTENT", "PRODUCT_QUESTION"]、relevanceMin: 4、statuses: ["new"]调用search_mentions——这两个意图标签表示有人正在积极寻找解决方案,只保留确信度高的关键词匹配,不包含已处理的内容。 - 对看起来最合适的两条调用
get_mention。搜索结果足以进行初步筛选;点赞数、互动机会标记,以及“是否已有回复草稿”等信息只有在这里才会返回。 - 使用
approach: "value_first"和replyLength: "short"调用draft_reply。费用为 5 个积分,需要 5–20 秒,并会返回文本。 - 你打开 parsestream.com/replies,阅读草稿、进行编辑,然后自行发布。
- 调用
mark_mention_replied——该帖子串就不会再出现在statuses: ["new"]中。
批量起草前先调用 get_brand_context,助手就会告诉你准确的积分余额、重置日期,以及该账户是否可以起草回复。
容易踩坑的地方
- 两种时间。
timeframe/from/to按检测时间截取时间窗口,但结果按发布时间排序。一条一周前发布、但一小时前才检测到的提及,会落在1d窗口内,并排到最后一页。因此,只有在将某个时间窗口翻页至末尾(pagination.hasNext为 false)后,推进from游标才安全。 - 空值表示“全部”。 每个列表筛选条件——
platforms、intents、statuses、keywordIds、subreddits、mentionTypes——在省略或为空时都表示“不缩小范围”,绝不表示“没有”。 intents会排除未标记的提及。 六种标签分别是BUY_INTENT、PRODUCT_QUESTION、COMPETITOR_COMPLAINT、PAIN_POINT、TESTIMONIAL和PROMOTIONAL。意图标记是按账户选择启用的,因此任何非空的intents列表都会排除标记器从未分类的提及——即使列出全部六种也不例外;这表示“已标记为任意类型”,而不是“不筛选”。statuses: ["new"]表示未处理。 它会排除已加星标的提及以及已回复的提及,因此给提及加星标会将其移出新提及队列。keywordIds会静默失败。 未识别的 ID 会从筛选条件中丢弃,而不是被拒绝,因此拼写错误会静默缩小搜索范围,不会报错。- 30 天,每页 30 条。 历史记录最多为 30 天;请求更早的记录会返回明确错误,而不是空结果。更大的
perPage会被限制为 30,而非拒绝请求。
此服务无法执行的操作
值得明确说明,因为助手有时会声称可以做到:
- 它绝不会发布内容。 没有任何工具会向 Reddit、X、LinkedIn、Quora 或 Hacker News 发布内容。它最多只能在你的草稿队列中写入草稿。
- 它绝不会联系任何人。 不会发送私信、电子邮件,也不会向提及内容的作者发送通知。
- 它只会访问你自己品牌的记录。 品牌由 API 密钥决定,而不是由工具参数指定,因此从设计上就不可能跨租户访问。属于其他品牌的提及会显示为未找到,与从未存在过的 ID 完全相同。
- 它不会删除任何内容。 唯一的写入操作是创建一条回复草稿,以及更改你自己提及记录上的两个布尔标记。
draft_reply返回的是草稿,而不是回复。 用户需前往 parsestream.com/replies 打开草稿、阅读、编辑并发送。如果你的助手声称自己发布了内容,那它并没有发布。
读取功能适用于任何套餐。draft_reply 需要有效订阅或试用,并且至少有 5 个额度——与应用中的 建议回复 按钮使用相同的限制。
故障排除
没有显示任何工具。 几乎总是请求头的问题。它必须准确写为
Authorization: Bearer ps_live_...,包括单词 Bearer。
401 Unauthorized。 查看 error_description。如果配置引用了一个尚未替换的
环境变量,服务端会说明这一点并指出变量名称——设置该变量并重启客户端;请参阅
在不暴露密钥的情况下连接。其他
401 都表示密钥确实输入错误或已撤销,请在品牌设置 → API 密钥下创建一个新密钥。
搜索结果为空。 先询问品牌背景信息——关键词可能已暂停,
或者未在你所询问的平台上受到监控。get_brand_context 会返回已暂停的关键词,而不是将其隐藏,
正是为了让你能查明这一点。
拒绝起草内容。 没有有效订阅,或余额低于 5 个积分。
get_brand_context 返回的 plan.canDraftReplies 字段可以直接说明这一点。无论哪种情况,读取功能都仍可正常使用。
429 Too Many Requests。 每个密钥每分钟限 100 次,与 REST API 共用限额,且每次 JSON-RPC 调用都会计入。
等待 Retry-After 指定的时间,或为每个客户端使用单独的密钥。
若要完全排除客户端的影响,请直接调用服务。Streamable HTTP 要求在 Accept 中包含两种内容类型:
curl -sS -X POST https://mcp.parsestream.com/mcp \
-H "Authorization: Bearer ps_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
移除 Authorization 请求头后,你应该会收到一个 401,其 error_description 会准确说明服务端需要什么——这是确认你连接到的是 ParseStream 而非代理的一种快捷方式。
链接
许可证
MIT — 请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。