Atlassian集成服务

为Atlassian Cloud产品(Confluence和Jira)提供模型上下文协议(MCP)服务器,支持内容搜索、页面管理、问题跟踪等功能。

  • by nanyang12138
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 nanyang12138/mcp-atlassian

使用说明

MCP Atlassian(可翻译为):Atlassian的MCP(或“Atlassian MCP认证”)

适用于Atlassian云产品(Confluence和Jira)的模型上下文协议(MCP)服务器。此集成专为Atlassian云实例设计,不支持Atlassian服务器或数据中心部署。

功能演示

资源

  • confluence://{space_key}访问Confluence空间和页面
  • confluence://{space_key}/pages/{title}访问特定的Confluence页面
  • jira://{project_key}访问Jira项目及其问题
  • jira://{project_key}/issues/{issue_key}访问特定的Jira问题

工具

Confluence 工具

  1. confluence_search

    • 使用CQL搜索Confluence内容
    • 输入:
      • query (字符串):CQL 查询字符串(例如 'type=page AND space=DEV')
      • limit (数字,可选):结果限制(1-50,默认:10)
    • 返回:包含页面ID、标题、空间、URL、最后修改时间、类型和摘要的搜索结果数组
  2. confluence_get_page

    • 通过ID获取特定Confluence页面的内容
    • 输入:
      • page_id (字符串):Confluence 页面 ID
      • include_metadata (布尔值,可选):是否包含页面元数据(默认:true)
    • 返回:页面内容和可选的元数据
  3. confluence_get_page_by_title

    • 通过空间键和标题获取Confluence页面的内容
    • 输入:
      • space_key (字符串):Confluence 空间密钥
      • title (字符串):页面标题
    • 返回:页面内容和元数据
  4. confluence_get_comments

    • 获取特定Confluence页面的评论
    • 输入:
      • page_id (字符串): Confluence 页面 ID
    • 返回:包含作者、创建日期和内容的评论数组
  5. confluence_list_spaces

    • 列出所有可用的Confluence空间
    • 输入:
      • limit (数字,可选):返回的最大空格数(1-100,默认:25)
    • 返回:包含键、名称和描述的空间数组
  6. confluence_get_space_pages

    • 从特定的Confluence空间获取所有页面
    • 输入:
      • space_key (字符串):Confluence 空间密钥
      • limit (数字,可选):要返回的最大页面数(1-100,默认:25)
    • 返回值:包含页面ID、标题、URL和版本的页面数组
  7. confluence_get_page_children

    • 获取特定Confluence页面的子页面
    • 输入:
      • page_id (字符串):父页面ID
      • limit (数字,可选):要返回的子节点最大数量(1-100,默认:25)
    • 返回:包含页面ID、标题、URL和父页面ID的子页面数组
  8. confluence_create_page

    • 创建一个新的Confluence页面
    • 输入:
      • space_key (字符串):将创建页面的空间键
      • title (字符串):页面标题
      • body (字符串):以Confluence存储格式表示的页面内容
      • parent_id (字符串,可选):父页面ID
    • 返回:创建的页面内容和元数据
  9. confluence_update_page

    • 更新现有的Confluence页面
    • 输入:
      • page_id (字符串):要更新的页面ID
      • title (字符串):新页面标题
      • body (字符串):以Confluence存储格式表示的新页面内容
      • version (数字):当前页面版本号
    • 返回:更新后的页面内容和元数据

Jira 工具

  1. jira_get_issue

    • 获取特定Jira问题的详细信息
    • 输入:
      • issue_key (字符串):Jira 问题密钥(例如,'PROJ-123')
      • expand (字符串,可选):要展开的字段
    • 返回:问题详情,包括内容和元数据
  2. jira_search

    • 使用JQL搜索Jira问题
    • 输入:
      • jql (字符串): JQL 查询字符串
      • fields (字符串,可选):逗号分隔的字段(默认:"*all")
      • limit (数字,可选):结果限制(1-50,默认:10)
    • 返回:包含元数据的匹配问题数组
  3. jira_get_project_issues

    • 获取特定Jira项目的所有问题
    • 输入:
      • project_key (字符串): 项目密钥
      • limit (数字,可选):结果限制(1-50,默认:10)
    • 返回:包含元数据的项目问题数组
  4. jira_get_projects

    • 获取所有可访问的Jira项目
    • 返回:认证用户可访问的所有项目的数组
  5. jira_get_issue_comments

    • 获取特定Jira问题的评论
    • 输入:
      • issue_key (字符串):Jira 问题密钥(例如,'PROJ-123')
    • 返回:包含作者、创建日期和内容的评论数组
  6. jira_get_transitions

    • 获取问题的可用状态转换
    • 输入:
      • issue_key (字符串):Jira 问题密钥(例如,'PROJ-123')
    • 返回:包含可用转换的数组,每个转换都有id和名称
  7. jira_get_board_issues

    • 从特定的敏捷看板获取问题
    • 输入:
      • board_id (数字):板卡ID
      • limit (数字,可选):最大结果数量(1-50,默认:50)
    • 返回:包含问题密钥、标题、类型、状态和链接的板块问题数组
  8. jira_create_issue

    • 创建一个新的Jira问题
    • 输入:
      • project_key (字符串):项目密钥
      • summary (字符串):问题摘要/标题
      • issue_type (字符串):问题类型(例如,'Bug'(缺陷)、'Task'(任务)、'Story'(故事))
      • description (字符串,可选):问题描述
      • priority (字符串,可选):优先级名称
      • assignee (字符串,可选):受让人账户ID
      • labels (数组,可选):标签字符串的数组
    • 返回:创建的问题内容和元数据
  9. jira_update_issue

    • 更新现有的Jira问题
    • 输入:
      • issue_key (字符串): 要更新的问题密钥
      • summary (字符串,可选):新的摘要
      • description (字符串,可选):新描述
      • priority (字符串,可选):新的优先级
      • assignee (字符串,可选):新的指定人账户ID
      • labels (数组,可选):新的标签
    • 返回:更新后的议题内容和元数据
  10. jira_add_comment

    • 在Jira问题中添加评论
    • 输入:
      • issue_key (字符串):问题密钥
      • comment (字符串):评论文本
    • 返回:添加了评论详情
  11. jira_transition_issue

    • 将Jira问题过渡到新状态
    • 输入:
      • issue_key (字符串):问题密钥
      • transition_id (字符串): 转换ID
    • 返回值:转换结果

