返回市场
汇聚-MCP-服务器

汇聚-MCP-服务器

作者:alirezarezvani3 星标更新:2025-06-03

项目介绍

Confluence MCP Server

一个集成Confluence与Claude Desktop和其他AI助手的模型上下文协议(MCP)服务器,使您能够通过自然语言与Confluence文档进行交互。

🚀 特性

  • 搜索页面:使用自然语言或CQL查询查找文档
  • 内容检索:获取保留格式的完整页面内容
  • 空间探索:列出并导航您的Confluence空间
  • 页面层次结构:探索页面之间的父子关系
  • 基于标题的搜索:通过精确匹配标题查找页面
  • 实时集成:直接与Claude Desktop集成,实现无缝AI辅助

📋 先决条件

  • Node.js (v18.0.0或更高版本)
  • npm (v8.0.0或更高版本)
  • Confluence Cloud 账户及API访问权限
  • Claude Desktop (用于AI集成)

🔧 安装

方案1:全局安装(推荐)

# 克隆仓库
git clone https://github.com/alirezarezvani/confluence-mcp-server.git
cd confluence-mcp-server

# 安装依赖
npm install

# 构建项目
npm run build

# 全局安装以方便访问
npm run install-global

方案2:本地安装

# 克隆仓库
git clone https://github.com/alirezarezvani/confluence-mcp-server.git
cd confluence-mcp-server

# 安装依赖并构建
npm install
npm run build

⚙️ 配置

1. 获取Confluence API凭证

  1. API令牌

  2. 空间键

    • 导航到您的Confluence空间
    • 检查URL:https://your-org.atlassian.net/wiki/spaces/SPACEKEY/
    • SPACEKEY即所需的内容
  3. 基础URL

    • 通常是https://your-org.atlassian.net(不带/wiki

2. 环境设置

在项目根目录创建一个.env文件:

CONFLUENCE_BASE_URL=https://your-org.atlassian.net
CONFLUENCE_EMAIL=your-email@company.com
CONFLUENCE_API_TOKEN=your-api-token-here
CONFLUENCE_SPACE_KEY=YOUR_SPACE_KEY

3. 验证配置

# 测试环境变量
npm run validate-env

# 测试服务器连接
npm start

🤖 Claude Desktop集成

配置文件位置

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

配置选项

方案1:全局安装

{
  "mcpServers": {
    "confluence": {
      "command": "confluence-mcp",
      "env": {
        "CONFLUENCE_BASE_URL": "https://your-org.atlassian.net",
       - "CONFLUENCE_EMAIL": "your-email@company.com",
        "CONFLUENCE_API_TOKEN": "your-api-token",
        "CONFLUENCE_SPACE_KEY": "YOUR_SPACE_KEY"
      }
    }
  }
}

方案2:本地安装

{
  "mcpServers": {
    "confluence": {
      "command": "node",
      "args": ["/full/path/to/confluence-mcp-server/dist/confluence-mcp-server.js"],
      "env": {
        "CONFLUENCE_BASE_URL": "https://your-org.atlassian.net",
        "CONFLUENCE_EMAIL": "your-email@company.com",
        "CONFLUENCE_API_TOKEN": "your-api-token",
        "CONFLUENCE_SPACE_KEY": "YOUR_SPACE_KEY"
      }
    }
  }
}

激活

  1. 保存配置文件
  2. 完全重启Claude Desktop(Cmd+Q然后重新打开)
  3. 在Claude Desktop界面中查找MCP工具

🛠️ 可用工具

1. search_confluence_pages

使用文本查询或CQL搜索页面。

使用示例

  • "在Confluence中搜索'API文档'"
  • "查找关于React开发的页面"
  • "寻找故障排除指南"

2. get_page_content

检索特定页面的完整内容。

使用示例

  • "获取页面ID 12345的内容"
  • "显示'Setup Guide'页面的内容"

3. list_space_pages

列出您Confluence空间中的所有页面。

使用示例

  • "列出我们Confluence空间中的所有页面"
  • "显示最近25个页面"

4. get_page_hierarchy

探索页面之间的父子关系。

使用示例

  • "显示'Documentation'下的所有子页面"
  • "架构部分的子页面是什么?"

5. get_page_by_title

通过精确匹配标题查找页面。

使用示例

  • "找到标题为'Development Workflow'的页面"
  • "获取'Onboarding Checklist'页面"

💬 使用示例

团队协作

"帮我找到我们的部署过程文档"
"关于我们API端点的最新信息是什么?"
"显示与移动应用项目相关的所有页面"
"给我我们编码标准页面的内容"

