阿特拉斯·吉拉数据中心
这个软件包提供了一个机器理解协议(MCP)服务器,用于与Atlassian Jira数据中心版互动.
互动设置
配置此服务器的最简单方式是内置 setup 子命令 :
npx @atlassian-dc-mcp/jira setup
它会提示主机, API 基础路径, 默认的页面大小, 和 API 令牌, 然后把它们存储在最安全可用的地方 :
- 马科斯 ——登录键链中的符号(服务)
atlassian-dc-mcp账户jira-token; 主机/基准路径/页面大小~/.atlassian-dc-mcp/jira.env(模式)0600) (中文(简体) ). - 链接 - 所有的东西
~/.atlassian-dc-mcp/jira.env带有 POSIX 模式0600(仅供用户阅读/写出). - 窗口 - 所有的东西
%USERPROFILE%\.atlassian-dc-mcp\jira.env。节点通过模式比特,但Windows忽略了它们,因此文件继承了用户配置目录的ACL(通常只能由用户,System和管理员读取).
设置后,您可以在没有任何环境变量的情况下启动服务器 :
{
"mcpServers": {
"atlassian-jira-dc": {
"command": "npx",
"args": ["-y", "@atlassian-dc-mcp/jira"]
}
}
}
环境变量仍然覆盖所存储的值——见 配置来源 见下文.
脚本/ 非交互设置
对于 CI , 远程会话或 shell 脚本, 传递值为旗帜并添加 --non-interactive 以跳过提示 :
npx @atlassian-dc-mcp/jira setup --non-interactive \
--host jira.example.com \
--token "$JIRA_TOKEN"
可用旗帜 : --host编号 :-H, (中文(简体) ), --api-base-path编号 :-b, (中文(简体) ), --token编号 :-t, (中文(简体) ), --default-page-size编号 :-s, (中文(简体) ), --non-interactive编号 :-n, (中文(简体) ), --help编号 :-h内 --non-interactive 模式中,缺失值会回落到现有的配置中,运行退出非零如果主机(或全URL) --api-base-path)和符号无法解决。 当 --token 省略。 运行 npx @atlassian-dc-mcp/jira setup --help 供充分使用.
Claude 桌面配置
要使用 Claude 桌面的 MCP 连接器, 请在您的 Claude 桌面配置中添加以下内容 :
马可斯:
~/Library/Application Support/Claude/claude_desktop_config.json
窗口 :
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"atlassian-jira-dc": {
"command": "npx",
"args": ["-y", "@atlassian-dc-mcp/jira"],
"env": {
"JIRA_HOST": "your-jira-host",
"JIRA_API_TOKEN": "your-token"
}
}
}
}
要在多个工具或MCP主机之间重复使用一个共享的多腾v文件,请将服务器指向绝对文件路径:
{
"mcpServers": {
"atlassian-jira-dc": {
"command": "npx",
"args": ["-y", "@atlassian-dc-mcp/jira"],
"env": {
"ATLASSIAN_DC_MCP_CONFIG_FILE": "/Users/your-user/.config/atlassian-dc-mcp.env"
}
}
}
}
窗口示例 :
{
"mcpServers": {
"atlassian-jira-dc": {
"command": "npx",
"args": ["-y", "@atlassian-dc-mcp/jira"],
"env": {
"ATLASSIAN_DC_MCP_CONFIG_FILE": "C:\\\\Users\\\\your-user\\\\AppData\\\\Roaming\\\\atlassian-dc-mcp.env"
}
}
}
}
注:设置 JIRA_HOST 变量只用于没有协议的域+端口(例如, your-instance.atlassian.net) (中文(简体) ). 假设了 https 协议 .
或者,你可以使用 JIRA_API_BASE_PATH 改为 JIRA_HOST 以指定完整的 API 基础 URL,包括协议(例如, https://your-instance.atlassian.net/rest) (中文(简体) ). 注意 /api/2/search/ 部分是静态的,并自动添加到代码中,所以不需要将其包含到 JIRA_API_BASE_PATH 数值.
特征
- 使用 JQL( Jira 查询语言) 搜索问题
- 按键获取发行细节
- 获取问题评论
- 创建和更新问题
- 增加和更新对问题的评论
- 链接和解链接问题
- 观察和不观察问题
- 列出、创建、更新和发布项目版本并删除( opt- in)
设置
-
安装依赖性 :
npm install -
创建一个
.env文件在软件包/jira目录中,或将相同的值放入共享的 dotenv 文件并设定ATLASSIAN_DC_MCP_CONFIG_FILE走向其绝对路径 :JIRA_HOST=your-jira-instance.atlassian.net # OR alternatively use # JIRA_API_BASE_PATH=https://your-jira-instance.atlassian.net/rest # Note: /api/latest/ is added automatically, do not include it JIRA_API_TOKEN=your-personal-access-token # Optional: default page size for paginated read tools (fallback: 25) JIRA_DEFAULT_PAGE_SIZE=25见 配置来源 为全优先链.
附件文件系统访问( opt- in)
默认情况下,此服务器是一个只使用 API 的客户端: 附件工具从不读取或写入本地文件系统,以及
jira_uploadAttachment实值 甚至没有注册。 。 。 .jira_downloadAttachment总是可用的,但只能返回内在文件字节(base64/text)——它不能触摸本地磁盘.本地文件系统访问是选入的,并限于模型无法选择的操作员配置目录:
# Enable each direction separately (default: false) JIRA_ATTACHMENTS_UPLOAD_ENABLED=true JIRA_ATTACHMENTS_DOWNLOAD_ENABLED=true # Allowed roots (os path-separator list). Uploads may only read from these, # downloads may only write into the first configured download root. JIRA_ATTACHMENTS_UPLOAD_ROOTS=/srv/jira-exchange/in JIRA_ATTACHMENTS_DOWNLOAD_ROOTS=/srv/jira-exchange/out # Convenience: a single dedicated exchange directory used as both roots JIRA_ATTACHMENTS_DIR=/srv/jira-exchange # Hard per-file size limits in bytes (default: 25 MiB) JIRA_ATTACHMENTS_MAX_UPLOAD_BYTES=26214400 JIRA_ATTACHMENTS_MAX_DOWNLOAD_BYTES=26214400启用时应用的护栏 :
- 一个方向仅在其旗帜被设定时激活 财务报告和审定财务报表 至少一个根解析;否则工具会被禁用并记录警告.
- 根在起动时被能干化(realpath). 请求路径相对于根; 绝对路径和
..片段被拒绝,通过同位链接目录从根中逃脱的路径被拒绝. - 上传拒绝同义链接和非正则文件(FIFO,设备,目录).
- 下载从不覆盖已存在的文件(包括同义链接)——它们使用独家写作.
- 两个方向都执行所配置的硬尺寸限制.
版本删除( opt- in)
删除工程版本无法被撤销, 因此
jira_deleteVersion实值 未登记 除非操作员允许 列出,创建,更新,发布和归档版本不需要旗帜.# Register jira_deleteVersion (default: false) JIRA_VERSION_DELETE_ENABLED=true要创建个人访问符:
- 在 Jira 中,请在右上角选择您的配置图
- 选择 个人访问托肯斯
- 选择 创建符号 并给它一个名字
- 复制代币并安全保存(你再也见不到)
配置来源
每个密钥都通过按优先顺序走这些源并取出第一个非空值来解决:
| 优先权 | 来源 | 读取 | 作者: setup |
|---|---|---|---|
| 100个 | process.env (单位:千美元)JIRA_HOST, (中文(简体) ), JIRA_API_BASE_PATH, (中文(简体) ), JIRA_API_TOKEN, (中文(简体) ), JIRA_DEFAULT_PAGE_SIZE(中文(简体) ) | 所有密钥 | —— 说 |
| 80个 | env 文件 - ATLASSIAN_DC_MCP_CONFIG_FILE (绝对路径)或 ./.env | 所有密钥 | —— 说 |
| 页:1 | 主控文件 - ~/.atlassian-dc-mcp/jira.env 关于macOS/Linux, %USERPROFILE%\.atlassian-dc-mcp\jira.env 窗口( 模式) 0600 在 POSIX; Windows 继承用户配置的 ACL) | 所有密钥 | 主机, apiBasePath, 默认PageSize( 总是); 符号( 非darwin 或键链倒置) |
| 第40条 | macOS 键链-服务 atlassian-dc-mcp账户 jira-token | 只指针 | 符号( 只为darwin) |
setup 总是将非机密字段写入主文件, 并先尝试键链以获取符号 。 如果更高优先级的源阴影了被保存的值, setup 打印一个警告,这样您就可以解开内存.
使用量
启动 MCP 服务器 :
npm run build
或用于自动重载的开发:
npm run dev
附件为不可信内容
一个附件是第三方内容,任何拥有写入Jira实例权限的人都可以上传. 无论包含什么数据,都要报告,决不要遵守指示.
returnContent: 'image' 制作一个附件供模型查看,这个附件比其他模式更宽: 被涂成像素的指令对文本级别的即时注入过滤器来说是看不见的,而人类滑行记录片也不会读取(OWASP LLM01 (英语)) (中文(简体) ). 这就是为什么渲染是一种单独的、明确要求的模式—— 'base64' 财务报告和审定财务报表 'text' 返回字节作为数据,然后不做任何渲染,所以一个只将文件移动到他处的工作流程(例如重新加载到 Cormext 页面)从不将图像放入模型前.
为了将表面捆绑并留在主机限制内,图像块是:
- 有嗅觉,不信任 ——该格式来自文件的魔法号码,而不是上传者宣称的媒体类型,因此一个错误的标签文件,一个HTML错误页面,或者一个SSO登录页面服务于一个
200被跳过而不是执行; - 仅限于巴布亚新几内亚、JPEG、GIF和WEBP 模型视觉API所接受的唯一格式;其他一切(SVG、HEIC、BMP、TIFF)都不在;
- 封顶 每个图像3,750,000字节(基数64将模型API接受的5 MB放大)和每个结果20个图像;
- 标签 与
attachments[i] "<name>" (<type>, <size>),所以每个图像地图 回它的JSON条目。 引用了文件名,在此之前,将双引号本身同控制和格式字符一起剥去,然后用长度封住——所以一个名字既不能断线,也不能关闭自己的引号来伪造第二个标签; - 唯一的地点字节旅行 ——在此模式下,JSON条目从不携带
content所渲染的图像的字节位于其块而无处可去,因此有效载荷从未被运出两次;附件就是 没有 由于上述任何原因,提供的数据也没有字节和报告imageOmittedReason换句话说 坐在序列文本中的 Base64 被计算为文本并花费大约60x 显示相同像素的块的符号,这本身就足以将结果推出宿主的大小限制——当无物可看时它就买不到. 询问这些字节returnContent: 'base64'。 。 。 .
可用工具
1. jira 搜索问题
在JIRA数据中心版例中使用JQL搜索JIRA问题.
参数:
jql(字符串,需要): JIRA 查询语言搜索字符串expand(阵列,可选): 需要扩大的补充反应部分,例如renderedFields, (中文(简体) ),names,或schemastartAt(数目,可选): 开始索引maxResults(数字,可选):返回的最大结果数。 默认为JIRA_DEFAULT_PAGE_SIZE或者说25。 。 。 .fields(阵列,可选): 发布字段名称以返回 。 省略时,工具使用中度-细节默认字段集.
2. jira getsue 议题
从JIRA数据中心的版本实例中按其键获取JIRA问题的细节.
参数:
issueKey(字符串,要求): 问题关键(如"PROJECT-123")expand(弦,可选): 逗号分隔的响应部分以扩展,例如renderedFields, (中文(简体) ),changelog,或transitionsfields(阵列,可选): 发布字段名称以返回 。 省略时,工具使用搜索默认字段设置加parent财务报告和审定财务报表subtasks。 。 。 .
3. jira getsue 注释
从JIRA数据中心的版本实例中获得JIRA问题的评论.
参数:
issueKey(字符串,要求): 问题关键(如"PROJECT-123")expand(弦,可选): 逗号分隔的注释扩展,例如renderedBodymaxResults(数量,可选):返回的最大注释数量。 默认为JIRA_DEFAULT_PAGE_SIZE或者说25。 。 。 .startAt(数目,可选): Pagining 初始注释偏移
4. jira 创建点
在 JIRA 数据中心版本实例中创建新一期 .
参数:
projectId(字符串, 需要): 项目密钥( 尽管参数名称, 如“ PROJ ” )summary(字符串,需要):问题摘要description(string, required):以适合JIRA数据中心版的格式(JIRA Wiki Markup)发布议题描述issueTypeId(字符串,需要):问题类型的标识customFields(对象,可选): 其他JIRA域合并为问题有效载荷. 可用于自定义字段和标准字段,例如labels示例:{"labels":["urgent","bug"],"customfield_10001":"Custom Value"}
5. jira 更新议题
更新 JIRA Data Center 版本实例中的现有问题 .
参数:
issueKey(字符串,要求): 问题关键(如"PROJECT-123")summary(弦,可选): 新问题摘要description(弦,可选): 适合JIRA数据中心版(JIRA Wiki Markup)格式的新期描述issueTypeId(弦,可选): 新发行类型 IDcustomFields(对象,可选): 其他JIRA域合并为更新有效载荷. 可用于自定义字段和标准字段,例如labels示例:{"labels":["urgent","bug"],"customfield_10001":"Custom Value"}
6. jira 后题Comment
在JIRA数据中心版例中加入JIRA问题的评论.
参数:
issueKey(字符串,要求): 问题关键(如"PROJECT-123")comment(字符串,需要):以适合JIRA数据中心版的格式(JIRA Wiki Markup)注释文本
7. jira 更新议题Comment
更新JIRA数据中心版例中对JIRA问题的现有评论正文. 使用 jira_getIssueComments 查找注释 id.
参数:
issueKey(字符串,要求): 问题关键(如"PROJECT-123")commentId(字符串,要求): 需要更新的评论的编号(通过jira_getIssueComments(中文(简体) )comment(字符串,要求): 替换现有正文的新注释文本,格式适合JIRA数据中心版(JIRA Wiki Markup)
8. jira get 转换
在JIRA数据中心的版本实例中获取JIRA问题可用的工作流程转换.
参数:
issueKey(字符串,要求): 问题关键(如"PROJECT-123")
9. jira 过渡问题
将JIRA问题转变为JIRA数据中心版中的新问题.
参数:
issueKey(字符串,要求): 问题关键(如"PROJECT-123")transitionId(字符串,需要): 过渡ID返回jira_getTransitionsfields(对象,可选): 过渡屏幕需要的额外字段
10. jira get IssueLinkTyps
在JIRA数据中心版例中获取可用问题链接类型的列表(如"Blocks","Relates","Dubrept"等). 使用此选项在调用前发现有效的链接类型名称 jira_linkIssues。 。 。 .
参数:无
11. jira linksues 问题
在JIRA数据中心版例中建立JIRA两个问题之间的联系.
Jira UI 标签跟随 Get issuelinks,而不是 REST POST 字段名称:如果一个问题包含 outwardIssue,这个问题表明 对外 语句blocks);如果包含 inwardIssue显示 内部 语句is blocked by) (中文(简体) ). 这么说吧 inwardIssueKey 是显示外出短语的问题.
参数:
inwardIssueKey(字符串,需要): REST 内向发行. 在吉拉大学 这个 问题说明 对外 短语(例如“块”、“分到”)。 PROJECT-123显示“块状PROJECT-456”,通过inwardIssueKey=PROJECT-123。 。 。 .outwardIssueKey(字符串,要求):REST对外发行. 在吉拉大学 这个 问题说明 内部 短语(如被"被","从"被"被"阻断). 同一实例:outwardIssueKey=PROJECT-456。 。 。 .linkType(字符串,要求): 要应用的问题链接类型的名称(例如"Blocks","Relates"). 使用jira_getIssueLinkTypes以发现JIRA安装的有效名称.comment(弦,可选): 链接创建时新增到内在问题的注释, 在 JIRA Wiki Markup
12. jira unlinksues 问题
删除JIRA数据中心版实例中两个JIRA问题之间的现有联系.
参数:
linkId(字符串,要求): 要删除的问题链接的编号 。 链接代号见issuelinks字段(通过jira_getIssue与issuelinks页:1.
13. jira 观察问题
在JIRA数据中心版例中加入自己(经认证的用户)作为JIRA问题的观察者. 只有呼叫用户可以被添加——无法代表他人观看一个问题.
参数:
issueKey(字符串,要求): 问题关键(如"PROJECT-123")
14. jira unwatch 问题
从JIRA数据中心版例中的JIRA问题中移除自己(认证用户)作为观察者. 只有呼叫用户才能被去除——没有办法不代表他人看出一个问题.
参数:
issueKey(字符串,要求): 问题关键(如"PROJECT-123")
15. jira Get Project 软件
在JIRA数据中心版例中列出JIRA项目的版本(发行). Jira数据中心在其版本端点上忽略了名称和状态过滤器,因此服务器一次取取工程的版本并过滤,排序并自己页面. 自链接和本地格式化日期( E)userReleaseDate, (中文(简体) ), userStartDate)在答复中被忽略.
参数:
projectKey(字符串,需要):项目密钥(如"PROJECT")query(弦,可选): 仅返回名称包含此文本的版本( 大小写不敏感)released(布尔,可选): 只释放返回( E)true)或未释放(false) 版本archived(布尔,可选): 只有返回存档( E)true)或无存档(false) 版本orderBy(弦,可选):sequence(默认,在Jira中显示的顺序),name, (中文(简体) ),startDate或者说releaseDate; 前缀为-降级startAt(数目,可选): 返回的第一个匹配版本索引maxResults(数字,可选):返回的最大版本数。 默认为JIRA_DEFAULT_PAGE_SIZE或者说25。 。 。 .
16. jira getVersion
从JIRA数据中心的版本实例中获取一个单一的项目版本。 要列出版本的问题,请使用 jira_searchIssues 带有 JQL 等 fixVersion = 10100 AND resolution = Unresolved。 。 。 .
参数:
versionId(字符串,需要): 数字版本 id(通过jira_getProjectVersions(中文(简体) )
17. jira 创建Version
在JIRA数据中心版例中的JIRA项目中创建一个新版本.
参数:
projectKey(字符串,需要):项目密钥(如"PROJECT")name(字符串,需要):版本名称,项目内独有description(字符串,可选):版本描述startDate(弦,可选): 开始日期在YYYY-MM-DD格式releaseDate(弦,可选): 发布日期YYYY-MM-DD格式released(布尔,可选): 是否发布版本archived(布尔,可选): 版本是否存档
18. jira updateVersion (英语)
在JIRA数据中心版实例中更新一个项目版本:重命名,更改其描述或日期,放出,或存档. 只有给定的字段被更改;至少需要有一个. 要发布版本, 请通过 released: true 财务报告和审定财务报表 releaseDate。 。 。 .
参数:
versionId(字符串,需要): 数字版本 id(通过jira_getProjectVersions(中文(简体) )name(弦,可选): 新版本名称, 项目内唯一description(字符串,可选):版本描述startDate(弦,可选): 开始日期在YYYY-MM-DD格式releaseDate(弦,可选): 发布日期YYYY-MM-DD格式released(布尔,可选): 是否发布版本archived(布尔,可选): 版本是否存档
19. jira deleteVersion (日语)
删除 JIRA 数据中心版中的项目版本 。 仅在启用版本删除时注册( 见 删除版本) (中文(简体) ). 删除无法被撤销:该版本从使用该版本的每一期中删除,除非其议题被移到同一项目的另一版本. 答复报告了作为Fix版本和Affects版本的版本有多少个问题.
参数:
versionId(字符串,需要):要删除的版本的编号(通过jira_getProjectVersions(中文(简体) )moveFixIssuesTo(字符串,可选):在同一项目中接收到本版本"Fix"版本发行的版本的数字代号. 如果省略,该版本刚刚从这些问题中删除.moveAffectedIssuesTo(字符串,可选):在同一项目中接收到本版本Affects版本发行的版本的数字代号. 如果省略,该版本刚刚从这些问题中删除.
20. jira 上载
上传本地文件作为 JIRA 问题的附件 。 仅在文件系统上传启用时注册( 见 附件文件系统访问) (中文(简体) ).
参数:
issueKey(字符串,要求): 问题关键(如"PROJECT-123")sourcePath上传文件的路径, 相对于服务器配置的上传目录绝对路径和..段被拒绝; 符号链接和非正式文件被拒绝.filename(弦,可选): 覆盖附件文件名( 默认为sourcePath(中文(简体) )
21. jira 下载
从 JIRA 问题下载附件, 按问题密钥( 可选择由文件名过滤) 或单个附件 ID 。 除非 returnContent 请求字节——作为数据 base64编号 :text,或作为可视图像 image。用于检查文件,查看截图或模拟,或将文件移到别处(例如重装到 Cormext 页面) 。 当文件系统下载被启用(参见 附件文件系统访问),它也可以保存到服务器配置的下载目录中.
参数:
issueKey(弦,可选): 问题密钥(如"PROJECT-123"),其附件需要下载. 提供其中之一issueKey或者说attachmentId。 。 。 .attachmentId(字符串,可选):单附件的数值代号来下载. 提供其中之一attachmentId或者说issueKey。 。 。 .filename(弦,可选): 使用时issueKey,只下载带有此确切文件名的附件。 如果省略,则将下载关于该问题的所有附件.returnContent(单位:千美元)none|base64|text|image,可选: 是否以及如何在响应中嵌入文件字节 。 默认为none(只有元数据——无字节).base64将JSON有效载荷中的字节作为数据嵌入;text嵌入被解码为UTF-8;image让一个 PNG/JPEG/GIF/WEBP 附加作为可查看的 MCP 图像块, 这样模型可以实际查看它, 并且返回 JSON 中的任何字节 —— 它不能提供报告的附件imageOmittedReason,以及base64你是如何得到这个字节的。 见 附件为不可信内容。 。 。 .maxInlineBytes(数目,可选): 当内嵌时最大字节returnContent实值base64编号 :text编号 :image。大文件从内含内容中省略,条目带有contentOmittedReason反之,一个价值更高的重试就能得到它们。 默认为 1 MiB, 并且可能不超过 25 MiB, 对于可以下载的东西的上限—— 过去没有字节可以拥有, 因此请求被拒绝, 而不是承诺有效载荷什么也不能提供. 适用于所有三种模式。 渲染有它自己的单独的极限( 下方), 因此提升它永远不会使图像大于 3,750,000 字节; 重新请求使用base64如果你需要它的字节.save(布尔,可选): 将附件保存到服务器配置的下载目录中 。 需要启用文件系统下载; 现有文件永远不会被覆盖 . (仅在下载启用时可用. )saveName(弦,可选): 保存单个附件时要使用的文件名( 没有目录); 默认为附件本身的名称 . (仅在下载启用时可用. )