Confluence MCP Server

使用说明

项目简介

Confluence MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在使 AI Agent 能够无缝集成和操作 Atlassian Confluence 知识库。它提供了一系列工具,允许 AI Agent 通过标准化的 MCP 协议与 Confluence 内容进行交互,例如搜索页面、获取空间列表、以及创建、读取、更新和删除页面等操作。该服务器使用 Flask 框架开发,易于部署到云平台如 Cloud Run。

主要功能点

  • Confluence 内容搜索: 使用 Confluence Query Language (CQL) 搜索页面和空间。
  • Confluence 空间管理: 列出所有可用的 Confluence 空间。
  • Confluence 页面管理: 创建、读取、更新和删除 Confluence 页面。
  • 丰富的元数据支持: 为 Confluence 资源提供丰富的元数据。
  • 易于部署: 基于 Flask 开发,方便部署到 Cloud Run 等平台。
  • AI Agent 集成: 提供 MCP 工具,方便 AI Agent 集成 Confluence 功能。

安装步骤

  1. 克隆仓库

    git clone https://github.com/pawankumar94/confluence-mcp-server.git
    cd confluence-mcp-server
  2. 安装依赖 确保已安装 Python 和 pip,然后运行:

    pip install -r requirements.txt

服务器配置

Confluence MCP Server 需要以下配置信息才能连接到您的 Confluence 实例。您需要在项目根目录下创建 '.env' 文件,并填入以下变量:

CONFLUENCE_URL=https://your-instance.atlassian.net/wiki  # 您的 Confluence 实例 URL,例如:https://your-domain.atlassian.net/wiki
CONFLUENCE_ACCESS_TOKEN=your_access_token # 您的 Confluence API 访问令牌
PORT=8080  # (可选)服务器端口,默认为 8080

获取 Confluence API 访问令牌的步骤:

  1. 登录您的 Atlassian 账户。
  2. 进入 "Account Settings" -> "Security" -> "API tokens"。
  3. 点击 "Create API token",创建新的 API 令牌并复制它。

MCP 客户端配置 (JSON 格式):

以下 JSON 配置信息用于 MCP 客户端连接到 Confluence MCP Server。客户端需要配置 'serverName', 'command', 和 'args' 来启动和连接服务器。

{
  "serverName": "confluence-mcp-server",
  "command": "python",
  "args": ["app.py"]
}

参数说明:

  • 'serverName': 服务器名称,可以自定义,例如 "confluence-mcp-server"。
  • 'command': 启动服务器的命令,这里使用 'python' 解释器。
  • 'args': 命令参数,指定要运行的 Python 脚本为 'app.py'。

注意:

  • 确保 MCP 客户端能够访问到 'app.py' 文件,通常客户端需要在与 'app.py' 相同的目录下启动服务器,或者在 'args' 中提供正确的 'app.py' 文件路径。
  • 如果服务器部署在远程,'command' 和 'args' 需要根据远程服务器的实际情况进行配置,例如使用 'docker run' 命令启动 Docker 镜像。

基本使用方法

  1. 启动服务器 在项目根目录下,运行以下命令启动 Confluence MCP Server:

    python app.py

    服务器默认会在 'http://localhost:8080' 启动。

  2. 使用 MCP 客户端 配置 MCP 客户端连接到 'http://localhost:8080' (或您配置的端口和部署地址)。客户端可以通过 MCP 协议调用服务器提供的工具,例如:

    • 'confluence_search': 在 Confluence 中搜索内容。
    • 'confluence_get_spaces': 获取 Confluence 空间列表。
    • 'confluence_get_page': 获取 Confluence 页面内容。
    • 'confluence_create_page': 创建 Confluence 页面。
    • 'confluence_update_page': 更新 Confluence 页面。
    • 'confluence_delete_page': 删除 Confluence 页面。

    客户端在调用工具时,需要根据工具的 'inputSchema' 传递相应的参数,例如调用 'confluence_search' 工具时,需要提供 'confluence_url', 'access_token' 和 'query' 参数。 'confluence_url' 和 'access_token' 也可以通过 HTTP Header 'X-Confluence-URL' 和 'X-Confluence-Token' 传递。

    示例 (MCP 客户端调用 'confluence_search' 工具): 假设 MCP 客户端已经连接到服务器,以下是一个调用 'confluence_search' 工具的示例 (伪代码):

    # 假设 client 是 MCP 客户端实例
    search_query = "关键词"
    params = {
        "query": search_query,
        "confluence_url": "https://your-instance.atlassian.net/wiki", # 可以省略,如果通过 Header 传递
        "access_token": "your_access_token" # 可以省略,如果通过 Header 传递
    }
    response = client.call_tool("confluence_search", params, headers={"X-Confluence-URL": "https://your-instance.atlassian.net/wiki", "X-Confluence-Token": "your_access_token"})
    
    if response.is_success():
        search_results = response.get_content()
        print("搜索结果:", search_results)
    else:
        error_message = response.get_error()
        print("调用失败:", error_message)

    详细的工具参数和使用方法可以参考仓库中的 'server.py' 文件和 'list_tools' 工具的输出。

服务器信息