Token导航 LogoToken导航TokenDH.com
Confluencemcp logo
搜索检索stdio官方级别未说明来源级核验

Confluencemcp

MCP Server

MCP Server for Confluence Search是一个专为Confluence内部文档设计的搜索服务器,支持SSE和streamable-http传输协议,提供高级搜索功能和LLM查询重写。

工具数

6

提示词数

0

GitHub Stars

1

资源数

0
文档处理PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ivanarama

提供方

ivanarama

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

用于汇流搜索的MCP服务器

MCP(Model Context Protocol)用于搜索Confluence内部文档的服务器。支持 上海证券交易所可流式传输http 运输, 基本认证.

快速启动

cp .env.example .env          # скопировать шаблон
# заполнить .env (минимум: CONFLUENCE_BASE_URL, CONFLUENCE_USERNAME, CONFLUENCE_API_TOKEN)
docker compose up -d --build  # собрать и запустить

服务器地址可用 http://localhost:8003/sse.

配置(.env)

所有设置在一个文件中 .env复制 .env.example 并填写:

cp .env.example .env

强制性

变量描述 |---|---| | CONFLUENCE_BASE_URL URL confluence(本地或Cloud) | CONFLUENCE_USERNAME 登录(Cloud-email) | CONFLUENCE_API_TOKEN 密码(Cloud API Token)

可选

变量沉默了。描述 |---|---|---| | MCP_PORT | 8003 服务器端口 | CONFLUENCE_TIMEOUT | 30 ←HTTP Confluence请求超时(秒,至少5)→ | SCORE_MERGE_MAX_VARIANTS | 12 马克斯基于score-based搜索的查询选项数(4–24)→ | LLM_REWRITE_ENDPOINT | _(空)_ OpenAI兼容API的URL,用于重新定义查询。 | LLM_REWRITE_MODEL | _(空)_ 型号名称(例如) qwen2.5) | | LLM_REWRITE_API_KEY | _(空)_ –API密钥(如果不需要,则为空)。 | LLM_REWRITE_TIMEOUT | 5 ←LLM请求超时(秒)→

如何获得Credentials

本地冲突(On-Premise): 使用您的登录名和密码。

Atlassian云:

  1. Перейдите https://id.atlassian.com/manage-profile/security/api-tokens
  2. 创建API Token
  3. 作为 CONFLUENCE_USERNAME 指定电子邮件为 CONFLUENCE_API_TOKEN 由Token创建

工具(tools)

search_content

按关键字搜索页面默认情况下(multi_pass=true服务器 :

  • 提取 pageId 从查询中的Confluence链接
  • 生成多个搜索选项(完整短语,C令牌) _(长话)
  • 执行每个选项的CQL查询,并在不重复的情况下合并结果

参数:

≫参数≫类型≫默认。描述 |---|---|---|---| | query |字符串| _(强制性)_ 搜索请求 | space_key |字符串| null (空间键或多个逗号分隔)DEV, HR) | | space_keys |string\[\]| null –空间密钥列表(最好是多个)→ | content_type |字符串| "page" 类型: page, blogpost, comment, attachment, space, all | | limit |int| 10 马克斯结果(至100) | multi_pass bool的。 true –多种选项的高级搜索。 | score_merge bool的。 false score(见下文) | score_merge_max_variants |int| 0 ≫选项限制(0=从配置) SCORE_MERGE_MAX_VARIANTS) | | llm_rewrite bool的。 false –搜索前通过LLM重新定义请求→

search_content(query="оформить звонок директорат", score_merge=true)

search_by_cql

搜索任意CQL字符串。

≫参数≫类型≫默认。描述 |---|---|---|---| | cql |字符串| _(强制性)_ CQL查询 | limit |int| 10 马克斯结果→ | expand |string\[\]| ["space","version"] 更多的领域。

get_page_content

完整的ID页面内容返回HTML(body.view)空间,版本,父母链(ancestors)和子页面(children.page).

get_page_children

指定pageu id的子页面列表(id、title、version)。

list_spaces

列出所有Confluence空间。

confluence_health

验证Confluence和凭据的可用性。返回用户名和git构建哈希。

智能搜索

问题

查询“如何向董事会打电话”找不到带有“接受”一词的文章,因为:

  • “设计”和“接受”在词汇上是不同的词,Confluence没有将它们联系起来
  • 在这两种情况下都存在通用的“呼叫董事会”选项,但早期的选项填充 limit 以前

解决方案是三个独立的改进,每个改进都解决了问题的一部分:

1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.score_merge=true)

想法: 运行查询的所有变体,收集所有匹配,按找到页面的变体数排序。

没有score_merge,服务器在键入时停止。 limit 结果-第一个选项被拒绝。使用scoreu merge,所有选项都执行到最后,找到5个选项的页面将获得比找到一个页面更高的评级。

选项权重:

