mcpField
A
A2atlassian

A2atlassian

本地服务
iorlas.com生产力027 周前更新

关于 A2atlassian

A2atlassian 是面向 AI Agent 的 Jira 与 Confluence MCP 服务,也提供命令行工具。连接默认只读,并支持按项目限定访问及紧凑列表输出。

主要功能

  1. 01访问 Jira 问题与项目数据
  2. 02搜索及管理 Confluence 页面
  3. 03连接默认只读,可单独启用写入
  4. 04按连接限定可见项目
  5. 05列表以紧凑 TSV 格式返回

适用场景

  1. 01查询 Jira 问题、冲刺和工时
  2. 02更新问题状态或添加评论
  3. 03搜索 Confluence 页面并读取内容
  4. 04限制 Agent 仅访问指定项目

MCP 相关

作为 MCP 服务向客户端提供 Jira 与 Confluence 的读取和写入工具;写入需在连接中启用。可配置多个连接并限定服务实例可见的连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"a2atlassian": {
"command": "uvx",
"args": [
"a2atlassian"
]
}
}
}
启动命令uvx a2atlassian

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypia2atlassian0.2.0

工具

37

收录的工具列表 · 更新于 3 周前

参数类型必填说明
urlstring是
emailstring是
tokenstring是
projectstring是
read_onlyboolean否

详细介绍

🏢 a2atlassian

Agent-to-Atlassian

让 AI Agent 使用 Jira 和 Confluence。凭据只需保存一次,即可随时随地使用。

Jira + Confluence · 默认只读 · 预配置连接 · 紧凑的 TSV 输出

PyPI Python 许可证 CI MCP 注册表

快速开始 · MCP 工具 · 安全性 · 对比 · 配置


Agent: "What's the status of PROJ-42? Add a comment with the progress update."
  ↓
a2atlassian → get issue, add comment, transition to In Progress
  ↓
Agent: "Done — PROJ-42 updated and moved to In Progress."

为什么选择 a2atlassian?

现有的 Atlassian MCP 服务(Rovo、sooperset)需要 Docker、.env 文件和 mcp-remote 桥接程序。它们会向 Agent 上下文中塞入 72 个工具,而且存在一些已知问题,可能导致操作悄无声息地失败。a2atlassian 解决了所有这些问题:

  • 无需 Docker — 运行 pip install a2atlassian 即可完成
  • 预配置连接 — 使用 --register 在 .mcp.json 中定义项目,Agent 即可立即使用
  • 默认只读 — 每个连接可单独选择是否启用写入权限
  • 连接范围控制 — --scope 限制 Agent 可见的项目
  • 紧凑输出 — 列表采用 TSV 格式(减少 30-60% 的令牌),单个实体采用 JSON 格式
  • 动态加载工具 — 支持延迟加载工具的 MCP 客户端(例如 Claude Code)会按需加载工具,让上下文保持精简
  • 增强错误信息 — 错误的字段名会获得建议,JQL 拼写错误会得到更正,已知问题会自动修复
  • 密钥保留在环境中 — 配置中使用 ${ATLASSIAN_TOKEN},仅在运行时展开

**当前支持范围:**完整支持 Jira(问题、评论、迭代、看板、工时记录、链接、版本、字段、关注者、项目);Confluence 核心功能(页面 CRUD、搜索、仅修改元数据的写入操作)。

快速开始

# Recommended — installs globally as a CLI tool
uv tool install a2atlassian

# Or with pip
pip install a2atlassian
作为 MCP 服务使用(推荐)

Claude Code(使用预配置连接):

claude mcp add -s user a2atlassian -- uvx --from a2atlassian a2atlassian-mcp \
  --register myproject https://mysite.atlassian.net [email protected] '${ATLASSIAN_TOKEN}'

Claude Code(最简配置 — 由 Agent 按需调用 login):

claude mcp add -s user a2atlassian -- uvx --from a2atlassian a2atlassian-mcp

Claude Desktop / Cursor / 任意 MCP 客户端(.mcp.json):

{
  "mcpServers": {
    "a2atlassian": {
      "command": "uvx",
      "args": [
        "--from", "a2atlassian", "a2atlassian-mcp",
        "--register", "myproject", "https://mysite.atlassian.net",
        "[email protected]", "${ATLASSIAN_TOKEN}"
      ],
      "env": {
        "ATLASSIAN_TOKEN": "your-api-token-here"
      }
    }
  }
}

多个项目:

{
  "args": [
    "--from", "a2atlassian", "a2atlassian-mcp",
    "--register", "myproject", "https://mysite.atlassian.net", "[email protected]", "${TOKEN_A}",
    "--register", "personal", "https://personal.atlassian.net", "[email protected]", "${TOKEN_B}"
  ]
}

