
Atlassian Confluence
Connects AI assistants to your Atlassian Confluence workspace so you can search, read, and manage pages and documentation using natural language.
Integrates with Atlassian Confluence to provide direct access to spaces, pages, and content with tools for listing, retrieving, and searching using CQL while converting content to Markdown format
What it does
- Search pages across Confluence spaces using CQL queries
- Read and retrieve Confluence pages with content converted to Markdown
- Create new pages and documentation in specified spaces
- Update existing Confluence pages and content
- Delete Confluence resources and pages
- List spaces and browse Confluence structure
Best for
About Atlassian Confluence
Atlassian Confluence is a community-built MCP server published by aashari that provides AI assistants with tools and capabilities via the Model Context Protocol. Integrate Jira with Atlassian Confluence to list, retrieve, and search spaces and pages, plus convert content to Markdow It is categorized under productivity. This server exposes 5 tools that AI clients can invoke during conversations and coding sessions.
How to install
You can install Atlassian Confluence in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport. This server supports remote connections over HTTP, so no local installation is required.
License
Atlassian Confluence is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Tools (5)
Read any Confluence data. Returns TOON format by default (30-60% fewer tokens than JSON). **IMPORTANT - Cost Optimization:** - ALWAYS use `jq` param to filter response fields. Unfiltered responses are very expensive! - Use `limit` query param to restrict result count (e.g., `limit: "5"`) - If unsure about available fields, first fetch ONE item with `limit: "1"` and NO jq filter to explore the schema, then use jq in subsequent calls **Schema Discovery Pattern:** 1. First call: `path: "/wiki/api/v2/spaces", queryParams: {"limit": "1"}` (no jq) - explore available fields 2. Then use: `jq: "results[*].{id: id, key: key, name: name}"` - extract only what you need **Output format:** TOON (default, token-efficient) or JSON (`outputFormat: "json"`) **Common paths:** - `/wiki/api/v2/spaces` - list spaces - `/wiki/api/v2/pages` - list pages (use `space-id` query param) - `/wiki/api/v2/pages/{id}` - get page details - `/wiki/api/v2/pages/{id}/body` - get page body (`body-format`: storage, atlas_doc_format, view) - `/wiki/rest/api/search` - search content (`cql` query param) **JQ examples:** `results[*].id`, `results[0]`, `results[*].{id: id, title: title}` API reference: https://developer.atlassian.com/cloud/confluence/rest/v2/
Create Confluence resources. Returns TOON format by default (token-efficient). **IMPORTANT - Cost Optimization:** - Use `jq` param to extract only needed fields from response (e.g., `jq: "{id: id, title: title}"`) - Unfiltered responses include all metadata and are expensive! **Output format:** TOON (default) or JSON (`outputFormat: "json"`) **Common operations:** 1. **Create page:** `/wiki/api/v2/pages` body: `{"spaceId": "123456", "status": "current", "title": "Page Title", "parentId": "789", "body": {"representation": "storage", "value": "<p>Content</p>"}}` 2. **Create blog post:** `/wiki/api/v2/blogposts` body: `{"spaceId": "123456", "status": "current", "title": "Blog Title", "body": {"representation": "storage", "value": "<p>Content</p>"}}` 3. **Add label:** `/wiki/api/v2/pages/{id}/labels` - body: `{"name": "label-name"}` 4. **Add comment:** `/wiki/api/v2/pages/{id}/footer-comments` API reference: https://developer.atlassian.com/cloud/confluence/rest/v2/
Replace Confluence resources (full update). Returns TOON format by default. **IMPORTANT - Cost Optimization:** - Use `jq` param to extract only needed fields from response - Example: `jq: "{id: id, version: version.number}"` **Output format:** TOON (default) or JSON (`outputFormat: "json"`) **Common operations:** 1. **Update page:** `/wiki/api/v2/pages/{id}` body: `{"id": "123", "status": "current", "title": "Updated Title", "spaceId": "456", "body": {"representation": "storage", "value": "<p>Content</p>"}, "version": {"number": 2}}` Note: version.number must be incremented 2. **Update blog post:** `/wiki/api/v2/blogposts/{id}` Note: PUT replaces entire resource. Version number must be incremented. API reference: https://developer.atlassian.com/cloud/confluence/rest/v2/
Partially update Confluence resources. Returns TOON format by default. **IMPORTANT - Cost Optimization:** Use `jq` param to filter response fields. **Output format:** TOON (default) or JSON (`outputFormat: "json"`) **Common operations:** 1. **Update space:** `/wiki/api/v2/spaces/{id}` body: `{"name": "New Name", "description": {"plain": {"value": "Desc", "representation": "plain"}}}` 2. **Update comment:** `/wiki/api/v2/footer-comments/{id}` Note: Confluence v2 API primarily uses PUT for updates. API reference: https://developer.atlassian.com/cloud/confluence/rest/v2/
Delete Confluence resources. Returns TOON format by default. **Output format:** TOON (default) or JSON (`outputFormat: "json"`) **Common operations:** - `/wiki/api/v2/pages/{id}` - Delete page - `/wiki/api/v2/blogposts/{id}` - Delete blog post - `/wiki/api/v2/pages/{id}/labels/{label-id}` - Remove label - `/wiki/api/v2/footer-comments/{id}` - Delete comment - `/wiki/api/v2/attachments/{id}` - Delete attachment Note: Most DELETE endpoints return 204 No Content on success. API reference: https://developer.atlassian.com/cloud/confluence/rest/v2/
Connect AI to Your Confluence Knowledge Base
Transform how you access and interact with your team's knowledge by connecting Claude, Cursor AI, and other AI assistants directly to your Confluence spaces, pages, and documentation. Get instant answers from your knowledge base, search across all your spaces, and streamline your documentation workflow.
What You Can Do
- Ask AI about your documentation: "What's our API authentication process?"
- Search across all spaces: "Find all pages about security best practices"
- Get instant answers: "Show me the latest release notes from the Product space"
- Access team knowledge: "What are our HR policies for remote work?"
- Review page comments: "Show me the discussion on the architecture document"
- Create and update content: "Create a new page in the DEV space"
Perfect For
- Developers who need quick access to technical documentation and API guides
- Product Managers searching for requirements, specs, and project updates
- HR Teams accessing policy documents and employee resources quickly
- Support Teams finding troubleshooting guides and knowledge base articles
- Anyone who wants to interact with Confluence using natural language
Quick Start
Get up and running in 2 minutes:
1. Get Your Confluence Credentials
Generate a Confluence API Token:
- Go to Atlassian API Tokens
- Click Create API token
- Give it a name like "AI Assistant"
- Copy the generated token immediately (you won't see it again!)
2. Try It Instantly
# Set your credentials
export ATLASSIAN_SITE_NAME="your-company" # for your-company.atlassian.net
export ATLASSIAN_USER_EMAIL="[email protected]"
export ATLASSIAN_API_TOKEN="your_api_token"
# List your Confluence spaces (TOON format by default)
npx -y @aashari/mcp-server-atlassian-confluence get --path "/wiki/api/v2/spaces"
# Get details about a specific space with field filtering
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/spaces/123456" \
--jq "{id: id, key: key, name: name, type: type}"
# Get a page with JMESPath filtering
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/pages/789" \
--jq "{id: id, title: title, status: status}"
# Search for pages (using CQL)
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/rest/api/search" \
--query-params '{"cql": "type=page AND space=DEV"}'
Connect to AI Assistants
For Claude Desktop Users
Add this to your Claude configuration file (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"confluence": {
"command": "npx",
"args": ["-y", "@aashari/mcp-server-atlassian-confluence"],
"env": {
"ATLASSIAN_SITE_NAME": "your-company",
"ATLASSIAN_USER_EMAIL": "[email protected]",
"ATLASSIAN_API_TOKEN": "your_api_token"
}
}
}
}
Restart Claude Desktop, and you'll see the confluence server in the status bar.
For Other AI Assistants
Most AI assistants support MCP (Cursor AI, Continue.dev, and others). Install the server globally:
npm install -g @aashari/mcp-server-atlassian-confluence
Then configure your AI assistant to use the MCP server with STDIO transport. The binary is available as mcp-atlassian-confluence after global installation.
Alternative: Configuration File
Create ~/.mcp/configs.json for system-wide configuration:
{
"confluence": {
"environments": {
"ATLASSIAN_SITE_NAME": "your-company",
"ATLASSIAN_USER_EMAIL": "[email protected]",
"ATLASSIAN_API_TOKEN": "your_api_token"
}
}
}
Alternative config keys: The system also accepts "atlassian-confluence", "@aashari/mcp-server-atlassian-confluence", or "mcp-server-atlassian-confluence" instead of "confluence".
Using Environment Variables
You can also configure credentials using environment variables or a .env file:
# Create a .env file in your project directory
cat > .env << EOF
ATLASSIAN_SITE_NAME=your-company
[email protected]
ATLASSIAN_API_TOKEN=your_api_token
DEBUG=false
EOF
The server will automatically load these values from:
- Environment variables
.envfile in the current directory~/.mcp/configs.json(as shown above)
Available Tools
This MCP server provides 5 generic tools that can access any Confluence API endpoint:
| Tool | Description |
|---|---|
conf_get | GET any Confluence API endpoint (read data) |
conf_post | POST to any endpoint (create resources) |
conf_put | PUT to any endpoint (replace resources) |
conf_patch | PATCH to any endpoint (partial updates) |
conf_delete | DELETE from any endpoint (remove resources) |
Tool Parameters
All tools share these common parameters:
path(required): The API endpoint path (e.g.,/wiki/api/v2/spaces)queryParams(optional): Query parameters as key-value pairs (e.g.,{"limit": "25", "space-id": "123"})jq(optional): JMESPath expression to filter/transform the response (e.g.,results[*].{id: id, title: title})outputFormat(optional): Output format -"toon"(default, 30-60% fewer tokens) or"json"
Tools that accept a request body (conf_post, conf_put, conf_patch):
body(required): Request body as a JSON object
Common API Paths
Spaces:
/wiki/api/v2/spaces- List all spaces/wiki/api/v2/spaces/{id}- Get space details
Pages:
/wiki/api/v2/pages- List pages (usespace-idquery param to filter)/wiki/api/v2/pages/{id}- Get page details/wiki/api/v2/pages/{id}/body- Get page body (usebody-formatparam)/wiki/api/v2/pages/{id}/children- Get child pages/wiki/api/v2/pages/{id}/labels- Get page labels
Comments:
/wiki/api/v2/pages/{id}/footer-comments- List/add footer comments/wiki/api/v2/pages/{id}/inline-comments- List/add inline comments/wiki/api/v2/footer-comments/{comment-id}- Get/update/delete comment
Blog Posts:
/wiki/api/v2/blogposts- List blog posts/wiki/api/v2/blogposts/{id}- Get blog post
Search:
/wiki/rest/api/search- Search content (usecqlquery param)
TOON Output Format
What is TOON? TOON (Token-Oriented Object Notation) is a format optimized for LLM token efficiency, reducing token costs by 30-60% compared to JSON. It's the default output format for all tools.
Benefits:
- Tabular arrays use fewer tokens than JSON arrays
- Minimal syntax overhead (no quotes, brackets, commas where unnecessary)
- Still human-readable and parseable
When to use JSON instead:
- When you need standard JSON for other tools
- When debugging or manual inspection is needed
Example comparison:
// JSON format (verbose)
{"results": [{"id": "123", "title": "My Page"}, {"id": "456", "title": "Other Page"}]}
// TOON format (efficient)
results:
- id: 123
title: My Page
- id: 456
title: Other Page
To use JSON instead of TOON, set outputFormat: "json" in your request.
JMESPath Filtering
All tools support optional JMESPath (jq) filtering to extract specific data and reduce token costs:
# Get just space names and keys
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/spaces" \
--jq "results[].{id: id, key: key, name: name}"
# Get page title and status
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/pages/123456" \
--jq "{id: id, title: title, status: status}"
IMPORTANT: Always use the jq parameter to filter responses to only the fields you need. Unfiltered responses can be very large and expensive in token costs.
JMESPath Syntax Reference:
- Official docs: jmespath.org
- Common patterns:
results[*]- All items in results arrayresults[0]- First item onlyresults[*].id- Just IDs from all itemsresults[*].{id: id, title: title}- Create objects with selected fieldsresults[?status=='current']- Filter by condition
Real-World Examples
Explore Your Knowledge Base
Ask your AI assistant:
- "List all the spaces in our Confluence"
- "Show me details about the Engineering space"
- "What pages are in our Product space?"
- "Find the latest pages in the Marketing space"
Search and Find Information
Ask your AI assistant:
- "Search for pages about API authentication"
- "Find all documentation with 'security' in the title"
- "Show me pages labeled with 'getting-started'"
- "Search for content in the DEV space about deployment"
Access Specific Content
Ask your AI assistant:
- "Get the content of the API Authentication Guide page"
- "Show me the onboarding checklist document"
- "What's in our security policies page?"
- "Display the latest release notes"
Create and Update Content
Ask your AI assistant:
- "Create a new page in the DEV space titled 'API Guide'"
- "Add a comment to the architecture document"
- "Update the page content with the new release info"
CLI Commands
The CLI mirrors the MCP tools for direct terminal access. All commands support the same parameters as the tools.
Available Commands
get- GET any Confluence endpointpost- POST to any endpointput- PUT to any endpointpatch- PATCH any endpointdelete- DELETE from any endpoint
CLI Parameters
All commands:
-p, --path <path>(required) - API endpoint path-q, --query-params <json>(optional) - Query parameters as JSON--jq <expression>(optional) - JMESPath filter expression-o, --output-format <format>(optional) - Output format:toon(def
README truncated. View full README on GitHub.
Alternatives
Related Skills
Browse all skillsUse Atlassian MCP server to interact with Confluence (pages, spaces, search, comments). Load this when you need to perform Confluence operations. NOT for Jira - use acli for Jira.
CLI tool for interacting with Atlassian Jira and Confluence
Expert in Confluence operations using Atlassian MCP - automatically detects workspace Confluence configuration or prompts for site details. Use for searching, creating, updating pages, managing spaces, and adding comments with proper Markdown formatting.
Atlassian Jira expert for creating and managing projects, planning, product discovery, JQL queries, workflows, custom fields, automation, reporting, and all Jira features. Use for Jira project setup, configuration, advanced search, dashboard creation, workflow design, and technical Jira operations.
Full Confluence Cloud REST API v2 skill (pages, spaces, folders, databases, whiteboards, comments, labels, tasks, properties, etc.) with basic/OAuth auth, pagination, and migration from confluence-cli.
Automatically convert Confluence specification documents into structured Jira backlogs with Epics and implementation tickets. When Claude needs to: (1) Create Jira tickets from a Confluence page, (2) Generate a backlog from a specification, (3) Break down a spec into implementation tasks, or (4) Convert requirements into Jira issues. Handles reading Confluence pages, analyzing specifications, creating Epics with proper structure, and generating detailed implementation tickets linked to the Epic.