Confluence MCP Server
Provides tools for reading and searching Confluence pages, including fetching page content as Markdown with embedded images, and searching pages by keywords.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Confluence MCP Serversearch for deployment guide"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Confluence MCP Server
让 Claude Code 能直接读取 Confluence 内部文档。
它能做什么
get_page— 给一个页面 ID 或完整 URL,返回页面内容(转成 Markdown),并自动下载页面内的图片,让 Claude 能看懂产品图等视觉内容search_pages— 输入关键词,返回匹配的页面列表
Related MCP server: Confluence Communication Server
安装
cd ~/confluence-mcp
npm install
npm run build如果 npm install 报网络错误,改用公共源:
npm install --registry=https://registry.npmjs.org/
配置
第一步:填写站点信息
复制模版 sites.example.json 为 sites.json,填上你的站点信息:
cp sites.example.json sites.json[
{
"name": "rd",
"baseUrl": "https://your-confluence.example.com",
"username": "你的用户名",
"password": "你的密码"
}
]
sites.json已加入.gitignore,不会被提交到 git。模版sites.example.json只含占位值,可安全入库。
第二步:接入 Claude Code
编辑 ~/.claude.json,在 mcpServers 里加入:
{
"mcpServers": {
"confluence": {
"command": "node",
"args": ["/Users/你的用户名/confluence-mcp/dist/index.js"],
"env": {}
}
}
}
args里的路径改成你自己机器上的实际路径。
第三步:重启 Claude Code
重启后,Claude Code 会自动加载 get_page 和 search_pages 两个工具。
多站点
如果你有多个 Confluence 站点,在 sites.json 里加就行:
[
{
"name": "rd",
"baseUrl": "https://rd.example.com",
"username": "alice",
"password": "xxx"
},
{
"name": "wiki",
"baseUrl": "https://wiki.example.com",
"username": "bob",
"password": "yyy"
}
]然后在 ~/.claude.json 的 env 里指定用哪个:
"env": { "CONFLUENCE_SITE": "wiki" }不设的话默认用第一个。
使用
配置好重启 Claude Code 后,直接在对话里说:
读一个页面:
帮我看看这个页面:
https://rd.dtsphere.com/pages/viewpage.action?pageId=90394821帮我读页面 90394821
搜索:
搜一下关于「部署流程」的文档
多站点时指定站点:
去 wiki 站点搜「接口规范」
Claude 会自动调用工具,不需要手动指定工具名。
关于图片
get_page 默认会下载页面里的图片(产品图、流程图等)一起返回。
单页最多取 10 张图,自动过滤表情、图标等装饰性图片
只想看文字、不想下图时,可以让 Claude 跳过:
读页面 90394821,不用下图
注意:命令行版(CLI)的 Claude 没有视觉能力,看不了图片内容。 网页版、桌面版能直接看图;CLI 下要分析图片,用下面的视觉分析。
让 CLI 也能分析图片(视觉分析)
CLI 看不了图时,可以让工具先调用视觉模型把图片解读成文字,再返回:
读页面 90394821 的 2.2 章节,分析里面的图片
工具会把图片喂给视觉模型,把"页面长什么样、有哪些字段和交互"的分析结论作为文字一并返回,CLI 就能基于这段文字继续工作。
视觉分析走
~/.claude.json里配置的同一套 API(ANTHROPIC_AUTH_TOKEN/ANTHROPIC_BASE_URL)分析用哪个模型,按优先级取:
CONFLUENCE_VISION_MODEL(图片分析专用)→ANTHROPIC_MODEL(通用)→ 回退默认claude --model haiku或/model切换不影响图片分析模型——主体模型和分析模型是两条独立链路(详见下方实现原理)想单独指定分析模型,在 server 的
env里加CONFLUENCE_VISION_MODEL,重启生效配合
sections只分析某章节的图,又快又省
分段读大页面
页面内容很长时(如大型需求文档),可以让 Claude 只读某几章,避免上下文撑爆:
读页面 90394821,只看第 2 到第 3 章 读页面 90394821,只看 sections 2-3.2.1
sections 参数裁的是正文,图片也只取那几章里的,两者同步缩减。
建议用法: 先用 search_pages 定位页面,再分章节逐段读,每次只给 Claude 当前要分析的那段内容。
文件位置一览
文件 | 作用 |
| 站点配置(你维护,不进 git) |
| MCP server 实际运行的文件 |
| Claude Code 配置,指向上面的 dist |
实现原理
这个 server 的本质是一个只读的翻译层:Claude 连不上你内网的 Confluence,server 替它调 API,把结果转成 Claude 能消化的 Markdown + 图片 / 图片分析。
整体架构
一个文件一个职责,各自可独立测试:
Claude Code (CLI / 桌面 / 网页)
│ MCP 协议 (stdio)
▼
index.ts 启动入口,建 server,接 stdio
│
tools.ts 注册 2 个工具,编排整个流程
│
├── confluence.ts 调 Confluence REST API(带认证)
├── url.ts 解析 pageId / 各种 URL 形式
├── sections.ts 按章节编号裁剪正文
├── html.ts HTML → Markdown
├── images.ts 从 HTML 抽图片链接
└── vision.ts 调视觉模型分析图片
config.ts 读 sites.json,管多站点配置get_page 的完整数据流
一次 get_page 调用,内部依次发生:
解析引用(
url.ts)— 用户给的可能是纯数字90387185、完整 URL、或/display/空间/标题,统一解析成 pageId 或「空间+标题」。调 API 取页面(
confluence.ts)— 带 Basic 认证请求/rest/api/content/{id}?expand=body.view,拿到渲染后的 HTML。401/404 统一转中文错误。按章节裁剪(
sections.ts,可选)— 指定sections时,根据标题里的自动编号(<span class="nh-number">2.2.</span>)把正文切到指定区间。这是省上下文的关键。HTML 转 Markdown(
html.ts)— 用 turndown 转成干净的 Markdown。处理图片(
images.ts+confluence.ts)— 从正文 HTML 抽出附件图链接(过滤表情/图标),带认证下载转 base64。图片从裁剪后的 HTML 抽取,所以只看某章节时图片也只取那章的,正文和图同步缩减。视觉分析(
vision.ts,可选)— 开启analyzeImages时,server 自己调一次视觉模型把图片解读成文字,追加到返回里,让没有视觉能力的 CLI 也能用上图片内容。
为什么 /model 切换不影响图片分析
MCP server 是 Claude Code 启动时 fork 出的独立子进程:
终端
├─ Claude Code 主进程 ← /model 只切这里(跟你对话的模型)
└─ confluence MCP 子进程 ← vision.ts 用自己的 env 调模型/model 改的是主进程内存里的设置,不会传播到已经跑起来的子进程。vision.ts 调模型走的是它自己发起的全新 API 请求,模型名来自子进程启动时的环境变量,跟主体当前选什么模型没有通信渠道。所以图片分析模型只能通过 server 的 env(CONFLUENCE_VISION_MODEL 等)控制。
关键设计决策
图片下载失败返回 null 而非抛错 — 一页十几张图,一张挂了不该拖垮整页。
vision client 懒加载 — 缺 token 时只在真正分析图片时才报错,不影响纯文本的
get_page/search_pages。只读 — 全程只有 GET,没有任何写/改/删 Confluence 的能力。
凭据隔离 — 账密放
sites.json,已进.gitignore。
开发
npm test # 跑单元测试
npm run build # 重新编译This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/OSTechBase/confluence-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server