限定范围的连接(限制 Agent 可访问的已保存项目):

{
  "args": ["--from", "a2atlassian", "a2atlassian-mcp", "--scope", "myproject"]
}

--register 会创建临时内存连接(仅在进程运行期间有效,不会写入文件)。--scope 会筛选可见的已保存连接。两者都能限制影响范围。

作为 CLI 使用
# Save a connection (validates by calling /myself)
a2atlassian login -c myproject \
  --url https://mysite.atlassian.net \
  --email [email protected] \
  --token "$ATLASSIAN_TOKEN"

# Same, pulling the token from 1Password via `op`
a2atlassian login -c myproject \
  --url https://mysite.atlassian.net \
  --email [email protected] \
  --token "op://Personal/Atlassian/token"

# Enable writes
a2atlassian login -c myproject \
  --url https://mysite.atlassian.net \
  --email [email protected] \
  --token "$ATLASSIAN_TOKEN" \
  --no-read-only

# List / remove connections
a2atlassian connections
a2atlassian logout -c myproject

令牌支持三种形式:字面值、${ENV_VAR} 引用,或 op://vault/item/field(运行时通过 1Password CLI 解析)。

MCP 工具

连接管理
工具描述
login保存连接 — 首先调用 /myself 进行验证
logout移除已保存的连接
list_connections列出连接(不会公开密钥)
Jira — 读取
工具描述
jira_get_issue按键获取问题 — 包含完整字段、状态和经办人
jira_search使用 JQL 搜索并分页 — 默认输出精简 TSV
jira_search_count仅统计 JQL 结果数量 — 快速预检查“结果会不会太多?”
jira_search_fields按名称查找自定义字段 ID
jira_get_field_options列出单选/多选字段的可选值
jira_get_comments获取问题的所有评论
jira_get_worklogs获取问题的所有工时记录
jira_get_transitions查找可用的状态转换
jira_get_link_types列出可用的问题链接类型
jira_get_watchers列出问题的关注者
jira_get_projects列出此连接可访问的项目
jira_get_project_metadata获取创建元数据(问题类型、必填字段)
jira_get_user_profile将电子邮件/accountId 解析为完整用户资料
jira_get_boards列出项目中的敏捷看板
jira_get_board_issues看板上的问题(分页)
jira_get_sprints列出看板上的冲刺
jira_get_sprint_issues冲刺中的问题(分页)
Jira — 写入(需要读写连接)
工具描述
jira_create_issue创建新问题
jira_update_issue更新现有问题的字段
jira_delete_issue删除问题
jira_transition_issue将问题移至新状态
jira_add_comment添加评论(wiki 标记,API v2)
jira_edit_comment更新现有评论
jira_add_worklog记录问题工时
jira_create_issue_link链接两个问题
jira_remove_issue_link移除问题链接
jira_set_watchers替换问题的关注者列表
jira_create_sprint在看板上创建冲刺
jira_update_sprint更新冲刺状态/日期
jira_add_issues_to_sprint将问题移入冲刺
jira_create_version创建项目版本
Confluence — 读取
工具描述
confluence_get_page按 ID 获取页面(正文存储、版本、空间)
confluence_get_page_children列出页面的直接子页面(分页)
confluence_searchCQL 搜索;每条匹配结果仅含最少字段
Confluence — 写入(需要读写连接)
工具描述
confluence_upsert_pages批量创建或更新;省略正文时保留原内容,并返回每页状态及部分失败结果
confluence_set_page_properties仅写入元数据(page_width、emoji、labels)— 无法修改正文或标题
输出格式

所有工具都接受 format 参数:

格式默认用于描述
toon列表(搜索、评论)带标题行的 TSV — 结构只需定义一次,数据可重复排列。比 JSON 少用 30-60% 的 token
json单个实体(get_issue)带元数据封装的标准 JSON

列表响应使用精简的 TSV 风格格式(标题行 + 制表符分隔的值),灵感来自 TOON。a2db 采用了相同的方法 — 列名只出现一次,后续仅包含值。对于包含 50 个问题的搜索结果,与 JSON 相比,通常可节省 40-60% 的 token。

TSV 示例(搜索结果):

# search (23 results, 50ms, truncated: False)
key	summary	assignee	status
PROJ-142	Fix auth timeout	Alice Smith	In Progress
PROJ-141	Add search filters	Bob Jones	To Do

JSON 示例(单个问题):

