关于 cituna-mcp
cituna-mcp 将 AI Agent 连接到 Cituna 的品牌可见度数据,涵盖七种 AI 引擎和 Google Search Console。它提供工具来检查引用和搜索数据、管理内容与待办修复,并运行扫描。
主要功能
- 01每日追踪七种 AI 引擎中的品牌表现
- 02查看回答、引用、来源页面并发现竞品
- 03读取并分析 Google Search Console 数据
- 04管理差距队列及其状态
- 05处理 AutoSEO 文章和关键词
- 06修改追踪提示词并运行新扫描
适用场景
- 01找出 AI 引擎未提及品牌的买家问题
- 02检查各引擎的回答和引用页面
- 03查找有展示但点击较少的搜索查询
- 04排序可见度差距并管理内容修复
MCP 相关
通过托管的 Streamable HTTP 服务(OAuth)或使用 API 密钥的本地 npm 包(stdio)提供 31 种工具和五个 MCP 提示词。工具涵盖可见度数据、Google Search Console、内容操作和扫描;写入工具的访问权限取决于 Cituna 套餐。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.cituna.com/mcpclaude mcp add --transport http com-cituna-cituna https://mcp.cituna.com/mcp{"mcpServers":{"com-cituna-cituna":{"type":"http","url":"https://mcp.cituna.com/mcp"}}}在 Cursor 中打开{"servers":{"com-cituna-cituna":{"type":"http","url":"https://mcp.cituna.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-cituna-cituna":{"type":"http","url":"https://mcp.cituna.com/mcp"}}}{"mcpServers":{"com-cituna-cituna":{"serverUrl":"https://mcp.cituna.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.cituna.com/mcp需要授权工具
详细介绍
Cituna MCP:AI 可见度 MCP 服务
Cituna MCP 是 Cituna 的官方 MCP 服务。Cituna 是一款 AI 可见度工具:你的 AI Agent 每天都会读取七个 AI 引擎如何回答问题、提及并引用你的品牌,同时查看 Google Search Console 数据,并通过 31 个工具采取行动。
这七个引擎是 ChatGPT、Perplexity、Gemini、Claude、Grok、Google AI Overviews 和 Google AI Mode,每个受监控的提示词都会每天在所有引擎上提出。将服务连接到 Claude、ChatGPT、Cursor、VS Code 或任何其他 MCP 客户端后,你就可以询问自己错失了哪些买家问题、各个引擎实际回答了什么、它们读取了哪些页面、应该优先修复什么,然后让 Agent 来修复。
该服务托管在云端,使用 Streamable HTTP,并通过浏览器中的 OAuth 登录。只需一个 URL,无需安装:
https://mcp.cituna.com/mcp
如果你想自行运行它,用于脚本、CI 或不支持 OAuth 的客户端,也可以使用 npm 上的同一服务。它需要个人 API 密钥和 Node 20 或更高版本:
npx -y cituna-mcp
产品页面和完整文档:cituna.com/mcp。
| 概览 | |
|---|---|
| 托管 URL | https://mcp.cituna.com/mcp(Streamable HTTP,OAuth 2.1 或 API 密钥) |
| 本地软件包 | npm 上的 npx -y cituna-mcp(stdio、API 密钥、Node 20+) |
| 引擎 | ChatGPT、Perplexity、Gemini、Claude、Grok、Google AI Overviews 和 Google AI Mode,每日检查 |
| 还可连接 | Google Search Console(只读)、AutoSEO 文章、你的修复队列 |
| 工具 | 共 31 个:22 个读取工具和 9 个写入工具 |
| 内置工作流 | 5 个 MCP 提示词(诊断、AEO 差距、竞争对手拆解、每周回顾、修复排序) |
| 方案 | Starter($49/mo)可使用读取工具;Pro($119/mo)和 Max($399/mo)可使用写入工具和 list_keywords。免费试用期间不提供 MCP |
| Registry 名称 | 官方 MCP Registry 上的 com.cituna/cituna-mcp |
| 适用客户端 | claude.ai、Claude Desktop、Claude Code、ChatGPT、Cursor、VS Code、Windsurf、Codex CLI 及任何 MCP 客户端 |
| 许可证 | 此服务采用 MIT 许可证;Cituna 本身是付费服务 |
目录
- Agent 可以做什么
- 试着这样提问
- 快速开始:claude.ai、Claude Desktop、Claude Code、ChatGPT、Cursor、VS Code、Windsurf、Codex CLI、Gemini CLI、任何其他客户端
- 工具
- 方案与访问权限
- 内置工作流
- 会话示例
- 连接 Google Search Console
- 身份验证与安全
- 自托管远程服务
- 故障排除
- 常见问题
- 链接
你的 Agent 能做什么
大多数 AI 可见度工具给你一个仪表板,然后把分析工作留给你。Cituna 会把衡量结果放到你已经进行推理的地方:询问你的 Agent 为什么某个引擎从未提及你,它就会调出答案凭据,与 Google 已经发送给你的数据进行核对,并将修复问题的页面加入队列,无需你打开标签页。
- 查看每日跟踪表。 今天每个引擎在你跟踪的哪些提示词中引用了你、引用位置,以及你当前的可见度评分(
get_visibility)。 - 调取答案凭据。 某个引擎对一个提示词实际给出的回答、提及的品牌以及引用的 URL(
get_engine_answers)。 - 查找答案来源。 各引擎针对你的提示词引用了哪些第三方页面、引用频率、每个页面提到了哪些竞争对手,以及页面上是否有你;这些信息直接从页面内容中读取,而非猜测(
list_citation_sources)。 - 发现新竞争对手。 引擎在回答你自己的买家问题时提及的品牌,以及人们在找到你之前搜索的供应商名称;这些都可能是你尚未跟踪的对象(
competitor_discovery)。 - 将 AI 回答与 Google 数据结合。 Search Console 汇总数据、任意 Search Analytics 查询,以及六种现成分析:刚好排在首页之外的查询、有展示但无人点击的页面、按意图划分的需求、从未展示的页面、相互竞争的自有页面,以及措辞类似 AI 提示词的搜索(
gsc_*)。 - 处理修复队列。 查看最近一次审计发现的所有问题及其影响、工作量和具体修复方案,并随着进展更新状态(
list_gaps、set_gap_status)。 - 规划并发布内容。 查看有实际需求但尚无内容覆盖的关键词、AutoSEO 队列及其撰写的所有文章,然后直接在聊天中将文章加入队列、编辑、更新或跳过(
list_keywords、queue_article、update_article、enrich_article)。 - 更改衡量内容。 添加、停用或改写每天向七个引擎提出的买家问题,并查看前后差异(
set_prompts)。 - 运行新扫描,在你发布修复后,想立即查看效果时使用(
run_scan)。 - 维护外联名单。 将被引用的来源标记为计划联系、已联系、已发布或已拒绝,让名单在不同会话之间保持不变(
set_outreach_status)。
试着这样提问
连接后,用日常语言提问即可。服务会告诉你的 Agent 哪些工具和工作流可以回答哪类问题,因此你不必指定它们的名称。
可见度和答案凭据
- “今天 acme.com 在 AI 搜索中的表现如何?哪些提示词和引擎引用了我们?”
- “Perplexity 对 best CRM for dentists 给出了什么回答?它引用了谁,而没有引用我们?”
- “本周我的 AI 可见度有什么变化?哪些引擎不再引用我们?”
- “为什么 AI 引擎不提及我们?使用未引用诊断。”
来源和竞争对手
- “针对我们的提示词,每个引擎会读取哪些尚未提及我们的网站?按优先级整理成联系名单。”
- “引擎已经引用了我们的哪些页面?”
- “有哪些对象取代我们被提及?哪些竞争对手还没有被我们跟踪?”
- “将 G2 类别页面标记为已联系。” (Pro)
整合 Search Console 数据
- “哪些查询刚好排在首页之外?每个查询对应哪个页面?”
- “哪些页面获得了展示却没有点击?为什么?”
- “哪些内容获得了 Google 展示,却从未被 AI 引用?这就是我的 AEO 目标名单。”
- “我们的两个页面是否在争夺同一个查询?”
- “有多少搜索看起来像 AI 提示词?”
修复和内容
- “列出 acme.com 尚未解决的问题,并按每项涉及的 Search Console 展示次数排序。”
- “哪些关键词有需求却没有对应页面?将排名最高的三个加入队列。” (Pro)
- “哪些 AutoSEO 文章该更新了?更新它们。” (Pro)
- “将本周失去的三个问题添加到我们的跟踪提示词中,并停用无人搜索的问题。” (Pro)
- “为 acme.com 运行一次新扫描,并总结排名前三的问题。” (Pro,使用一次扫描)
快速开始
你需要一个 Starter 或更高套餐的 Cituna 账户,并且至少跟踪一个品牌。3 天免费试用仅适用于应用:你的套餐生效后才能使用 MCP。全新的工作区还没有可读取的内容,因此请先在应用中添加你的品牌(cituna.com)。
有两种连接方式,两者提供的工具完全相同:
| 托管连接器(推荐) | 本地 npm 包 | |
|---|---|---|
| 地址 | https://mcp.cituna.com/mcp | npx -y cituna-mcp |
| 传输方式 | Streamable HTTP | stdio |
| 登录 | 在浏览器中通过 OAuth 登录,或使用 API 密钥标头 | CITUNA_API_KEY 环境变量 |
| 本地要求 | 无 | Node 20 或更高版本 |
| 适用客户端 | 下文列出的所有客户端,包括网页版和移动版 claude.ai | 桌面和终端客户端 |
claude.ai(网页版和移动版)
-
在 Claude 中,打开 Customize → Connectors,点击 Add,然后点击 Add custom connector。
-
将其命名为 Cituna,然后粘贴 URL:
https://mcp.cituna.com/mcp -
Claude 会引导你前往 Cituna 登录,然后显示授权页面。保留 Also allow changes 的勾选状态,让 Claude 运行扫描并处理你的队列(Pro 和 Max);或者取消勾选,以建立只读连接。
-
在聊天中,通过 + 菜单启用 Cituna,然后提出你的第一个问题。
在 Team 和 Enterprise 套餐中,组织所有者只需在 Organization settings → Connectors 下添加一次连接器,然后每位成员都可以从 Customize → Connectors 连接该工具,并使用自己的 Cituna 账户登录。在 claude.ai 上添加的连接器也可在登录了同一账户的 Claude Desktop 和移动应用中使用。
Claude Desktop
使用上述连接器是最快的方式:打开 Customize → Connectors → Add → Add custom connector,粘贴 https://mcp.cituna.com/mcp,然后在浏览器中批准。
如果要改为在本地运行 npm 包,请生成 API 密钥(见下文),然后编辑 claude_desktop_config.json(Settings → Developer → Edit Config):
{
"mcpServers": {
"cituna": {
"command": "npx",
"args": ["-y", "cituna-mcp"],
"env": {
"CITUNA_API_KEY": "cituna_sk_your_generated_key"
}
}
}
}
在 Windows 上,如果服务无法启动,请通过 cmd 运行 npx:"command": "cmd" 和 "args": ["/c", "npx", "-y", "cituna-mcp"]。重启 Claude Desktop。工具会显示在聊天框的 + 按钮下。
Claude Code
使用托管服务,通过浏览器登录:
claude mcp add --transport http cituna https://mcp.cituna.com/mcp
然后在 Claude Code 中运行 /mcp,选择 cituna 并选择 Authenticate。若要改用 API 密钥而非 OAuth:
claude mcp add --transport http cituna https://mcp.cituna.com/mcp \
--header "Authorization: Bearer cituna_sk_your_generated_key"
或者在每个项目中本地运行 npm 包:
claude mcp add cituna --scope user \
--env CITUNA_API_KEY=cituna_sk_your_generated_key \
-- npx -y cituna-mcp
运行 /mcp 确认已连接,然后询问 “这周我的 AI 可见度有什么变化?”
ChatGPT
ChatGPT 连接到同一个托管 URL。没错,你可以询问 ChatGPT,ChatGPT 如何引用你。
- 在网页版 ChatGPT 中,打开 Settings → Security and login,然后启用 Developer mode。Plus、Pro、Business、Enterprise 和 Edu 套餐均包含此功能。
- 打开 Plugins,点击 +,然后选择 Create MCP App。
- 将其命名为 Cituna,粘贴
https://mcp.cituna.com/mcp,选择 OAuth,然后创建。 - 登录 Cituna;如果需要写入权限,请勾选 Also allow changes 后批准。然后通过 + 菜单将 Cituna 添加到聊天中。
ChatGPT 会在每次更改前征求确认。Starter 套餐支持读取;运行扫描和编辑则需要 Pro 或 Max。已批准的 ChatGPT 连接会列在 Cituna 应用的 Integrations 下,你可以在那里断开连接。
Cursor
或者将其添加到 ~/.cursor/mcp.json(所有项目)或 .cursor/mcp.json(单个项目):
{
"mcpServers": {
"cituna": {
"url": "https://mcp.cituna.com/mcp"
}
}
}
Cursor 会在其 MCP 设置中列出该服务,并提供登录按钮;点击按钮,登录 Cituna 并批准。若要跳过 OAuth,请通过标头发送 API 密钥:
{
"mcpServers": {
"cituna": {
"url": "https://mcp.cituna.com/mcp",
"headers": { "Authorization": "Bearer cituna_sk_your_generated_key" }
}
}
}
也可以在本地运行,将 "command": "npx"、"args": ["-y", "cituna-mcp"] 和 "env": { "CITUNA_API_KEY": "cituna_sk_..." } 作为配置。通过 Cursor 的 Agent 聊天使用这些工具。
VS Code(GitHub Copilot)
或从命令行运行:
code --add-mcp '{"name":"cituna","type":"http","url":"https://mcp.cituna.com/mcp"}'
或者,在单个工作区的 .vscode/mcp.json 中配置(要为所有工作区配置,请从命令面板运行 MCP: Open User Configuration):
{
"servers": {
"cituna": {
"type": "http",
"url": "https://mcp.cituna.com/mcp"
}
}
}
首次运行工具时,VS Code 会打开 Cituna 登录页面。若要使用 API 密钥,请让 VS Code 提示输入密钥一次,并确保不将密钥保存在文件中:
{
"inputs": [
{ "type": "promptString", "id": "cituna-key", "description": "Cituna API key (cituna_sk_...)", "password": true }
],
"servers": {
"cituna": {
"type": "http",
"url": "https://mcp.cituna.com/mcp",
"headers": { "Authorization": "Bearer ${input:cituna-key}" }
}
}
}
在 Agent 模式下打开 Copilot Chat,即可在工具选择器中看到 Cituna 工具。
Windsurf
在 ~/.codeium/windsurf/mcp_config.json 中(或在 Windsurf 的 MCP 设置中打开同一文件):
{
"mcpServers": {
"cituna": {
"serverUrl": "https://mcp.cituna.com/mcp"
}
}
}
如果你的 Windsurf 版本不会打开浏览器进行登录,请在 serverUrl 旁添加 "headers": { "Authorization": "Bearer cituna_sk_your_generated_key" }。
Codex CLI
使用你的 API 密钥运行 npm 包:
codex mcp add cituna --env CITUNA_API_KEY=cituna_sk_your_generated_key -- npx -y cituna-mcp
这会将等效于以下内容的配置写入 ~/.codex/config.toml:
[mcp_servers.cituna]
command = "npx"
args = ["-y", "cituna-mcp"]
env = { CITUNA_API_KEY = "cituna_sk_your_generated_key" }
Gemini CLI
gemini mcp add --transport http cituna https://mcp.cituna.com/mcp
然后运行 /mcp auth cituna 登录。或者,在 ~/.gemini/settings.json 中使用 API 密钥而非 OAuth:
{
"mcpServers": {
"cituna": {
"httpUrl": "https://mcp.cituna.com/mcp",
"headers": { "Authorization": "Bearer cituna_sk_your_generated_key" }
}
}
}
任何其他 MCP 客户端
- **支持远程服务:**通过 Streamable HTTP 连接到
https://mcp.cituna.com/mcp。如果支持 OAuth,它会根据401挑战自动发现登录入口;否则,请发送Authorization: Bearer cituna_sk_...(或X-API-Key: cituna_sk_...)。 - **仅支持 stdio:**在其环境中设置
CITUNA_API_KEY,然后运行npx -y cituna-mcp。
从源代码运行,用于开发:
git clone https://github.com/cituna/cituna-mcp && cd cituna-mcp
npm install && npm run build # then: node dist/index.js
获取 API 密钥
托管连接器无需密钥。npm 包和标头选项需要密钥:
- 在 Cituna 应用中,打开 Integrations → Claude / MCP access,然后点击 Generate token。
- 复制
cituna_sk_...值。该值只会显示一次。 - 按上述说明将其粘贴到客户端配置中。
密钥不会自动过期,也不是你的密码,可随时在应用中撤销。同一密钥也适用于 Looker Studio 连接器和 REST API。每个人都应使用自己的密钥:密钥代表一个工作区,仅此而已。
工具
共 31 个工具:22 个读取工具和 9 个写入工具。除 list_keywords 外,读取操作均可在 Starter 计划中使用;list_keywords 用于读取 Pro 计划包含的关键词数据集。9 个写入工具需要 Pro 或更高计划;未勾选 Also allow changes 批准的连接,在任何计划中都无法调用这些工具。每个工具都带有 MCP 注释(readOnlyHint、destructiveHint、idempotentHint),因此客户端可以自动批准读取操作,并在写入前征求确认;set_prompts、update_article 和 enrich_article 标记为具有破坏性,因为它们可能删除或覆盖内容。
从这里开始
| 工具 | 计划 | 输入 | 功能 |
|---|---|---|---|
whoami | Starter | 无 | 已登录账户(电子邮件、工作区、角色)、后端 URL、计划以及所有用量指标:各工具的已用量和限额、品牌数和提示词池数量。请先调用此工具。Search Console 状态由 gsc_status 负责。 |
list_brands | Starter | 无 | 列出工作区跟踪的品牌和域名,这些是其他所有工具的输入。 |
gsc_status | Starter | 无 | 显示 Google Search Console 是否已连接、已连接的 Google 账户(一个工作区可以连接多个账户),以及每个账户可读取的已验证资源。 |
每日 AI 可见度跟踪
| 工具 | 计划 | 输入 | 功能 |
|---|---|---|---|
get_visibility | Starter | brand | 品牌最新的每日网格:针对每个受跟踪的提示词和七个引擎中的每一个,列出是否被引用、排名、运行的引擎模式和单元格状态,以及当前可见度评分和测量日期(UTC)。unavailable 单元格表示引擎本次未给出答案,并非未命中;系统会自动重新检查。 |
get_engine_answers | Starter | brand、prompt、engine(可选) | 查看凭证:最新一天各引擎对某个提示词给出的答案文本(最多约 4,000 个字符,并带有 truncated 标记)、引用的品牌、来源 URL 和你的排名。 |
set_prompts | Pro,写入 | brand,然后选择 add、remove、enable、disable 或 replace | 编辑每天向七个引擎提出的买家问题,并查看修改前后的差异。remove 和 replace 会删除提示词在网格中的位置及其历史记录,因此 disable 是停止为某个提示词付费的可逆方式。 |
审计与修复队列
| 工具 | 计划 | 输入 | 功能 |
|---|---|---|---|
list_audits | Starter | domain(可选) | 最近的审计,按时间从新到旧排列:扫描 ID、域名、日期、AI 引用评分、SEO、GEO 和权威性评分、未解决差距数量以及 scoring_epoch。仅比较同一 epoch 内的评分;跨 epoch 则比较引用数量。 |
get_audit | Starter | scanId | 查看完整审计:总体及各引擎评分、按引擎列出的查询引用矩阵(每个单元格均为 cited、not_cited 或 not_run;未参与某个查询的引擎并非未命中)、被引用的竞争对手、主要差距,以及审计读取的所有页面中按判定结果统计的 SEO 和 GEO 检查项(数量与应用中的“N 项待修复”相同);还包括待修复的检查项(逐页评分时列出检查过和通过的页面)、跨页面建议,以及审计读取的页面数。 |
run_scan | Pro,写入 | url、competitors(可选) | 运行新审计,并在约一分钟内返回完成的结果。会使用每月额度中的一次扫描;新域名会成为受跟踪的品牌。使用 get_audit 查看现有审计无需付费。 |
list_gaps | Starter | domain 或 scanId | 修复队列:列出每项差距的 gapKey、状态(todo、doing、done)、标题、类别、影响、工作量和具体修复方法。 |
set_gap_status | Pro,写入 | domain、gapKey、status | 将一项差距的状态设为 todo、doing 或 done。 |
引用来源与竞争对手
| 工具 | 计划 | 输入 | 功能 |
|---|---|---|---|
list_citation_sources | Starter | domain,然后可选的 search、engine、range、gapsOnly | 汇总引擎为你的提示词引用的第三方页面(按站点主机名统计):各站点被引用的频率、提及的竞争对手、回答的提示词,以及通过打开页面读取的 youOnThisSite(absent、mentioned、linked、unreachable 或 unknown)。还会列出最多 50 个已被引擎引用的你方页面,以及各引擎最常依赖的站点。传入 search 可搜索某个品牌、站点主机名或 URL。 |
set_outreach_status | Pro,写入 | domain、host、status | 记录针对某个来源站点主机名的外联进展:planned、pitched、placed 或 declined(none 用于清除状态)。每次调用 list_citation_sources 时都会返回该信息。 |
competitor_discovery | Starter | domain,然后可选的 days、minEvidence | 查找尚未跟踪的竞争对手:引擎回答你的提示词时提到的品牌,以及用户在找到你之前搜索过的供应商名称,并按证据排序。 |
Google Search Console
| 工具 | 计划 | 输入项 | 功能说明 |
|---|---|---|---|
gsc_overview | 入门版 | domain、days | 查看过去 N 天的点击次数、展示次数、点击率和平均排名,以及热门查询和页面、国家和设备细分数据,以及每日数据序列。 |
gsc_query | 入门版 | domain 或 siteUrl、dimensions、days 或 startDate 和 endDate、filters、rowLimit | 执行任意搜索分析查询:按查询、页面、国家、设备、搜索外观或日期查看数据,并支持筛选条件、搜索类型和分页。 |
gsc_striking_distance | 入门版 | domain,以及可选的 minPosition、maxPosition、minImpressions | 查找刚好排在首页之外的查询(默认排名第 11 至第 60),按实际提升排名可能带来的收益排序,并显示各查询对应的排名页面。 |
gsc_zero_click_pages | 入门版 | domain,以及可选的 minImpressions、maxClicks | 查找 Google 展示过但无人点击的页面,并按原因(品牌、摘要、第二页或排名)细分,因为不同原因需要不同的解决方案。 |
gsc_query_mix | 入门版 | domain,以及可选的 competitors | 按意图(品牌、竞品替代品、用户画像、商业、工具、操作指南、类别)对域名获取的需求进行分组,并显示各组的展示次数、点击次数和排名。 |
gsc_coverage_gap | 入门版 | domain、days | 查找 Google 从未向任何人展示过的站点地图页面,并按 URL 前缀分组,从而凸显表现不佳的板块。直接从网站获取站点地图。 |
gsc_cannibalisation | 入门版 | domain,以及可选的 minImpressions | 查找两个或多个自有页面相互竞争的查询,并显示每个页面的排名和展示次数,以及 Google 更青睐的页面。 |
gsc_ai_searches | 入门版 | domain、days | 查找措辞类似 AI 提示词的搜索(后续问题、聊天回复、指令、粘贴的文本),以估算 AI 使用情况的下限。Search Console 没有 AI Overviews 或 AI Mode 筛选条件,因此这些数据并非 Google 的 AI 数据。 |
关键词与 AutoSEO 文章
| 工具 | 方案 | 输入 | 功能 |
|---|---|---|---|
list_keywords | Pro,读取 | domain,然后可选 stage、includeSearchConsole | 列出每个已跟踪关键词的 Google 排名、月搜索量、竞争度,以及对应页面所处的阶段。stage: "none" 是待选列表:有搜索需求,但尚未为其撰写内容。排名数据来自排名检查器(前 20 名)和 Search Console(28 天平均值)。 |
list_content_queue | Starter | domain,然后可选 status、before | 查看 AutoSEO 正在处理的内容:等待撰写的主题,以及已生成或已发布的文章,并列出每项对应的关键词或提示词,以免重复排入队列。 |
list_articles | Starter | domain,然后可选 status、before | 每篇 AutoSEO 文章占一行,按时间从新到旧排列:ID、标题、线上 URL、状态、关键词、发布时间、上次发送到网站的时间、编辑和更新的时间、文章自己的 Search Console 数据,以及是否需要更新(enrich.eligible)。不包含文章正文。 |
get_article | Starter | id | 获取一篇文章保存的文本(标题、元标题和描述、副标题、章节、常见问题、标签)、发布检查标记的问题,以及上次更新前后的内容。 |
queue_article | Pro,写入 | domain、keyword,然后可选 impressions、position | 将关键词加入队列,以便 AutoSEO 在下次运行时为其起草文章。如果该关键词已有主题或文章、网站上已有对应页面(结果会指出该页面),或队列已满,则不会加入队列;reason 会说明原因。 |
mark_article_published | Pro,写入 | domain、keyword、url | 告知 Cituna 某个关键词对应的页面已上线,可以是你自行撰写的页面,也可以是从自己的 CMS 发布的页面。如果不执行此操作,Cituna 会将该关键词视为尚未撰写,并建议撰写竞争页面。 |
update_article | Pro,写入 | id,然后可选任意字段:title、metaTitle、metaDescription、dek、sections、faqs、tags | 覆盖文章保存文本中的字段。再次从 Cituna 应用发送文章后,网站上的页面才会更新。 |
enrich_article | Pro,写入 | id | 根据文章自身在发布网站上的 Search Console 查询,更新线上文章的 SEO 标题、元描述和最多两条常见问题答案,并返回更新前后的内容。仅适用于 list_articles 显示需要更新的文章;每月额度会扣除一次生成次数。 |
skip_queued_topics | Pro,写入 | ids | 将最多 50 个主题移出 AutoSEO 队列,使其永不被撰写。再次加入相同文本会将其重新放回队列。 |
方案与访问权限
每个付费 Cituna 方案都包含 MCP 服务。没有单独的附加选项,也没有免费的 MCP 方案:3 天免费试用仅限应用内使用;试用结束后若未订阅方案,则无法调用该服务。
| Starter($49/月) | Pro($119/月) | Max($399/月) | |
|---|---|---|---|
| MCP 访问权限 | 只读 | 读写 | 读写 |
| 读取工具(22 个) | 21 个:除 list_keywords 外的所有读取工具 | 全部 22 个 | 全部 22 个 |
| 写入工具(9 个) | 无(在应用中操作) | 全部 9 个 | 全部 9 个 |
| 每月 MCP 调用次数 | 5,000 | 10,000 | 30,000 |
| 每天在全部七个引擎上检查的提示词数 | 10 | 30 | 90 |
| 跟踪的品牌数 | 1 | 3 | 10 |
每月重新扫描次数(run_scan 会占用一次) | 10 次,在应用中运行 | 15 次 | 20 次 |
各项限制的运作方式:
- Starter 方案使用写入工具时,会返回一条注明需要 Pro 方案的提示,且不会进行任何更改。使用 Starter 方案时,你仍可在应用中运行扫描并处理队列,只是不能通过 Agent 操作。
- 使用写入工具既需要相应权限范围,也需要相应方案。 如果你在授权界面取消勾选同时允许更改,那么即使使用 Pro 或 Max 方案,该连接也将是只读的。之后若要启用写入权限,请在集成中断开连接,然后勾选该选项重新连接。
- 每月 MCP 调用额度会统计每次调用。额度用尽后,会返回方案限制提示(HTTP 402);请升级方案或等待额度重置。HTTP 429 是单独的突发调用限制:请等待提示中给出的秒数,然后重试。
run_scan会占用每月额度中的一次扫描;扫描未跟踪的域名会将其作为品牌计入方案的品牌数上限。其他操作读取的都是 Cituna 已收集的数据。enrich_article会占用每月额度中的一次内容生成,并更改你网站上的一个在线页面。
自定义的 Enterprise 方案可进一步提高限额,并按发票结算。各方案的完整限额:cituna.com/pricing。
内置工作流
该服务通过 MCP prompts API 提供五种分析工作流。在 Claude 中,它们会显示在提示词选择器中;在任何客户端中,服务的说明都会告诉 Agent 每种工作流适用于回答什么问题,因此只需用日常语言描述需求,即可自动路由。每种工作流都会将 Search Console 数据与各引擎的实际回答文本结合起来,这是通用 SEO 工具无法做到的。
| 提示词 | 参数 | 功能 |
|---|---|---|
why-am-i-not-cited | brand、prompt(可选) | 将所有未被引用的提示词分为各处都不可见、Google 可见但 AI 不可见,或部分被引用,并提供引擎回答和 Search Console 中的证据。 |
gsc-to-ai-gap | domain、days(可选) | 找出获得 Google 实际展示、但从未被 AI 引用的查询:按排名排列的 AEO 目标列表。 |
competitor-teardown | brand、competitor(可选) | 根据回答文本统计各引擎实际引用了哪些对象,并与已配置的竞争对手列表进行比较。 |
weekly-review | brand | 汇总审计、Search Console 和差距队列中的进展、退步情况以及本周的 3 项行动。仅读取数据。 |
prioritize-fixes | domain | 根据 Search Console 展示次数以及每个差距所涉及的未被引用提示词,重新排列修复队列的优先级。 |
这些工作流都不会自行启动付费扫描。
一次会话是什么样的
服务器连接后,首次对话示例如下(acme.com 代表你的品牌):
你: 我们销售排期软件。为什么 ChatGPT 从不提到我们?
Claude: (whoami → Pro,已使用 15 次扫描中的 4 次 · list_brands → acme.com · gsc_status → 已连接) 正在对 acme.com 运行“未被引用”诊断。
(get_visibility) 你在 18 个提示词×引擎单元格中被引用了 3 个。ChatGPT 回答了你关于品类的全部 6 个提示词,却没有在其中任何一个答案里引用你。
(get_engine_answers,针对排名最高的 3 个) 对于“诊所最佳排期软件”,ChatGPT 引用了 Calendly、Acuity 和 Capterra 的汇总页面。所有引用都是第三方榜单。没有任何一个是供应商自有网站,包括你的竞争对手。
(gsc_query) Google 已经为该意图向你发送了 1,240 次展示,平均排名为 8.4。因此,这不是索引问题。
发现: 你在 Google 上可见,在 AI 中却不可见。ChatGPT 的答案来自你未上榜的汇总页面,因此,无论你做多少站内优化,都无法改变这一点。关键在于进入这些榜单。
(list_keywords stage:"none") “诊所排期软件”有需求,但没有对应页面。要我将它加入队列吗?(queue_article)
以上操作都不会消耗扫描次数:它们只是读取 Cituna 已收集的数据。
连接 Google Search Console
gsc_* 工具需要在 Cituna 应用中进行一次性连接,而不是在你的 MCP 客户端中连接。此服务中没有 Google OAuth,这是有意为之:浏览器授权在应用中完成,刷新令牌也仅存储在服务器端。
- 在应用中打开 集成,然后点击 连接 Google Search Console(付费套餐)。
- Google 会要求授予 Cituna 只读 Search Console 访问权限(
webmasters.readonly)。Cituna 永远无法获得对 Google 中任何内容的写入权限。 - 选择一个已将你的域名设为已验证 Search Console 资源的 Google 账号。这一步常被人忽略:如果该账号从未验证过此域名,虽然连接会成功,但每次查询仍会返回空结果,因为 Google 没有可供其显示的数据。
- 回到你的 Agent 中,运行
gsc_status。该命令会列出每个已连接的账号及其可查询的所有资源。如果你的域名不在列表中,请在 Search Console 中验证该资源,而不是在 Cituna 中验证。
一个工作区可以连接多个 Google 账号,只要其中任意一个账号拥有某个域名的资源,就可以读取该域名的数据。在应用中断开连接(集成、断开连接)会立即切断此服务的访问。
身份验证与安全
该服务是 Cituna API 的轻量客户端。它不保存任何 Google 凭据或数据库:它会将你的 Cituna 凭据发送给后端,由后端查找你工作区中保存的 Search Console 刷新令牌,签发短期 Google 访问令牌,并代你查询 Google。
OAuth(托管连接器)。 该服务是受 OAuth 2.1 保护的资源,而 Cituna API 是授权服务器。客户端会自行完成以下流程:
POST /mcp (no credential)
→ 401 + WWW-Authenticate: Bearer resource_metadata="…"
→ GET https://mcp.cituna.com/.well-known/oauth-protected-resource
→ names https://api.cituna.com as the authorization server
→ GET /.well-known/oauth-authorization-server
→ POST /oauth/register (dynamic client registration, RFC 7591)
→ GET /oauth/authorize (browser: sign in, then consent)
→ POST /oauth/token (PKCE S256 required)
客户端也可以使用已发布的客户端身份(客户端 ID 元数据文档)登录,Claude 和 ChatGPT 就是通过这种方式连接的。访问令牌有效期为 24 小时。刷新令牌每次使用都会轮换;再次提交已轮换失效的刷新令牌会终止整个连接,因此被盗的副本无法悄悄比真实客户端存续更久。共有两个作用域:cituna:read 和 cituna:write,而写入工具既需要相应作用域,也需要相应套餐。
API 密钥。 cituna_sk_... 密钥可用于 npm 包的 CITUNA_API_KEY,也可放在托管 URL 的 Authorization: Bearer(或 X-API-Key)标头中。一个密钥只会验证一个工作区的身份,而托管服务按请求保持无状态,因此密钥不会混用。不要配置网关,让它为所有用户发送同一个共享密钥:这样每个用户都会以该密钥对应的单一工作区身份操作。
连接无法执行的操作。 它只能调用 MCP 工具,不能做其他事情。它无法创建 API 密钥、更改密码、访问账单、邀请队友或批准其他应用;这些操作需要你登录应用后才能进行。令牌只会签发给 Cituna 自己的 MCP 服务(RFC 8707 resource),因此,其他将 Cituna 指定为授权服务器的服务无法获取令牌。
第三方内容。 答案文本、引用标题、URL 和 Search Console 查询内容都来自 AI 引擎、它们读取的页面以及进行搜索的用户。该服务会指示你的 Agent 将这些内容视为数据,绝不遵循其中的指令,也不因工具输出要求而调用写入工具。
已批准的应用会列在应用中的 集成 下,每个应用都会标明是只读,还是可以进行更改;你也可以在那里断开连接。
自托管远程服务
托管 URL 使用的代码与此仓库相同。两种传输方式都基于同一个工具层(src/tools.ts),因此工具列表、描述和架构实际上是相同的对象;如果它们出现任何差异,npm run test:transports 会导致构建失败。
stdio(dist/index.js) | remote(dist/http.js) | |
|---|---|---|
| 运行位置 | 在你的计算机上,由客户端启动 | 作为服务运行,通过 URL 访问 |
| 需要 | 本地安装 Node 20+ | 无需本地环境 |
| 凭据 | CITUNA_API_KEY 环境变量 | 每个请求都携带 Authorization: Bearer |
| 发布形式 | cituna-mcp npm 包 | 容器(Dockerfile) |
stdio 服务会读取 CITUNA_API_URL(后端基础 URL,默认为 https://cituna.com)以及一个凭据,按以下顺序检查:CITUNA_API_KEY(推荐)、CITUNA_TOKEN(应用的会话令牌,约 30 天后过期),或者 CITUNA_EMAIL 和 CITUNA_PASSWORD(服务会登录,并在凭据过期时刷新)。
运行远程服务:
npm run build && npm run start:http # or: npm run dev:http
| 环境变量 | 默认值 | 用途 |
|---|---|---|
PORT | 8080 | 监听端口。 |
CITUNA_API_URL | https://cituna.com | 后端基础 URL。 |
CITUNA_MCP_ALLOWED_HOSTS | (未设置) | 以逗号分隔的 Host 允许列表(DNS 重绑定防护)。如果部署在已固定主机的代理后面,请保持未设置。 |
这里特意不设置 CITUNA_API_KEY:远程服务本身不持有任何凭据。每个请求都会携带自己的凭据,并为其创建一个新的客户端和 MCP 服务;响应结束时,两者都会被销毁,因此一个用户的密钥绝不会被捕获到另一个用户的会话中。未携带凭据的请求会收到 401,甚至无法列出工具。使用附带的 Dockerfile 部署(多阶段构建;运行时映像只包含一个生产依赖)。如果你将服务自托管在 cituna.com 以外的域名上,请将该域名的来源添加到 API 的 OAUTH_ALLOWED_RESOURCES 中,以便为其签发令牌(始终允许环回地址)。
远程服务上的端点:
| 路径 | 说明 |
|---|---|
POST /mcp | MCP 端点(Streamable HTTP)。 |
GET /healthz | 存活状态及正在运行的版本。 |
GET / | 服务的简短说明。 |
GET /.well-known/oauth-protected-resource | 客户端从 401 响应的 WWW-Authenticate 标头中发现的 OAuth 元数据。 |
GET /.well-known/mcp-config | API 密钥配置路径,支持配置的客户端(例如 Smithery)可据此显示“粘贴你的密钥”表单,而不是 OAuth 按钮。 |
目录和网关。 官方 MCP Registry 条目(server.json,com.cituna/cituna-mcp)包含一个 remotes 条目,告知由注册表驱动的客户端,以及 PulseMCP 和 Glama 等镜像该注册表的目录,直接连接到 https://mcp.cituna.com/mcp 并提示用户输入个人 API 密钥。请求不会经过目录路由。
版本。 托管 URL 始终运行最新版本,npx -y cituna-mcp 会从 npm 获取最新版本。使用 npx -y cituna-mcp@<version> 固定版本;上方的 npm 徽章会显示当前版本,GET /healthz 会报告托管服务正在运行的版本。
故障排查
| 症状 | 解决方法 |
|---|---|
| 首次调用返回 401 | 这是 OAuth 握手:客户端应打开浏览器进行登录。如果没有,说明客户端不支持远程 OAuth。请发送 API 密钥标头,或运行 npx -y cituna-mcp。 |
Not signed in to Cituna(HTTP 401) | 请求到达 /mcp 时未携带凭据。请发送 Authorization: Bearer cituna_sk_...(或 X-API-Key)。匿名调用者也无法列出工具,这是预期行为。 |
| 404,并显示 "The MCP endpoint is /mcp" | URL 缺少路径。请使用 https://mcp.cituna.com/mcp,而不是 https://mcp.cituna.com。 |
Your Cituna access has expired or was revoked(HTTP 401) | 令牌或密钥已失效。支持 OAuth 的客户端会自行刷新令牌或重新打开登录页面;否则,请重新连接或创建新密钥。 |
That is not a Cituna MCP credential(HTTP 401) | 只接受 cituna_at_...(浏览器登录)和 cituna_sk_...(API 密钥)。从 Web 应用复制的会话令牌将被拒绝。 |
No API key configured(npm 包) | 未设置凭据。请生成密钥(Integrations → Claude / MCP access),并设置 CITUNA_API_KEY。 |
API key invalid, revoked, or the account no longer has access | 密钥不会自行过期:密钥已被撤销、输入有误,或账号已失去访问权限。请创建新密钥。如果密钥有效,请检查 CITUNA_API_URL 末尾是否带有路径,以及它是否为会重定向的源站:跨源重定向会移除 Authorization 标头。 |
| 写入工具提示需要 Pro | 你使用的是 Starter 套餐,该套餐的 MCP 仅支持读取。请在应用中操作,或前往 cituna.com/pricing 升级。 |
| Pro 或 Max 套餐下写入工具遭拒 | 连接获批时未勾选 Also allow changes。请在 Integrations 中断开连接,然后重新连接并勾选该选项。 |
requires a paid plan (Starter/Pro/Max) | 试用期和已结束的套餐均无法使用 MCP。请前往 cituna.com/pricing 选择套餐。 |
gsc_* 工具返回 { "configured": false, ... } | Search Console 尚未连接,或已连接的账号中没有任何账号持有该网域的资源。请按提示操作,然后检查 gsc_status。 |
Rate limited (HTTP 429) | 这是突发请求上限,并非月度限额。请等待提示的秒数后重试。月度额度用尽时会显示套餐限额消息(HTTP 402)。 |
登录过程中出现 invalid_target | 客户端请求的令牌对应的服务器不是 Cituna。若要在自己的网域上自托管,请在 API 中将其源站添加到 OAUTH_ALLOWED_RESOURCES。 |
A connected app can only use Cituna's MCP tools(HTTP 403) | 密钥、密码、账单和团队变更需要你在浏览器中登录应用。 |
| 工具未显示(npm 包) | 请确认 Node 版本为 20 或更高;在 Windows 上,请通过 cmd /c 运行 npx。如果从源码运行,请执行 npm run build,并使用 dist/index.js 的绝对路径。然后检查客户端的 MCP 日志。 |
引擎显示 unavailable | 该引擎本次运行未返回答案。这不算未命中,也不会计入你的用量,并且会自动再次检查。 |
常见问题
Cituna MCP 服务是什么? 这是一个将你的 Cituna 工作区连接到 AI Agent 的模型上下文协议服务。它会读取你的每日 AI 可见度跟踪数据、背后的引擎答案、引擎引用的页面、审计结果、修复队列、关键词、AutoSEO 文章和实时 Search Console 数据;在 Pro 方案中,它还可以执行操作:运行扫描、更改你跟踪的提示词、推进修复事项、将文章加入队列、编辑或刷新文章,以及记录外联活动。
它涵盖哪些 AI 引擎? 共 7 个,每天都会检查:ChatGPT、Perplexity、Gemini、Claude、Grok、Google AI Overviews 和 Google AI Mode。Google AI Overviews 和 Google AI Mode 会分开跟踪,因为它们对同一查询会给出不同答案。不跟踪 Microsoft Copilot。
它能与 ChatGPT 配合使用吗? 可以。开启 Developer mode,使用托管 URL 创建 MCP 应用,并选择 OAuth(步骤见上文)。ChatGPT Plus、Pro、Business、Enterprise 和 Edu 网页版均提供 Developer mode。
我需要安装任何东西吗? 不需要。托管连接器只需一个 URL 和浏览器登录。只有使用可选的 npm 包时才需要 Node 20 或更高版本。
有免费方案吗? MCP 服务没有免费方案。每个付费方案都包含该服务,Starter(每月 $49)方案仅提供只读权限;Pro 方案提供写入工具。3 天免费试用仅限应用内使用。
Agent 可以更改我的数据吗? 仅限 Pro 或 Max 方案;只有在批准时勾选了 Also allow changes,并且仅通过上文列出的 9 个写入工具才能更改。遵循 MCP 注释的客户端会在每次写入前征求确认,而 ChatGPT 始终会这样做。
我的 Google 数据安全吗? 服务不会接触你的 Google 凭据。Cituna 会在服务器端持有只读的 Search Console 授权,并代表你向 Google 查询;在应用中断开连接后,MCP 访问会立即停止。
Cituna 是唯一提供 MCP 服务的 AI 可见度工具吗? 不是。有几款 AI 可见度工具提供 MCP 服务,各自的工具、方案以及读写权限各不相同。Cituna 将 7 个引擎的每日跟踪与你的 Search Console 数据和 AutoSEO 写入功能结合,起价为 $49。请查看带日期的对比。
也有 REST API 吗? 有。你可以使用 bearer token 通过 HTTPS 获取相同的数据,用于自己的仪表板、Agent 和 CI。请参阅 cituna.com/developers。
链接
- 产品页面和文档: cituna.com/mcp
- 定价和方案限制: cituna.com/pricing
- 连接、密钥和已批准的应用(在应用中): cituna.com/integrations
- REST API: cituna.com/developers
- 提供 MCP 服务的 AI 可见度工具对比: cituna.com/learn/ai-visibility-tools-with-mcp-server
- 按买家问题对比 AEO 和 AI 可见度工具: github.com/Cituna/best-ai-visibility-tools
- npm 包: cituna-mcp
- 官方 MCP 注册表:
com.cituna/cituna-mcp - 源码镜像: github.com/cituna/cituna-mcp
- Bug 和功能请求: GitHub issues
Looker Studio 连接器
此仓库还包含 looker-connector/,这是一个 Google Apps Script 社区连接器,可用于基于 Cituna 可见度数据创建 Looker Studio 仪表板。将 Code.gs 部署为社区连接器,在 KEY 身份验证页面粘贴你的 cituna_sk_... 密钥,然后构建仪表板。完整设置说明:looker-connector/README.md。
关于此代码库
这是一个已发布的镜像,而非工作树。这两项集成都在 Cituna 的私有单体代码库中开发,并在创建标签时自动发布到此处,因此工具接口和连接器的引擎列表会固定为 API 实际提供的内容。
无法直接合并针对此代码库的拉取请求,但我们会阅读并处理问题,因此欢迎提交问题。
许可证
采用 MIT 许可证。错误报告和功能请求:https://github.com/cituna/cituna-mcp/issues
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。