@stubbedev/atlassian-mcp 0.5.14 → 0.5.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -1
- package/atlassian-mcp.schema.json +5 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -95,7 +95,11 @@ cannot get them wrong, and they need no prompting:
|
|
|
95
95
|
components and fix versions, and Bitbucket reviewers are checked first; a bad
|
|
96
96
|
one comes back with the valid options instead of an opaque 400.
|
|
97
97
|
- **Markdown is converted to Jira wiki markup** on every Jira write (comments,
|
|
98
|
-
descriptions, worklogs)
|
|
98
|
+
descriptions, environments, worklogs): fenced code blocks in any style
|
|
99
|
+
(```` ``` ````/```` ```` ````/`~~~`, any info string), inline code, headings,
|
|
100
|
+
bold/bold-italic, strikethrough, links, autolinks and images, blockquotes
|
|
101
|
+
(`bq.`/`{quote}`), tables, and bullet or ordered lists (`-`/`*`/`+` and
|
|
102
|
+
`1.`/`1)`). Text that is already wiki markup is left alone.
|
|
99
103
|
- **PR comment hygiene:** one reply per thread per author, no duplicate of a
|
|
100
104
|
comment you already posted, no new top-level comment on a PR you authored
|
|
101
105
|
(`asAuthor=true` to override), no tasks via `severity`, no emoji, and bare
|
|
@@ -113,6 +117,12 @@ cannot get them wrong, and they need no prompting:
|
|
|
113
117
|
so reading the wrong branch is visible rather than silent.
|
|
114
118
|
- **Tool annotations** (`readOnlyHint`, `destructiveHint`, `idempotentHint`) are
|
|
115
119
|
published for every tool, so hosts can gate confirmation on metadata.
|
|
120
|
+
- **AI-written text is attributed.** Every Jira ticket description, Jira comment
|
|
121
|
+
(including worklog comments) and Bitbucket PR description / PR comment posted
|
|
122
|
+
through this server ends with a bold `[AI]` line, added after markdown→wiki
|
|
123
|
+
conversion so it never lands inside a code block, and skipped rather than
|
|
124
|
+
mangled when the text ends inside an open code fence. Disable with
|
|
125
|
+
`"markAIText": false` in the config file or `ATLASSIAN_MCP_MARK_AI_TEXT=false`.
|
|
116
126
|
|
|
117
127
|
## Setup
|
|
118
128
|
|
|
@@ -555,6 +565,7 @@ pure-Go implementation shell out to external binaries:
|
|
|
555
565
|
| `ATLASSIAN_MCP_HTTP_TOKEN` | Bearer token for HTTP mode. Optional on loopback binds; **required** on non-loopback binds. | unset |
|
|
556
566
|
| `ATLASSIAN_MCP_REPO_ROOT` | Default workspace root(s) for the git/PR tools, comma-separated. `file://` URIs, absolute paths, `~/…` and Windows drive paths all work. Needed by clients that expose no MCP roots (desktop apps). Overridden by a `repoPath` argument or a root header. | unset |
|
|
557
567
|
| `ATLASSIAN_MCP_GIT_PATH` | Path to the `git` executable. Only needed when `git` is off the host app's `PATH`; the server already probes the usual install locations. | `git` on `PATH` |
|
|
568
|
+
| `ATLASSIAN_MCP_MARK_AI_TEXT` | Set `false` to stop appending the bold `[AI]` attribution line to Jira/Bitbucket text this server posts. | `true` |
|
|
558
569
|
| `ATLASSIAN_MCP_FFMPEG_PATH` | Path to `ffmpeg` binary. | npm: bundled `ffmpeg-static`; otherwise `ffmpeg` on `PATH` |
|
|
559
570
|
| `ATLASSIAN_MCP_FFPROBE_PATH` | Path to `ffprobe` binary. | npm: bundled `ffprobe-static`; otherwise `ffprobe` on `PATH` |
|
|
560
571
|
| `ATLASSIAN_MCP_TMP_TTL_DAYS` | Auto-saved attachments older than this are pruned. | `7` |
|
|
@@ -42,6 +42,11 @@
|
|
|
42
42
|
"description": "Personal Access Token (PAT) for Bitbucket Server authentication"
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
+
},
|
|
46
|
+
"markAIText": {
|
|
47
|
+
"type": "boolean",
|
|
48
|
+
"default": true,
|
|
49
|
+
"description": "Append a bold [AI] attribution line to Jira ticket descriptions/comments and Bitbucket PR descriptions/comments posted through this server, so readers can tell AI writing from yours. Default true."
|
|
45
50
|
}
|
|
46
51
|
}
|
|
47
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stubbedev/atlassian-mcp",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.16",
|
|
4
4
|
"description": "MCP server for self-hosted Jira and Bitbucket (Go, distributed as a prebuilt binary)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"postinstall": "node scripts/postinstall.mjs",
|
|
19
19
|
"build": "go build -o atlassian-mcp .",
|
|
20
20
|
"test": "go test ./...",
|
|
21
|
-
"smoke": "go build -o atlassian-mcp . && printf '%s\\n' '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\",\"params\":{}}' | ATLASSIAN_MCP_CONFIG=/nonexistent JIRA_URL=https://github.com JIRA_ACCESS_TOKEN=smoke BITBUCKET_URL=https://github.com BITBUCKET_ACCESS_TOKEN=smoke ./atlassian-mcp | node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const
|
|
21
|
+
"smoke": "go build -o atlassian-mcp . && { printf '%s\\n' '{\"jsonrpc\":\"2.0\",\"id\":0,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"npm-smoke\",\"version\":\"0\"}}}' '{\"jsonrpc\":\"2.0\",\"method\":\"notifications/initialized\"}' '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\",\"params\":{}}'; sleep 3; } | ATLASSIAN_MCP_CONFIG=/nonexistent JIRA_URL=https://github.com JIRA_ACCESS_TOKEN=smoke BITBUCKET_URL=https://github.com BITBUCKET_ACCESS_TOKEN=smoke ./atlassian-mcp | node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const rs=d.trim().split('\\n').filter(Boolean).map(l=>JSON.parse(l));const err=rs.find(r=>r.error);if(err)throw new Error('server error: '+err.error.message);const t=rs.find(r=>r.id===1)?.result?.tools;if(!Array.isArray(t)||!t.length)throw new Error('no tools in response');const bad=t.filter(x=>!x.name||!x.inputSchema);if(bad.length)throw new Error('malformed tools: '+bad.map(x=>x.name??'(unnamed)').join(', '));console.log('smoke OK — '+t.length+' tool(s): '+t.map(x=>x.name).join(', '))}catch(e){console.error('smoke FAIL:',e.message);process.exit(1)}})\"",
|
|
22
22
|
"preversion": "go vet ./... && npm run test && npm run smoke",
|
|
23
23
|
"release:patch": "npm version patch && git push origin HEAD --follow-tags",
|
|
24
24
|
"release:minor": "npm version minor && git push origin HEAD --follow-tags",
|