@stubbedev/atlassian-mcp 0.5.1 → 0.5.2

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.
Files changed (2) hide show
  1. package/README.md +16 -2
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -281,8 +281,9 @@ ATLASSIAN_MCP_HTTP=1 atlassian-mcp # same, via env
281
281
  **Repo context comes from the client, not the server's working directory.** Tools that
282
282
  need a repo (the `git_*` tools, `get_dev_context`, `start_work`, `complete_work`, and
283
283
  Bitbucket project/repo auto-detection) resolve it in this order: an explicit `repoPath`
284
- argument → the client's **MCP workspace roots** (the server asks via `roots/list`, caches
285
- per session, and refreshes on `notifications/roots/list_changed`) the process cwd (stdio
284
+ argument → a **root pinned via request header** (see below) the client's **MCP workspace
285
+ roots** (the server asks via `roots/list`, caches per session, and refreshes on
286
+ `notifications/roots/list_changed`) → the process cwd (stdio
286
287
  only). So one shared HTTP server handles many worktrees: each client's own workspace drives
287
288
  its calls. When a session exposes **several** roots (multiple worktrees), a tool with no
288
289
  `repoPath` uses the first git-repo root; pass `repoPath` (an absolute path, or a worktree
@@ -290,6 +291,19 @@ name/basename that matches one of the roots) to target a specific worktree. For
290
291
  passing `projectKey`+`repoSlug` explicitly skips repo detection entirely. The repos must be
291
292
  reachable on the server's host (the git tools run `git` locally).
292
293
 
294
+ **Pinning the root via a request header (HTTP).** A reverse proxy or harness that already
295
+ knows the working tree can hand it to the server directly, skipping the `roots/list`
296
+ round-trip (and working even when the client never advertised the `roots` capability).
297
+ Send a `file://` URI or absolute path (comma-separated for multiple; first git repo wins):
298
+
299
+ ```
300
+ X-Mcp-Root: file:///srv/myrepo
301
+ X-Mcp-Roots: /srv/a, /srv/b
302
+ ```
303
+
304
+ Accepted header names: `X-Mcp-Roots`, `X-Mcp-Root`, `Mcp-Roots`, `Mcp-Root`. A header value
305
+ is authoritative — it takes precedence over `roots/list` and survives `list_changed`.
306
+
293
307
  Client config for an already-running HTTP server (Claude Code example):
294
308
 
295
309
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stubbedev/atlassian-mcp",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
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",