选择的类型,权重,例子。 |---|---|---| 下一篇:3.0如何打电话给董事会 2.0-2.5“打电话” 一个字,一个字,一个字,一个字,一个字,一个字,一个字,一个字,一个字,一个字,一个字,一个字,一个字,一个字,一个字,一个字。

选项数量有限 SCORE_MERGE_MAX_VARIANTS (默认为12,范围4–24)。

search_content(query="оформить звонок директорат", score_merge=true)

改进2:无限制通行(自动)

想法: pymorphy3定义语音部分。从查询中只选择名词-你会得到一个没有动词和介词的“干净”变体。

"КАК ОФОРМИТЬ ЗВОНОК В ДИРЕКТОРАТ"  →  "ЗВОНОК ДИРЕКТОРАТ"
"ПОРЯДОК СОГЛАСОВАНИЯ ДОКУМЕНТОВ"    →  "ПОРЯДОК СОГЛАСОВАНИЕ ДОКУМЕНТ"

名词-搜索查询中信息量最大的词。通过删除动词和介词,变体更准确地放在文章的标题和文本中。它总是工作的,不需要标志,不需要外部依赖。

3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1llm_rewrite=true)

想法: LLM接收原始请求,并使用同义词和重述生成3-5个替代措辞。

"КАК ОФОРМИТЬ ЗВОНОК В ДИРЕКТОРАТ"
  → "принять звонок директорат"
  → "перевести вызов в директорат"
  → "маршрутизация звонков директорат"

这是唯一理解同义词的机制(“形式”=“接受”=“翻译”)。需要配置变量 LLM_REWRITE_*.env如果出现错误(超时,LLM不可用),则会悄悄回滚到正常搜索。

search_content(query="оформить звонок директорат", llm_rewrite=true)

可以组合两个旗帜: score_merge=true, llm_rewrite=true.

方法比较

–方法→依赖→覆盖同义词→ |---|---|---| | 分数合并 不,40%是通过交叉选择。 | 只有名词 –pymorphy3(内置)–60%消除动词噪声。 | LLM重写 –外部LLM API–~90%理解同义词和重述–。

它是如何一起工作的

Запрос: "КАК ОФОРМИТЬ ЗВОНОК В ДИРЕКТОРАТ"
                    │
    ┌───────────────┼───────────────┐
    │               │               │
 Полная фраза   Noun-only       LLM варианты
 "КАК ОФОРМИТЬ  "ЗВОНОК        "принять звонок
  ЗВОНОК В       ДИРЕКТОРАТ"    директорат"
  ДИРЕКТОРАТ"                   "перевести вызов
    │               │            в директорат"
    │               │               │
    └───────────────┼───────────────┘
                    │
            Каждый вариант →
            CQL-запрос к Confluence
                    │
                    ▼
          Score-based ранжирование
          (страница, найдённая 3+
          вариантами, будет первой)
                    │
                    ▼
              Результаты

集成

克劳德桌面版

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "confluence": {
      "url": "http://localhost:8003/sse",
      "transport": "sse"
    }
  }
}

克劳德代码(CLI)

添加到 ~/.claude/mcp_config.json:

{
  "mcpServers": {
    "confluence": {
      "url": "http://localhost:8003/sse",
      "transport": "sse"
    }
  }
}

MCP超级助理代理

{
  "mcpServers": {
    "confluence": {
      "type": "streamable-http",
      "url": "http://localhost:8003/mcp",
      "timeout": 30
    }
  }
}

端点

Endpoint方法描述 |---|---|---| | /sse |GET|SSE端点(克劳德桌面,克劳德代码)| | /messages/ |POST|SSE JSON-RPC| | /mcp |GET/POST |流式HTTP(超级助理代理)| | /health ÐgetÐÐÐÐÐÐÐÐÐÐÐÐ

检查curl

# Статус
curl http://localhost:8003/health

# Инициализация MCP
curl -X POST http://localhost:8003/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

本地安装(无Docker)

pip install -r requirements.txt
cp .env.example .env          # заполнить credentials
python -m confluence_mcp.server

项目结构

src/confluence_mcp/
├── server.py            # MCP сервер (SSE + streamable-http), инструменты
├── confluence_client.py # REST-клиент Confluence (Basic Auth)
├── config.py            # Конфигурация из .env
├── cql_escape.py        # Экранирование CQL-строк
├── query_expand.py      # Генерация вариантов поискового запроса
├── scoring.py           # Score-based ранжирование результатов
├── noun_extract.py      # Выделение существительных (pymorphy3)
└── llm_rewrite.py       # LLM-переформулировка запросов

tests/
└── test_cql_escape.py   # python tests/test_cql_escape.py -v

要求

  • Python 3.10+
  • Docker(推荐)
  • Confluence(本地或Cloud)与Basic Auth

目录标签

目录标签

文档处理PythonClaude文档搜索本地部署Confluence集成LLM支持高级搜索算法Confluence搜索文档管理

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP