Atlassian Dc Mcp Confluence

io.github.MrRefactoring由 GitHub 帳號 MrRefactoring 發布v0.6.0更新於 Oct 24, 2026

MCP server for Atlassian Confluence Data Center - access and manage content

發布方自己的服務:Atlassian Rovo MCP Server

概覽

AI 產生的概覽

讓 AI 助理透過 MCP 工具讀取、搜尋與管理自架 Confluence Data Center 執行個體上的內容。

可以做什麼
把相容於 MCP 的助理連接到自架的 Confluence Data Center 或 Server 執行個體。它提供 115 個依領域分組的工具:content(頁面與部落格文章的新增、讀取、更新、刪除,內文、版本、標籤、子頁面、CQL 搜尋)、spaces(空間、空間內容、權限、關注者)、users(使用者與群組)、admin(管理讀取)、webhooks(webhook 註冊與管理)以及 attachments(上傳、列出、更新附件,下載二進位內容、頁面附件與內嵌圖片)。它也提供資源與提示詞,工具帶有唯讀或破壞性標註。
適用情境
當助理需要搜尋、讀取或編輯自架 Data Center 或 Server 執行個體上的 Confluence 頁面與空間時使用,例如查閱文件、起草或更新頁面、管理附件與標籤。它不適用於 Atlassian Cloud,後者使用不同的端點與驗證方式。只有在你確實能存取這類執行個體並希望助理使用 Confluence 內容時才安裝。
執行需求
透過 npx 以 stdio 本機程序執行(需要 Node.js;README 中開發環境要求 Node.js >= 26)。需要可連線的自架 Confluence Data Center/Server 執行個體,以及 CONFLUENCE_HOST 或 CONFLUENCE_API_BASE_PATH 其中之一,還需要 CONFLUENCE_API_TOKEN(或 Basic 驗證的使用者名稱/密碼),除非透過 ATLASSIAN_DC_MCP_CONFIG_FILE 提供。可用互動式 setup 指令把認證資訊存入系統鑰匙圈或 0600 檔案。
安裝前請注意
需要 Confluence 認證資訊:CONFLUENCE_API_TOKEN(個人存取權杖),或用於 Basic 驗證的使用者名稱/密碼組合。README 聲明這是社群專案,與 Atlassian 無關聯、未獲其背書或支援,請自行斟酌使用。許多工具會寫入、更新或刪除內容,webhook 與管理類工具會變更執行個體設定。認證資訊可能存放在系統鑰匙圈或 0600 檔案中,或透過共用設定檔傳入;HTTP 傳輸本身沒有驗證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Atlassian Dc Mcp Confluence,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[npm jira-datacenter-mcp] [npm confluence-datacenter-mcp] [npm bitbucket-datacenter-mcp] [License: MIT]

Atlassian Data Center MCP

Community project — not affiliated with, endorsed by, or supported by Atlassian. Use at your own discretion.

Model Context Protocol (MCP) servers that connect Claude Desktop, Claude Code, Cursor, and any other MCP-compatible AI assistant to self-hosted Atlassian Data Center (formerly Server) instances: Jira, Confluence, and Bitbucket.

Search and manage Jira issues, read and edit Confluence pages, review Bitbucket pull requests — from your AI assistant, with credentials stored in your OS keychain instead of pasted into a client config.

PackageVersionServer for
jira-datacenter-mcp[npm]Jira Data Center / Server
confluence-datacenter-mcp[npm]Confluence Data Center / Server
bitbucket-datacenter-mcp[npm]Bitbucket Data Center / Server
datacenter-mcp-core[npm]Shared runtime (installed automatically — not run directly)

Each product is a separate package — install only the ones you need.


Contents


Capabilities

Each server exposes MCP tools (actions the assistant can call), resources (readable context endpoints), and prompts (ready-made workflows). Tools are grouped by domain and follow the naming pattern <product>_verb_noun (e.g. jira_search_issues, bitbucket_get_pull_request).

