atlassian-multi-mcp
by ntlongctt
README.md
# atlassian-multi-mcp
Multi-account Atlassian MCP server for Claude Code. Supports multiple Jira/Confluence workspaces simultaneously with automatic account routing by URL or issue key.
## Features
- **Multiple accounts** — configure as many Atlassian sites as needed
- **Auto-routing** — detects the correct account from issue key prefix (`RES-123` → radekwork), full URL, or alias
- **Full Jira coverage** — get/create/edit issues, comments, transitions, worklogs, links, search (JQL)
- **Full Confluence coverage** — pages, spaces, comments, search (CQL)
- **Account management tools** — add/remove/test accounts from within Claude
## Installation
### Via npx (recommended)
```bash
npx atlassian-multi-mcp
```
### Global install
```bash
npm install -g atlassian-multi-mcp
```
## Claude Code Setup
Add to your `~/.claude/settings.json` under `mcpServers`:
```json
{
"mcpServers": {
"atlassian": {
"command": "npx",
"args": ["-y", "atlassian-multi-mcp"]
}
}
}
```
Or as a Claude Code plugin:
```bash
claude plugin install ntlongctt/atlassian-multi-mcp
```
## Configure Accounts
After installing, use the `add_atlassian_account` tool in Claude:
```
add_atlassian_account:
alias: "radekwork"
site: "radekwork.atlassian.net"
email: "you@example.com"
token: "ATATT..."
projectPrefixes: "RES,RS"
isDefault: false
```
Or edit `~/.atlassian-accounts.json` directly:
```json
{
"accounts": [
{
"alias": "doneitbetter",
"site": "doneitbetter.atlassian.net",
"email": "you@doneitbetter.com",
"token": "ATATT...",
"projectPrefixes": ["DIB"],
"isDefault": true
},
{
"alias": "radekwork",
"site": "radekwork.atlassian.net",
"email": "you@radek.com",
"token": "ATATT...",
"projectPrefixes": ["RES", "RS", "SHIELD"]
}
]
}
```
Get API tokens at: https://id.atlassian.com/manage-profile/security/api-tokens
## Account Resolution
The server resolves which account to use in this order:
1. **Full URL** — `https://radekwork.atlassian.net/browse/RES-123` → radekwork account
2. **Issue key** — `RES-123` → lookup `RES` in `projectPrefixes` → radekwork account
3. **Alias** — `"radekwork"` → exact alias match
4. **Partial site** — `"radek"` → partial hostname match
5. **Default account** — `isDefault: true` in config
6. **Single account** — use it if only one configured
## Available Tools
### Account Management
| Tool | Description |
|------|-------------|
| `list_atlassian_accounts` | List all configured accounts |
| `add_atlassian_account` | Add a new account (tests connection) |
| `remove_atlassian_account` | Remove an account |
| `set_default_atlassian_account` | Set default account |
| `test_atlassian_connection` | Test credentials |
| `getAccessibleAtlassianResources` | List all sites (compatible with built-in Atlassian MCP) |
### Jira
| Tool | Description |
|------|-------------|
| `getJiraIssue` | Get issue by key or URL |
| `searchJiraIssuesUsingJql` | Search with JQL |
| `createJiraIssue` | Create issue |
| `editJiraIssue` | Edit issue fields |
| `addCommentToJiraIssue` | Add comment |
| `getTransitionsForJiraIssue` | Get workflow transitions |
| `transitionJiraIssue` | Move to new status |
| `getVisibleJiraProjects` | List projects |
| `getJiraProjectIssueTypesMetadata` | Get issue types |
| `getJiraIssueTypeMetaWithFields` | Get fields for issue type |
| `lookupJiraAccountId` | Search users |
| `getIssueLinkTypes` | Get link types |
| `createIssueLink` | Link two issues |
| `addWorklogToJiraIssue` | Log time |
| `getJiraIssueRemoteIssueLinks` | Get external links |
| `atlassianUserInfo` | Current user info |
### Confluence
| Tool | Description |
|------|-------------|
| `getConfluencePage` | Get page by ID |
| `createConfluencePage` | Create page |
| `updateConfluencePage` | Update page |
| `searchConfluenceUsingCql` | Search with CQL |
| `getConfluenceSpaces` | List spaces |
| `getPagesInConfluenceSpace` | List pages in space |
| `getConfluencePageDescendants` | Get child pages |
| `getConfluencePageFooterComments` | Get comments |
| `createConfluenceFooterComment` | Add comment |
| `getConfluencePageInlineComments` | Get inline comments |
| `createConfluenceInlineComment` | Add inline comment |
| `getConfluenceCommentChildren` | Get comment replies |
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues