An open-source Model Context Protocol (MCP) server for Atlassian Confluence that lets AI assistants like Claude and Windsurf read, create, search, and manage Confluence wiki pages. Works with Confluence Cloud, on-premise Server, and Data Center deployments — connect your AI coding agent to your team's knowledge base in seconds via npx.
Why atlassian-confluence-mcp-server?
✅ Only MCP server supporting Cloud + Server + Data Center in one package
✅ 47 tools — most comprehensive Confluence MCP available
✅ Zero config via npx — no install needed
✅ PAT, Basic Auth, and API token support
✅ Actively maintained with provenance-signed releases
Why use this instead of Atlassian's official MCP server?
Feature
This package
Atlassian Official
Confluence Cloud
✅
✅
On-premise Server
✅
❌
Data Center
✅
❌
Zero config via npx
✅
❌
47 tools
✅
~15 tools
Space management (create/delete)
✅
❌
Page copy/move
✅
❌
Watchers
✅
❌
Permissions/restrictions
✅
❌
Task extraction
✅
❌
Export (PDF/Word)
✅
❌
Open source
✅ MIT
✅
Works offline/intranet
✅
❌
Features
Space Management — Create, delete, list, and inspect spaces
Note: tool exposure depends on security configuration. With the default CONFLUENCE_READ_ONLY=true, mutating tools are intentionally hidden/blocked.
Connection
Tool
Description
confluence_test_connection
Test connection to Confluence API
Spaces
Tool
Description
confluence_get_spaces
List all spaces
confluence_get_space
Get space details by key
confluence_get_space_by_key
Alias for get_space
confluence_create_space
Create a new space
confluence_delete_space
Delete a space and all its content
confluence_get_space_homepage
Get the homepage of a space
Pages
Tool
Description
confluence_get_pages
List pages, optionally filtered by space
confluence_get_page
Get page by ID
confluence_get_page_by_title
Get page by title within a space
confluence_create_page
Create a new page
confluence_update_page
Update an existing page
confluence_patch_page
Server-side exact find/replace patch for large pages
confluence_replace_page_range
Replace middle range using offsets or line numbers
confluence_append_to_page
Append or prepend content server-side
confluence_get_page_body_chunk
Read large page body in offset/length chunks
confluence_delete_page
Delete a page
confluence_copy_page
Copy a page, optionally to a different space
confluence_move_page
Move a page to a different parent or space
Search
Tool
Description
confluence_search
Search using CQL
confluence_search_pages
Search pages by text
confluence_get_recently_modified
Get recently modified pages
Labels
Tool
Description
confluence_get_page_labels
Get labels on a page
confluence_add_page_label
Add a label to a page
confluence_delete_page_label
Remove a label from a page
Comments
Tool
Description
confluence_get_page_comments
Get comments on a page
confluence_add_page_comment
Add a comment to a page
Attachments
Tool
Description
confluence_get_page_attachments
List attachments on a page
confluence_get_comment_attachments
List attachments on a comment
confluence_upload_attachment
Upload/upsert a local file as a page or comment attachment
Page Hierarchy
Tool
Description
confluence_get_child_pages
Get child pages of a parent
confluence_get_page_ancestors
Get ancestor pages
Version History
Tool
Description
confluence_get_page_versions
Get page version history
confluence_get_page_version
Get a specific page version
Properties
Tool
Description
confluence_get_page_properties
Get content properties of a page
User
Tool
Description
confluence_get_current_user
Get current authenticated user
Watchers
Tool
Description
confluence_get_page_watchers
Get users watching a page
confluence_watch_page
Add current user as a watcher
confluence_unwatch_page
Remove current user as a watcher
Permissions
Tool
Description
confluence_get_page_permissions
Get page restrictions/permissions
confluence_set_page_permissions
Set page restrictions/permissions
Tasks
Tool
Description
confluence_get_page_tasks
Extract inline tasks from a page
Export
Tool
Description
confluence_export_page
Get export URL for a page (PDF or Word)
Utilities
Tool
Description
confluence_get_page_by_url
Get page from a Confluence URL
Personal Space
Tool
Description
confluence_get_personal_space_key
Get current user's personal space key
confluence_create_page_in_personal_space
Create page in personal space
confluence_create_private_space
Create a private space
Resources
URI
Description
confluence://spaces
List of all Confluence spaces
Example CQL Queries
# Pages in a specific space
type=page AND space=TEAM
# Pages with a label
type=page AND label=documentation
# Recently modified pages
type=page AND lastModified > now("-7d")
# Title search
type=page AND title~"Meeting Notes"
# Pages created by current user
type=page AND creator=currentUser()
Page Body Format
Pages use Confluence storage format (XHTML):
<p>This is a paragraph.</p>
<h1>Heading 1</h1>
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
<ac:structured-macro ac:name="code">
<ac:parameter ac:name="language">javascript</ac:parameter>
<ac:plain-text-body><![CDATA[console.log("Hello");]]></ac:plain-text-body>
</ac:structured-macro>
Editing Very Large Pages
When a page body is very large (for example hundreds of KB), avoid sending the full body through confluence_update_page.
Recommended workflow:
Use confluence_get_page_body_chunk to inspect the relevant part of the page.
Use one of:
confluence_patch_page for exact find/replace edits.
confluence_replace_page_range for replacing a specific middle range.
confluence_append_to_page for incremental append/prepend updates.
Notes:
Offset-based range replacement is the most reliable mode for storage XHTML.
Line-based replacement requires actual newline characters in the stored body.
These tools still perform a full Confluence update under the hood, but the full body remains server-side.
Security
Credentials are read exclusively from environment variables — never hard-coded.
Input validation — all user-supplied parameters are validated and sanitized before use.
CQL injection prevention — user input interpolated into CQL queries is escaped.
URL path encoding — all dynamic path segments are encoded with encodeURIComponent.
Request timeouts — all HTTP requests have a 30-second timeout to prevent hanging.
Error sanitization — API error responses are truncated and stripped of HTML before surfacing.
Pagination limits — query limits are clamped to a safe maximum (100) to prevent abuse.
Contributing
Please see CONTRIBUTING.md for guidelines on how to contribute to this project.
Security Policy
For security policies and vulnerability reporting, see SECURITY.md.