{
  "data": {"key": "PROJ-142", "fields": {"summary": "Fix auth timeout", ...}},
  "count": 1,
  "truncated": false,
  "time_ms": 85
}
错误增强

发生错误时,a2atlassian 会告诉 Agent 应该怎么做:

Field 'asignee' does not exist
Did you mean: assignee?
Connection 'myproject' is read-only.
Run: a2atlassian login -p myproject --read-only false

自动处理的特殊情况:

  • 经办人必须使用显示名称(不能使用 712020: 账户 ID)— 自动检测并提供提示
  • Parent 字段必须是纯字符串 — {"key": "PROJ-14"} 会被静默规范化为 "PROJ-14"
  • API 不支持转换问题类型 — 会提供清晰的 Jira UI 操作说明

安全

默认只读

每个连接都以只读模式启动。写入工具会在执行前检查连接标志:

Connection 'myproject' is read-only.
Re-run 'a2atlassian login -p myproject --read-only false' to enable writes.

写入权限由人工操作员控制,而非 Agent。

凭据存储

通过 login 保存的连接会以 TOML 文件形式存放在 ~/.config/a2atlassian/connections/ 中:

  • 文件权限: 0600(仅所有者可读写)
  • ${ATLASSIAN_TOKEN} 语法 — 环境变量引用会按原样存储,并在运行时展开
  • 输出中不含机密信息 — list_connections 会显示项目名称、URL 和模式,绝不显示令牌
  • 临时模式 — --register 仅将凭据保留在内存中,绝不写入磁盘
连接范围

使用 --scope 限制特定 MCP 实例可访问的已保存连接:

# Project config — only myproject visible, even if other connections are saved
uvx --from a2atlassian a2atlassian-mcp --scope myproject

项目级 MCP 配置(.claude/mcp.json)会覆盖全局配置,每个代码库只能看到自己的连接。

速率限制

内置指数退避重试机制,用于应对 Atlassian 的速率限制(429)和瞬时服务端错误(500)。出错前会按 1 秒和 3 秒的间隔重试两次。

对比

功能a2atlassianRovo(官方)sooperset/mcp-atlassian
设置pip installOAuth + DockerDocker + .env + mcp-remote
上下文中的工具约 35 个(按需加载)约 72 个约 72 个
连接管理TOML + --register + --scope按会话使用 OAuth.env 文件
多项目支持(按范围限制)不支持每个设置使用一个 .env
默认只读支持(按连接设置)不支持不支持
输出格式TSV + JSONJSONJSON
错误信息增强字段建议、特殊情况修复通用错误通用错误
特殊情况处理自动修复(受指派人、父项)文档说明的变通方法文档说明的变通方法
速率限制内置重试不支持不支持
命令行支持不支持不支持
许可证Apache 2.0专有MIT

路线图

已交付: 完整覆盖 Jira(v0.3.0)· Confluence 核心功能 + 支持完整 CommonMark 和 GFM 保真度的 markdown-to-storage(v0.4.0、v0.5.2)· 1Password op:// 令牌引用(v0.5.1)· 仅元数据的 Confluence 写入 + 省略正文时保留原正文的语义(v0.5.2)。

下一步: confluence_delete_page、Confluence 评论和附件、Confluence 集成测试路径。待办事项见 TODO.md。

按环境设置

本地(macOS / Linux)
# Recommended
uv tool install a2atlassian

# Or with pip
pip install a2atlassian

# CLI
a2atlassian login -p myproject --url https://mysite.atlassian.net --email [email protected] --token "$TOKEN"

# Or add as MCP server (see Quick Start)
CI / 自动化
uv tool install a2atlassian

# Pre-configured — no login needed
uvx --from a2atlassian a2atlassian-mcp --register ci https://mysite.atlassian.net [email protected] "${CI_ATLASSIAN_TOKEN}"

开发

make bootstrap   # Install deps + pnpm + git hooks
make check       # Lint + test + coverage-diff + security (full gate)
make test        # Tests with coverage
make lint        # agent-harness + jscpd + actionlint (never modifies files)
make fix         # Auto-fix + lint
make similar     # Advisory: report similarly-named functions/classes

代码检查工具:ruff + ty(通过 agent-harness)、yamllint、jscpd(通过 pnpm 检测复制粘贴)、actionlint(GitHub Actions 工作流)。每次提交时,Pre-commit 钩子都会运行 agent-harness fix 和代码检查。通过 brew install pnpm actionlint 安装 pnpm 和 actionlint。

许可证

Apache 2.0


🏢 自 2025 年起,为 Agent 提供优先的 Atlassian 访问能力。

由 Denis Tomilin 构建

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。