安装

先决条件

  • Python 3.10 或更高版本
  • 紫外线 (建议使用)或 pip

使用紫外线(推荐)

  1. 克隆仓库:

    git clone https://github.com/nanyang12138/mcp-atlassian.git
    cd mcp-atlassian
    
  2. 使用uv进行安装:

    uv pip install -e .
    

使用 pip

  1. 克隆仓库:

    git clone https://github.com/nanyang12138/mcp-atlassian.git
    cd mcp-atlassian
    
  2. 创建虚拟环境:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -e .
    

配置

MCP Atlassian 集成支持使用 Confluence、Jira 或两者同时使用。您只需为想要使用的服务提供环境变量。

与Claude桌面版的使用

  1. 从以下网址获取API令牌:https://id.atlassian.com/manage-profile/security/api-tokens

  2. 添加到您的 claude_desktop_config.json 仅提供您所需的服务:

仅适用于Confluence:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-atlassian",
        "run",
        "mcp-atlassian"
      ],
      "env": {
        "CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
        "CONFLUENCE_USERNAME": "your.email@domain.com",
        "CONFLUENCE_API_TOKEN": "your_api_token"
      }
    }
  }
}

仅适用于Jira:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-atlassian",
        "run",
        "mcp-atlassian"
      ],
      "env": {
        "JIRA_URL": "https://your-domain.atlassian.net",
        "JIRA_USERNAME": "your.email@domain.com",
        "JIRA_API_TOKEN": "your_api_token"
      }
    }
  }
}

对于这两种服务:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-atlassian",
        "run",
        "mcp-atlassian"
      ],
      "env": {
        "CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
        "CONFLUENCE_USERNAME": "your.email@domain.com",
        "CONFLUENCE_API_TOKEN": "your_api_token",
        "JIRA_URL": "https://your-domain.atlassian.net",
        "JIRA_USERNAME": "your.email@domain.com",
        "JIRA_API_TOKEN": "your_api_token"
      }
    }
  }
}

备选方案:直接使用 Python(如果不使用 uv 的话):

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "python",
      "args": ["-m", "mcp_atlassian.server"],
      "env": {
        "CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
        "CONFLUENCE_USERNAME": "your.email@domain.com",
        "CONFLUENCE_API_TOKEN": "your_api_token",
        "JIRA_URL": "https://your-domain.atlassian.net",
        "JIRA_USERNAME": "your.email@domain.com",
        "JIRA_API_TOKEN": "your_api_token"
      }
    }
  }
}

与Cline一起使用

在Cline中添加到您的MCP设置中。有两种方法:

方法1:直接使用Python(推荐用于开发)

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "/path/to/mcp-atlassian/.venv/bin/python",
      "args": [
        "-m",
        "mcp_atlassian.server"
      ],
      "env": {
        "CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
        "CONFLUENCE_USERNAME": "your.email@domain.com",
        "CONFLUENCE_API_TOKEN": "your_api_token",
        "JIRA_URL": "https://your-domain.atlassian.net",
        "JIRA_USERNAME": "your.email@domain.com",
        "JIRA_API_TOKEN": "your_api_token"
      }
    }
  }
}

方法2:使用入口点(需要安装包)

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-atlassian",
        "run",
        "mcp-atlassian"
      ],
      "env": {
        "CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
        "CONFLUENCE_USERNAME": "your.email@domain.com",
        "CONFLUENCE_API_TOKEN": "your_api_token",
        "JIRA_URL": "https://your-domain.atlassian.net",
        "JIRA_USERNAME": "your.email@domain.com",
        "JIRA_API_TOKEN": "your_api_token"
      }
    }
  }
}

调试

您可以使用MCP检查器来调试服务器:

npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-atlassian run mcp-atlassian

或者如果直接使用Python:

npx @modelcontextprotocol/inspector python -m mcp_atlassian.server

使用以下命令查看日志:

  • macOS(发音为 /ˈmækɒs/): tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
  • Windows检查 %APPDATA%\Claude\logs\
  • Linux检查 ~/.config/Claude/logs/

发展

运行测试

uv run pytest

代码格式化

uv run ruff format .

类型检查

uv run mypy src/

安全

依赖项

  • atlassian-python-api>=3.41.16 Atlassian API客户端
  • beautifulsoup4>=4.12.3 - HTML解析
  • httpx>=0.28.0 - HTTP客户端
  • mcp>=1.0.0 - 模型上下文协议SDK
  • python-dotenv>=1.0.1 - 环境变量管理
  • markdownify>=0.11.6 - 将HTML转换为Markdown

许可证

根据MIT许可协议授权 - 详见 许可证 文件。这不是 Atlassian 的官方产品。

贡献

欢迎贡献!请随时提交拉取请求。


注:这是一个分支(或衍生版本)的 原始的MCP-Atlassian仓库.