Atlassian MCP Server
Provides tools for Bitbucket such as repository management, branches, commits, pull requests with comments and resolution, and issue tracking.
Provides tools for Confluence including searching, creating, reading, updating, and deleting pages, managing spaces, comments, attachments, labels, and version history.
Provides full Jira issue lifecycle management including CRUD, comments, transitions, attachments, worklogs, watchers, subtasks, labels, history, agile boards, sprints, versions, batch creation, dev status, epic linking, and user lookup.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Atlassian MCP Servercreate a new Jira bug in project PROJ"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🔗 Atlassian MCP Server
An MCP (Model Context Protocol) server that gives AI assistants full access to Jira, Confluence, and Bitbucket Cloud APIs -- 86 tools covering deep CRUD across all three products.
What It Does
This server acts as a bridge between any MCP-compatible AI client (Claude Desktop, etc.) and your Atlassian Cloud instance. Instead of switching between browser tabs, you ask your AI assistant to search Confluence, create Jira tickets, review pull requests, and more -- all through natural language.
Key Features
Confluence (20 tools) -- Search, create, read, update, and delete pages. Manage spaces, child pages, comments (full CRUD), attachments, labels, and version history. Input accepts Markdown (auto-converted to ADF); output is native ADF JSON.
Jira (49 tools) -- Full issue lifecycle: search, CRUD, comments, transitions, attachments, issue links, worklogs, watchers, subtasks, labels, history, agile boards, sprints (incl. moving issues into a sprint), versions, batch creation (up to 50 issues), dev status, epic linking, and user lookup.
Bitbucket (17 tools) -- Repository management, branches, commits, pull requests (create/update/list), PR comments with resolve/unresolve, and issue tracking.
Smart Field Handling -- AI-driven field suggestions during Jira transitions. Analyzes issue context to auto-suggest values for required fields (e.g., DB scripts, test cases), reducing manual input.
Snapshot Safety Net -- Automatic local snapshots of mutating operations (create/update/delete) with configurable retention, so you can recover from accidental changes.
Related MCP server: MCP Atlassian Server
Prerequisites
Node.js >= 18
Atlassian Cloud account(s) with API tokens
An MCP-compatible client (e.g., Claude Desktop)
Installation
From npm (recommended)
npm install -g @jagadeesh52423/atlassian-mcp-serverOr run without installing:
npx @jagadeesh52423/atlassian-mcp-serverFrom source
git clone https://github.com/jagadeeshpulamarasetti/atlassian-mcp-server.git
cd atlassian-mcp-server
npm install
npm run buildConfiguration
1. Set environment variables
Copy the template and fill in your credentials:
cp .env.example .env# Confluence
CONFLUENCE_DOMAIN=your-domain.atlassian.net
CONFLUENCE_EMAIL=your-email@example.com
CONFLUENCE_API_TOKEN=your-confluence-api-token
# Jira
JIRA_DOMAIN=your-domain.atlassian.net
JIRA_EMAIL=your-email@example.com
JIRA_API_TOKEN=your-jira-api-token
# Bitbucket
BITBUCKET_WORKSPACE=your-workspace
BITBUCKET_USERNAME=your-username
BITBUCKET_API_TOKEN=your-bitbucket-api-tokenYou can also set legacy ATLASSIAN_* variables as a fallback for Confluence and Jira. Bitbucket always requires its own credentials.
# Jira OAuth (advanced auth)
JIRA_CLIENT_ID=your-client-id
JIRA_CLIENT_SECRET=your-client-secret
# Snapshot safety net (defaults shown)
MCP_SNAPSHOTS_ENABLED=true
MCP_SNAPSHOT_DIR=~/.atlassian-mcp-snapshots
MCP_SNAPSHOT_RETENTION_DAYS=302. Get an API token
Go to Atlassian API Tokens
Click Create API token, give it a name, and copy the value
For Bitbucket, create a token under Personal settings > Access tokens with repo, issue, and PR scopes
Usage
Running the server
# Global install
atlassian-mcp-server
# From source
npm start
# Development (auto-reload)
npm run devClaude Desktop integration
Add one of the following to your Claude Desktop config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"atlassian": {
"command": "npx",
"args": ["-y", "@jagadeesh52423/atlassian-mcp-server"],
"env": {
"CONFLUENCE_DOMAIN": "your-domain.atlassian.net",
"CONFLUENCE_EMAIL": "your-email@example.com",
"CONFLUENCE_API_TOKEN": "your-token",
"JIRA_DOMAIN": "your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-token",
"BITBUCKET_WORKSPACE": "your-workspace",
"BITBUCKET_USERNAME": "your-username",
"BITBUCKET_API_TOKEN": "your-token"
}
}
}
}Global install:
{
"mcpServers": {
"atlassian": {
"command": "atlassian-mcp-server",
"env": { "..." : "same env vars as above" }
}
}
}From source:
{
"mcpServers": {
"atlassian": {
"command": "node",
"args": ["/path/to/atlassian-mcp-server/dist/index.js"]
}
}
}Available Tools
Confluence (20 tools)
Tool | Description |
| Search pages via CQL text query |
| Get a page by ID (returns ADF JSON body) |
| Create a page (accepts Markdown) |
| Update a page (accepts Markdown) |
| Delete a page |
| List all spaces |
| Get pages in a space |
| Get child pages |
| Get page version history |
| List page attachments |
| Upload an attachment |
| Delete an attachment |
| Get footer and/or inline comments (ADF JSON). |
| Add a comment (Markdown) |
| Update a comment (Markdown) |
| Delete a comment |
| Get page labels |
| Add labels to a page |
| Remove a label |
Jira (49 tools)
Category | Tools |
Core |
|
Comments |
|
Transitions |
|
Attachments |
|
Issue Links |
|
Worklogs |
|
Watchers |
|
Subtasks |
|
Labels |
|
History |
|
Agile |
|
Versions |
|
Batch/Dev |
|
Epic |
|
All Jira tools are prefixed with jira_.
Bitbucket (17 tools)
Tool | Description |
| List workspace repositories |
| Get repository details |
| Create a repository |
| List pull requests |
| Get a PR with diff |
| Create a pull request |
| Update a pull request |
| List branches |
| List commits |
| List repository issues |
| Create an issue |
| Get PR comments |
| Add a PR comment |
| Update a PR comment |
| Delete a PR comment |
| Mark a PR comment thread as resolved |
| Reopen (unresolve) a PR comment thread |
PR comment resolution (v1.3.0+)
bitbucket_resolve_pr_comment/bitbucket_unresolve_pr_commentuse Bitbucket's dedicated resolution sub-resource (POST/DELETE .../comments/{id}/resolve) and return the refreshed comment.Top-level comments only -- Bitbucket only allows resolving/unresolving top-level review comments, not replies. Calling these on a reply returns
Comment is not a top-level comment.Comments returned by
bitbucket_get_pr_comments,bitbucket_resolve_pr_comment, andbitbucket_unresolve_pr_commentnow include aresolvedboolean. When a comment is resolved, the single-comment responses also includeresolvedOn(ISO timestamp) andresolvedBy(display name); these resolution details are not present in the bulk list response.
Confluence Content Format (v1.2.0+)
Confluence pages and comments use ADF (Atlassian Document Format) natively:
Input --
create_page,update_page,add_comment,update_commentaccept Markdown, which the server converts to ADF using the official@atlaskit/editor-markdown-transformer.Output --
get_page,get_commentsreturn ADF JSON (an object, not a string).Comments --
get_commentsreturns both footer (page-level) and inline (text-anchored) comments by default. Use thecommentTypeparam (footer|inline|all, defaultall) to filter. Every comment carries atypefield ("footer"or"inline"). Inline comments additionally includeanchoredText(the highlighted page text the comment is attached to),resolutionStatus(e.g."open","resolved"),markerRef, andwebuiLink. Backwards-compatibility note: callers that previously relied onget_commentsreturning footer comments only will now also receive inline comments under the defaultall; passcommentType: "footer"to restore the old footer-only behaviour. The newtypefield is additive and does not remove any existing field.Inline images -- Not currently supported via ADF media nodes (requires Atlassian Media API tokens). Use
confluence_add_attachmentinstead.
Project Structure
src/
├── index.ts # Server entry point and tool routing
├── config.ts # Environment variable loading and validation
├── types.ts # TypeScript interfaces
├── constants.ts # Shared constants
├── error-handler.ts # Structured error responses
├── formatters/ # Markdown-to-ADF and ADF-to-text converters
├── clients/ # HTTP clients (one per Atlassian product)
├── services/ # Business logic for each product
│ └── jira/ # Jira sub-modules (agile, comments, transitions, etc.)
├── handlers/ # MCP request handlers
├── tools/ # MCP tool definitions (schemas)
├── registry/ # Tool dispatch registry
└── snapshot/ # Snapshot safety net (auto-backup before mutations)Security
Credentials are read from environment variables only; never committed to source control.
All API calls use HTTPS with Basic Auth (base64-encoded
email:token).Grant tokens the minimum required permissions.
Snapshots are stored locally in
~/.atlassian-mcp-snapshotsby default.
License
Links
Source: GitHub
Issues: GitHub Issues
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jagadeesh52423/ConfluenceMcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server