项目管理

"查找与新功能相关的所有文档"
"我们的架构文档对微服务说了什么?"
"显示生产问题的故障排除指南"
"列出上个月更新的所有页面"

开发流程

"搜索Docker配置示例"
"查找我们的Git工作流文档"
"我们的测试指南页面里有什么?"
"显示API集成示例"

🔧 开发

脚本

# 开发时自动重载
npm run dev

# 将TypeScript编译成JavaScript
npm run build

# 运行已构建的服务器
npm start

# 监控更改并自动重启
npm run watch

# 清理构建目录
npm run clean

# 验证环境变量
npm run validate-env

# 运行测试
npm test

# 运行特定测试文件
npm test -- tests/path/to/test.ts

项目结构

confluence-mcp-server/
├── src/
│   ├── confluence-mcp-server.ts  # 主服务器实现
│   ├── cache/                    # 缓存实现
│   │   ├── CacheManager.ts       # 通用缓存管理
│   │   └── ConfluenceCache.ts    # Confluence特定缓存
│   └── monitoring/               # 性能监控
│       └── PerformanceMonitor.ts # 性能跟踪和指标
├── tests/
│   ├── confluence-mcp-server.test.ts  # 主服务器测试
│   ├── integration/              # 集成测试
│   │   └── mcp-tools.test.ts     # MCP工具集成测试
│   ├── cache/                    # 缓存测试
│   │   └── CacheManager.test.ts  # 缓存管理器测试
│   ├── monitoring/               # 监控测试
│   │   └── PerformanceMonitor.test.ts # 性能监视器测试
│   └── utils/                    # 测试工具
│       └── test-utils.ts         # 模拟实现和辅助工具
├── dist/                         # 编译后的JavaScript(构建后)
├── package.json                  # 项目依赖和脚本
├── tsconfig.json                 # TypeScript配置
├── jest.config.js                # Jest测试配置
├── .env                          # 环境变量(创建此文件)
├── .env.test                     # 测试环境变量
├── .gitignore                    # Git忽略规则
└── README.md                     # 此文件

🧪 测试

该项目包含使用Jest的全面测试套件。测试涵盖了MCP服务器功能的单元测试和集成测试。

运行测试

# 运行所有测试
npm test

# 运行特定测试文件
npm test -- tests/cache/CacheManager.test.ts

# 运行带有覆盖率报告的测试
npm test -- --coverage

测试结构

  • 单元测试:单独测试各个组件
  • 集成测试:测试MCP工具及其与Confluence API的交互
  • 模拟测试:使用模拟实现来模拟Confluence API响应

测试环境

测试使用独立的.env.test文件来存储环境变量。运行测试时会自动设置测试环境。

最近改进

  • 解决了测试导入路径的问题
  • 改进了CacheManager实现,更好地处理边缘情况
  • 增强了PerformanceMonitor,提供了更准确的指标
  • 添加了适当的测试数据准备,确保一致的测试结果
  • 更新了Jest配置以支持ES模块

🚨 故障排除

常见问题

"权限被拒绝"错误

chmod +x dist/confluence-mcp-server.js

"缺少环境变量"

npm run validate-env

"无法连接到Confluence"

  1. 验证您的API令牌具有正确的权限
  2. 检查您的基础URL格式(没有尾随斜杠)
  3. 确保您的电子邮件和空间键正确

"Claude Desktop未识别MCP服务器"

  1. 检查配置文件路径
  2. 验证配置文件中的JSON语法
  3. 完全重启Claude Desktop
  4. 检查Claude Desktop日志中的错误

调试模式

# 使用详细日志运行
LOG_LEVEL=debug npm start

🔒 安全注意事项

  • API令牌:切勿将API令牌提交到版本控制
  • 环境变量:使用.env文件并保持其安全
  • 权限:确保您的API令牌具有最小必要的权限
  • 网络:考虑使用VPN来保护敏感的企业文档

🤝 贡献

我们欢迎贡献!请参阅我们的贡献指南了解详情。

  1. 分叉仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m '添加神奇功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可

本项目根据MIT许可发布 - 详情请参阅LICENSE文件。

🙏 致谢

📞 支持

🗺️ 2025年第二季度/第三季度路线图

  • 支持多个Confluence空间
  • 页面创建和编辑功能
  • 评论和附件处理
  • OAuth 2.0身份验证
  • 为了提高性能的缓存
  • Docker容器化
  • Confluence Server(内部部署)支持
  • 全面的测试套件

Alireza Rezvani制作 ❤️