Official MCP server for esa.io - a documentation sharing service for teams
Confluence Dc is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
MCP server for Confluence Data Center and Confluence Server
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user tekthar-confluence-dc-mcp '--' npx -y mcp-confluence-dc
# 2 — ask your agent for something these tools do
# confluence_getContent, confluence_searchContent, confluence_createContent and 23 more
Confluence Dc costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Confluence Dc as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user tekthar-confluence-dc-mcp '--' npx -y mcp-confluence-dcReconnect, or start a new session, and the tools appear in the model’s tool list.
Nothing is required, but it can take ATLASSIAN_DC_MCP_CONFIG_FILE (Absolute path to a shared dotenv-style config file. When set, values are read from this file before direct environment variable overrides are applied.), CONFLUENCE_HOST (Confluence host domain (e.g. your-instance.atlassian.net). Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE or CONFLUENCE_API_BASE_PATH.), CONFLUENCE_API_BASE_PATH (Confluence API base path (alternative to CONFLUENCE_HOST). Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE or CONFLUENCE_HOST.), CONFLUENCE_API_TOKEN (Confluence Personal Access Token or API token. Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE.) if you want to set them.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
26 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Get Confluence content by ID from the Confluence Data Center edition instance
No parameter schema on file.
Search for content in Confluence Data Center edition instance using CQL
No parameter schema on file.
Create new content in Confluence Data Center edition instance
No parameter schema on file.
Update existing content in Confluence Data Center edition instance. Optionally move the page by setting parentId.
No parameter schema on file.
Upload a local file as an attachment to a Confluence content (page) in the Confluence Data Center edition instance. The file must live under the server-configured upload directory; the path is given relative to that directory.
No parameter schema on file.
Download one or more attachments from a Confluence content (page) in the Confluence Data Center edition instance. Returns metadata only unless you pass returnContent: bytes come back as data with 'base64'/'text', and a PNG/JPEG/GIF/WEBP comes back as a viewable image with 'image', so pass 'image'…
No parameter schema on file.
Search for spaces in Confluence Data Center edition instance
No parameter schema on file.
List the comments on a Confluence page in the …: page (footer) and inline comments, replies included. Each comment has id, author, created, updated, location (footer or inline), resolution, parentCommentId for replies, the highlighted text (originalSelection) for inline comments, and the body.…
No parameter schema on file.
List the inline comments (comments on highlighted text) on a Confluence page in the …, replies included. Each comment has the highlighted text (originalSelection), its marker reference, resolution (open, resolved, ...), parentCommentId for replies, author, dates and body. Paginate with start and…
No parameter schema on file.
Add a page (footer) comment to a Confluence page in the …. The body is in Confluence storage format (XHTML), the same format confluence_createContent takes, e.g. "<p>Looks good, see <ac:link><ri:user ri:userkey="..." /></ac:link></p>". To answer an existing comment use confluence_replyToComment;…
No parameter schema on file.
Reply to an existing comment on a Confluence page in the …. The reply is threaded under commentId on the same page. The body is in Confluence storage format (XHTML), the same format confluence_createContent takes, e.g. "<p>Looks good, see <ac:link><ri:user ri:userkey="..." /></ac:link></p>".
No parameter schema on file.
Add an inline comment anchored to a piece of text on a Confluence page in the …. The body is in Confluence storage format (XHTML), the same format confluence_createContent takes, e.g. "<p>Looks good, see <ac:link><ri:user ri:userkey="..." /></ac:link></p>". textSelection must match text on the…
No parameter schema on file.
List the attachments on a Confluence page in the … with their metadata: id, file name (title), media type, size in bytes, comment, version, and when and by whom it was last updated. Filter by exact file name or media type. Download a file with confluence_downloadAttachment.
No parameter schema on file.
Delete an attachment, with all its versions, from the …. The id is checked first, so a page or comment id is refused. Confluence moves the attachment to the space trash when it can, otherwise it deletes it for good; treat it as irreversible and confirm with the user first.
No parameter schema on file.
Search the users of the … by name or username. Returns username, user key and display name, e.g. to mention someone in storage format (<ac:link><ri:user ri:userkey="..." /></ac:link>) or to filter CQL by creator. Searches Confluence's user index (CQL type = user), so it covers every user, not just…
No parameter schema on file.
List the direct child pages of a page in the …, in sibling order, with id, title, space key, version and web link. Set bodyMode to include bodies; paginate with start and limit.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| parentId | string | yes | ID of the parent page |
| limit | integer | no | Maximum child pages to return (default: the server page size) |
| start | integer | no | Index of the first child to return, for pagination (default 0) |
| bodyMode | string | no | Include each child's body: 'none' (default), 'text' (plain text) or 'storage' (Confluence XML, large) |
Get the page hierarchy of a space in the … as a flat list of {id, title, parentId, depth, position}, sorted by depth then sibling position. Top-level pages have parentId null and depth 0. Use it to understand a space before creating, moving or copying pages.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| spaceKey | string | yes | Key of the space, e.g. DEV |
| limit | integer | no | Maximum pages to fetch (default 100). Start small for large spaces. |
| start | integer | no | Index of the first page to fetch; pass nextStart from a truncated response (default 0) |
Delete a page or blog post in the …. Data Center moves it to the space trash, where a space admin can restore it; it is not purged. Child pages are not deleted: Confluence moves them up to the deleted page's parent, and the response lists them. Refuses other content types (comments, attachments),…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | ID of the page or blog post to move to the trash |
Move a page in the … under a new parent, next to a sibling, or to the top level of a space (another space included). Child pages move with it. Uses the page-move action behind Confluence's Move dialog (POST /pages/movepage.action, all Data Center versions), then re-reads the page and fails if it…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | ID of the page to move. Its child pages move with it. |
| targetId | string | no | ID of the target page. With position 'append' the page becomes its child; with 'above' or 'below' it becomes its sibling, just before or after it. |
| targetSpaceKey | string | no | Key of the space to move into. Without targetId the page moves to the top level of this space. With targetId it must match the target page's space. |
| position | string | no | Where to put the page relative to targetId: 'append' (default, as a child), 'above' or 'below' (as a sibling) |
Copy a page in the … to a new page with a new title, in the same or another space. Data Center has no copy endpoint, so this creates a new page from the source's current storage body: attachments, labels, restrictions, comments and child pages are not copied.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sourcePageId | string | yes | ID of the page to copy |
| newTitle | string | yes | Title of the new page; must be unique in the destination space |
| destinationSpaceKey | string | no | Space key for the new page (default: the source page's space) |
| destinationParentId | string | no | Parent page ID in the destination space. Omit to create the copy at the top level of the space. |
Get one version of a page in the …: title, who changed it, when, the version message, and the body as of that version (plain text by default). Also returns latestVersion. Use confluence_getPageDiff to compare two versions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | ID of the page |
| version | integer | yes | Version number to read (1 is the first version) |
| bodyMode | string | no | Body format: 'text' (default, plain text), 'storage' (Confluence XML, shows macros) or 'none' |
Compare two versions of a page in the … and return a unified line diff (--- vFrom, +++ vTo, @@ hunks) with counts of added and removed lines. diff is empty when the bodies are identical.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | ID of the page |
| fromVersion | integer | yes | Version to diff from (the "old" side) |
| toVersion | integer | yes | Version to diff to (the "new" side) |
| format | string | no | Compare plain text ('text', default) or storage XML split at block tags ('storage', shows macro and formatting changes) |
| contextLines | integer | no | Unchanged lines to show around each change (default 3) |
List the labels on a page, blog post or attachment in the ….
| Parameter | Type | Required | Notes |
|---|---|---|---|
| contentId | string | yes | ID of the page, blog post or attachment (attachment IDs start with "att") |
Add one or more labels to a page, blog post or attachment in the …. Existing labels are kept; returns the content's full label list afterwards.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| contentId | string | yes | ID of the page, blog post or attachment (attachment IDs start with "att") |
| names | array | yes | Label names to add, e.g. ['reviewed', 'release-notes']. No spaces; Confluence stores them in lower case. |
Get the view (read) and edit (update) restrictions set directly on a page in the …: the users and groups each operation is limited to. Empty lists mean that operation is not restricted on this page. View restrictions inherited from ancestor pages are not included.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | ID of the page or blog post |
Set view and edit restrictions on a page in the …. Each list you pass replaces that list on the page, an empty list removes it, and a list you leave out is not changed. Confluence refuses changes that would remove your own access. Returns the page's restrictions afterwards.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pageId | string | yes | ID of the page or blog post |
| readUsers | yes | — | |
| readGroups | yes | — | |
| editUsers | yes | — | |
| editGroups | yes | — |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Confluence Dc or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | source | publisher verification (provenance) — cryptographic build provenance ties the artifact to its source | −0 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (26 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
6 of the 26 recovered tools are registered only when missingEnvVars.length > 0 is false (dist/index.js:893) — typically when a key or option is configured. They are part of the server's surface and were analysed; a server started without that configuration exposes only the other 19.
1 of the 26 recovered tools are registered only when attachmentGateway.upload.enabled holds (dist/index.js:1025) — typically when a key or option is configured. They are part of the server's surface and were analysed; a server started without that configuration exposes only the other 19.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
19 tools are registered unconditionally · (1) 6 more only when missingEnvVars.length > 0 is false (dist/index.js:893) · (2) 1 more only when attachmentGateway.upload.enabled holds (dist/index.js:1025) — typically when a key or option is configured. All 26 are in the table below and were analysed; the conditional ones are marked.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| confluence_getComments | no tags | |
| confluence_getInlineComments | no tags | |
| confluence_addComment | no tags | |
| confluence_replyToComment | no tags | |
| confluence_addInlineComment | no tags | |
| confluence_getAttachments | untrusted-input | untrusted-input: keyword "download" |
| confluence_deleteAttachment | no tags | |
| confluence_searchUser | no tags | |
| confluence_getPageChildren | no tags | |
| confluence_getSpacePageTree | no tags | |
| confluence_deletePage | no tags | |
| confluence_movePage | external-sink | external-sink: handler sends an HTTP POST (request(OpenAPI) at dist/index.js:542 |
| confluence_copyPage | no tags | |
| confluence_getPageHistory | no tags | |
| confluence_getPageDiff | no tags | |
| confluence_getLabels | no tags | |
| confluence_addLabel | no tags | |
| confluence_getPageRestrictions | no tags | |
| confluence_setPageRestrictions | no tags | |
| confluence_getContent conditional (1) | no tags | |
| confluence_searchContent conditional (1) | no tags | |
| confluence_createContent conditional (1) | no tags | |
| confluence_updateContent conditional (1) | no tags | |
| confluence_uploadAttachment conditional (2) | no tags | |
| confluence_downloadAttachment conditional (1) | untrusted-input | untrusted-input: keyword "download" |
| confluence_searchSpace conditional (1) | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.47.1. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Confluence Dc can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.