ServerToolsResourcesPrompts
Jira28844
Confluence11544
Bitbucket12044
Jira — 288 tools
GroupToolsCovers
issues71search (JQL), create/update/transition, comments, worklogs, links, attachments, watchers, votes
projects48projects, versions, components, roles, categories
users29user lookup/search, groups, assignable-user queries
workflows25workflows, statuses, schemes
agile22boards, sprints, backlog, epics
admin93fields, screens, permissions, notification/security schemes, and other administrative reads/writes
Confluence — 115 tools
GroupToolsCovers
content32pages/blogposts CRUD, bodies, versions, labels, children/descendants, search (CQL)
spaces30spaces, space content, permissions, watchers
users22users, groups, memberships
admin11global permissions, access mode, and other admin reads
webhooks9webhook registration and management
attachments11upload, list, update attachments; download binary content, page attachments and embedded images
Bitbucket — 120 tools
GroupToolsCovers
repositories55repos, branches, commits, files/browse (text and binary), diffs, tags, labels, settings
pullRequests30PR CRUD, diffs/changes, inline & file comments, tasks, reviews, merge/decline, participants
builds13build status and code-insights reports
permissions8project/repository permission grants
authentication6access tokens, SSH & GPG keys
projects5project CRUD
security3security-related reads

Every tool carries MCP annotations (read-only vs. destructive hints), and argument completions are provided for common identifiers (project keys, board IDs, repository slugs) so compatible clients can autocomplete them.


Quick start

Each package ships an interactive setup command that stores credentials in the most secure place your OS offers (macOS Keychain, or a 0600 file elsewhere). Run it once per product:

bash
npx jira-datacenter-mcp setupnpx confluence-datacenter-mcp setupnpx bitbucket-datacenter-mcp setup

Setup prompts for host, API base path, default page size, and API token, then makes a live authenticated request to verify everything before saving — a wrong host or token is caught immediately. Leave the token blank to configure anonymous (unauthenticated) access on instances that allow it.

After setup, the server boots with zero environment variables — see Connecting a client.

Prefer explicit config? You can skip setup entirely and pass credentials via environment variables or a shared config file instead. See the Configuration reference.

Scripted / non-interactive setup

Setup accepts flags for CI or remote bootstrap (--help for the full list):

FlagShortDescription
--host <value>-HHost, e.g. jira.example.com
--api-base-path <value>-bAPI base path or full URL
--token <value>-tAPI token (PAT)
--username <value>-uUsername for Basic auth (alternative to --token)
--password <value>-pPassword for Basic auth (with --username)
--default-page-size <n>-sDefault page size (positive integer)
--profile <name>-PNamed profile for a second instance of the same product
--non-interactive-nNo prompts; exit non-zero if a required value is missing
--help-hShow usage
bash
# Fully scriptednpx jira-datacenter-mcp setup --non-interactive --host jira.example.com --token "$JIRA_TOKEN"
# Re-validate an already-stored token without re-entering itnpx jira-datacenter-mcp setup --non-interactive --host jira.example.com

In --non-interactive mode, missing values are resolved from existing configuration and the command exits 1 on the first validation failure — usable as a CI gate.


Connecting a client

Once setup has stored your credentials, the env block can be empty. The examples below pass credentials inline for clarity; drop the env entries if you ran setup.

Set *_HOST to a domain (+ optional port) without a protocol — https:// is assumed. To point at a non-standard path or force http://, use *_API_BASE_PATH with a full URL instead (the product-specific API suffix is appended automatically — don't include it).

Claude Desktop

Config file: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) · %APPDATA%\Claude\claude_desktop_config.json (Windows). Keep only the servers you need.

json
{  "mcpServers": {    "atlassian-jira-dc": {      "command": "npx",      "args": ["-y", "jira-datacenter-mcp"],      "env": { "JIRA_HOST": "jira.example.com", "JIRA_API_TOKEN": "your-token" }    },    "atlassian-confluence-dc": {      "command": "npx",      "args": ["-y", "confluence-datacenter-mcp"],      "env": { "CONFLUENCE_HOST": "confluence.example.com", "CONFLUENCE_API_TOKEN": "your-token" }    },    "atlassian-bitbucket-dc": {      "command": "npx",      "args": ["-y", "bitbucket-datacenter-mcp"],      "env": { "BITBUCKET_HOST": "bitbucket.example.com", "BITBUCKET_API_TOKEN": "your-token" }    }  }}

After running setup, this collapses to:

json
{  "mcpServers": {    "atlassian-jira-dc": { "command": "npx", "args": ["-y", "jira-datacenter-mcp"] }  }}

Claude Code

bash
# Project scope (writes .mcp.json); add -s user for all projectsclaude mcp add atlassian-jira-dc \  -e JIRA_HOST=jira.example.com \  -e JIRA_API_TOKEN=your-token \  -- npx -y jira-datacenter-mcp

Swap -e JIRA_HOST=… for -e JIRA_API_BASE_PATH=https://jira.example.com/rest, or drop the -e flags entirely if you ran setup.

Cursor & other MCP clients

Any stdio MCP client works. Point it at the command npx -y <product>-datacenter-mcp and supply credentials through its env mechanism (or rely on setup). For remote/multi-client hosting, use the HTTP transport.


Authentication & tokens

Three modes, resolved per request:

  • Personal Access Token (recommended) — set *_API_TOKEN. Sent as Authorization: Bearer <token>.
  • Basic auth — set *_USERNAME + *_PASSWORD (for older instances without PATs). Takes precedence over a token if both are configured.
  • Anonymous — set neither. No Authorization header is sent; works on instances that allow unauthenticated reads.

Generating a Personal Access Token

ProductPath in the web UI
JiraProfile → Personal Access Tokens → Create token
ConfluenceProfile/Settings → Personal Access Tokens → Create token
BitbucketManage account → HTTP access tokens → Create token

Give the token the minimum permissions it needs and copy it immediately — it is shown only once.


Configuration reference

Per-product variables

Each product reads its own prefix (JIRA_*, CONFLUENCE_*, BITBUCKET_*):

VariableRequiredDescription
*_HOST✅¹Domain (+ port), no protocol — e.g. jira.example.com
*_API_BASE_PATH✅¹Full base URL incl. protocol — alternative to *_HOST
*_API_TOKEN—Personal Access Token (Bearer auth)
*_USERNAME / *_PASSWORD—Basic auth pair (alternative to the token)
*_DEFAULT_PAGE_SIZE—Default page size for paged endpoints

¹ Provide one of *_HOST or *_API_BASE_PATH. The API suffix is appended for you and must not be included: Jira /rest (+ /api/2), Confluence /rest/api, Bitbucket /rest (+ /api/latest).

Global variables

VariableDefaultDescription
ATLASSIAN_DC_MCP_CONFIG_FILE—Absolute path to a shared dotenv file (see below); fails fast if set but missing
ATLASSIAN_DC_MCP_PROFILE—Selects a named profile's stored credentials (multiple instances)
ATLASSIAN_DC_MCP_HTTP_PORT—Serve over HTTP instead of stdio
ATLASSIAN_DC_MCP_LOG_LEVELinfodebug · info · warn · error
ATLASSIAN_DC_MCP_REQUEST_TIMEOUT_MS30000Per-request timeout to the Atlassian API
ATLASSIAN_DC_MCP_MAX_RESPONSE_CHARS100000Cap on a tool result's characters; 0 disables the cap
ATLASSIAN_DC_MCP_MAX_INLINE_BYTES1048576 images
262144 other
Largest downloaded file returned inline instead of requiring outputPath. Setting it applies one value to both; 0 always requires outputPath

Precedence

At startup each config key is resolved by walking these sources in order and taking the first non-empty value:

PrioritySourceProvides
100process.envall keys
80env file — ATLASSIAN_DC_MCP_CONFIG_FILE, or ./.envall keys
60home file — ~/.atlassian-dc-mcp/<product>.env (%USERPROFILE%\… on Windows)all keys
40macOS Keychain — service atlassian-dc-mcp, account <product>-token / <product>-passwordtoken, password

Process env always wins, so you can override a stored credential for a single session. Keychain reads are cached once at startup — tool calls never shell out.

Shared config file

To reuse one set of credentials across several MCP hosts on a machine, put the *_HOST / *_API_TOKEN / … variables in one dotenv file and point every server at it with an absolute ATLASSIAN_DC_MCP_CONFIG_FILE:

dotenv
JIRA_HOST=jira.example.comJIRA_API_TOKEN=your-jira-token
CONFLUENCE_HOST=confluence.example.comCONFLUENCE_API_TOKEN=your-confluence-token
BITBUCKET_HOST=bitbucket.example.comBITBUCKET_API_TOKEN=your-bitbucket-token
json
{  "mcpServers": {    "atlassian-jira-dc": {      "command": "npx",      "args": ["-y", "jira-datacenter-mcp"],      "env": { "ATLASSIAN_DC_MCP_CONFIG_FILE": "/Users/you/.config/atlassian-dc-mcp.env" }    }  }}

Features

Where credentials are stored

setup splits secrets from non-secrets:

  • macOS — token/password go to the login Keychain (service atlassian-dc-mcp); the copy in the home file is cleared after a successful write, so there's never a second copy in a less-secure place.
  • Linux — home file ~/.atlassian-dc-mcp/<product>.env, mode 0600 (your user only).
  • Windows — %USERPROFILE%\.atlassian-dc-mcp\<product>.env, inheriting your user-profile ACL.

Non-secret fields (host, base path, page size) always live in the home file.

Multiple instances (profiles)

To run two instances of the same product (e.g. two Jira sites), give each a --profile at setup and select it at launch with ATLASSIAN_DC_MCP_PROFILE:

bash
npx jira-datacenter-mcp setup --profile work     --host jira-work.example.com     --token "$WORK_TOKEN"npx jira-datacenter-mcp setup --profile personal --host jira-personal.example.com --token "$PERSONAL_TOKEN"
json
{  "mcpServers": {    "jira-work":     { "command": "npx", "args": ["-y", "jira-datacenter-mcp"], "env": { "ATLASSIAN_DC_MCP_PROFILE": "work" } },    "jira-personal": { "command": "npx", "args": ["-y", "jira-datacenter-mcp"], "env": { "ATLASSIAN_DC_MCP_PROFILE": "personal" } }  }}

A profile only changes which home file (<product>.<profile>.env) and Keychain account are used.

Transport: stdio & HTTP

By default every server speaks stdio — what local hosts like Claude Desktop expect. Set ATLASSIAN_DC_MCP_HTTP_PORT to a positive integer to serve the Streamable HTTP transport instead (for remote/multi-client access); the two are mutually exclusive per process.

bash
ATLASSIAN_DC_MCP_HTTP_PORT=3000 npx jira-datacenter-mcp

The HTTP transport carries no auth of its own beyond the configured Atlassian credentials — put your own reverse proxy, TLS, and access control in front of it before exposing it beyond localhost.

Resilience

  • Retries — transient failures (HTTP 429 and 5xx) are retried with exponential backoff and jitter (up to 3 attempts). A server-provided Retry-After header is honored (clamped to 30s) instead of the computed backoff. 4xx client errors are never retried.
  • Response cap — tool results larger than ATLASSIAN_DC_MCP_MAX_RESPONSE_CHARS (default 100k chars) are truncated with a marker, so a single broad query can't flood the context window. Set 0 to disable.
  • Bounded pagination — small, naturally finite lists (a project's versions, a page's labels) are auto-assembled into one result; open-ended searches (JQL/CQL, repo listings) stay single-page and agent-driven so they can't return an unbounded amount of data.
  • Binary downloads — every download tool takes an optional absolute outputPath: with it the file is written to disk and only its metadata comes back, so size is irrelevant. Without it the bytes are returned as their own content block (an image, or a base64 resource blob), bypassing the response cap; anything over ATLASSIAN_DC_MCP_MAX_INLINE_BYTES is refused with a pointer to outputPath rather than truncated. That ceiling is 1 MiB for raster images, which a host decodes as a picture, and 256 KiB for everything else, whose base64 a host can only read as text.

Logging

All logs go to stderr as one JSON object per line ({"timestamp","level","message",…}), keeping stdout clean for the stdio protocol. Control verbosity with ATLASSIAN_DC_MCP_LOG_LEVEL:

bash
ATLASSIAN_DC_MCP_LOG_LEVEL=debug npx jira-datacenter-mcp

Development

A pnpm workspace monorepo. Four packages under packages/: core (shared runtime) and one per product.

Prerequisites: Node.js ≥ 26 · pnpm (pinned to 11.9.0 via packageManager) · a reachable Atlassian DC/Server instance.

bash
git clone https://github.com/MrRefactoring/atlassian-dc-mcp.gitcd atlassian-dc-mcppnpm install
pnpm build          # build all packages (core first — others depend on its types)pnpm typecheck      # tsc --noEmit across src + testspnpm lint           # ESLint (flat config, whole repo)pnpm test           # unit tests (Vitest); the API client is mocked — no network
pnpm dev:jira       # watch-mode build for one product (also :confluence, :bitbucket)

Build or test a single package with --filter:

bash
pnpm --filter jira-datacenter-mcp buildpnpm --filter jira-datacenter-mcp test

Live smoke test

Unit tests mock the API client, so they can't catch an auth/network/API-shape regression against a real instance. Each product can run an opt-in, read-only live test that skips itself (not a failure) when unconfigured:

bash
cp packages/jira/.env.live.example packages/jira/.env.live# edit .env.live with a real host + token (or username/password)pnpm --filter jira-datacenter-mcp test -- jira-service.live

.env.live is gitignored — never commit real credentials.

Releasing

Versioning and publishing use Changesets; all four packages move in lockstep (a fixed group). Any behavior-changing PR should include one:

bash
pnpm changeset

Commit the generated .changeset/*.md alongside your change. Merging the resulting "Version Packages" PR is what publishes to npm and the MCP Registry.


License

MIT

來源:README.md,提交 ae4ca9b

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.6.0最新Sep 22, 2026
  2. v0.5.0Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Atlassian 整合