Atlassian Node Server
FreeNot checkedProduction-ready MCP server for Atlassian Jira and Confluence, providing tools for issue management, page retrieval, and content operations.
About
Production-ready MCP server for Atlassian Jira and Confluence, providing tools for issue management, page retrieval, and content operations.
README
Production-ready MCP (Model Context Protocol) server for Atlassian Jira and Confluence built with Node.js + TypeScript.
Features
- Node 20+ TypeScript ESM server.
- MCP tools for generic Jira/Confluence proxy calls and high-level wrappers.
- Auth modes:
- Service-specific Basic auth via
JIRA_EMAIL+JIRA_API_TOKENandCONFLUENCE_EMAIL+CONFLUENCE_API_TOKEN. - Service-specific Bearer auth via
JIRA_BEARER_TOKENandCONFLUENCE_BEARER_TOKEN. - Global fallback auth via
ATLASSIAN_*when service-specific values are not provided.
- Service-specific Basic auth via
- Config validation with clear startup errors.
- HTTP layer powered by
undici:- retries with exponential backoff
- respects
Retry-After - request/response logging with token redaction
- configurable timeout (30s)
- max response size limit (10 MB)
- Security controls:
- base URL allowlist derived from config (SSRF prevention)
- path prefix validation for Jira/Confluence APIs
- optional TLS verification bypass for self-signed corporate cert chains (
SSL_VERIFY=false)
- Confluence normalization helpers:
- plain text extraction from storage HTML
- normalized document object with metadata and attachments
Requirements
- Node.js
>=20 - npm
Install
npm i
Configuration
Copy .env.example and set values:
ATLASSIAN_SITE=https://company.atlassian.net
JIRA_BASE_URL=https://jira.company.internal
JIRA_API_VERSION=2
CONFLUENCE_BASE_URL=https://wiki.company.internal
CONFLUENCE_API_PREFIX=/rest/api
# Optional global fallback auth
[email protected]
ATLASSIAN_API_TOKEN=global_fallback_token
ATLASSIAN_BEARER_TOKEN=
# Jira auth
[email protected]
JIRA_API_TOKEN=jira_api_token
JIRA_BEARER_TOKEN=
# Confluence auth
[email protected]
CONFLUENCE_API_TOKEN=confluence_api_token
CONFLUENCE_BEARER_TOKEN=
SSL_VERIFY=true
USER_AGENT=jira-mcp
Environment variables
ATLASSIAN_SITE(required): base site URL, e.g.https://company.atlassian.netJIRA_BASE_URL(optional): defaults toATLASSIAN_SITEJIRA_API_VERSION(optional,2/3, default2): Jira REST API version used by Jira tools and relativejira_requestpathsCONFLUENCE_BASE_URL(optional): defaults toATLASSIAN_SITECONFLUENCE_API_PREFIX(optional): Confluence REST prefix.- Cloud default:
/wiki/rest/api - Server/Data Center default:
/rest/api - Custom context path example:
/confluence/rest/api
- Cloud default:
JIRA_BEARER_TOKEN(optional): Jira Bearer token, takes precedence for Jira requestsCONFLUENCE_BEARER_TOKEN(optional): Confluence Bearer token, takes precedence for Confluence requestsJIRA_EMAIL(optional): Jira Basic auth emailJIRA_API_TOKEN(optional): Jira Basic auth tokenCONFLUENCE_EMAIL(optional): Confluence Basic auth emailCONFLUENCE_API_TOKEN(optional): Confluence Basic auth tokenATLASSIAN_BEARER_TOKEN(optional): global Bearer fallback for any service without service-specific bearer tokenATLASSIAN_EMAIL(optional): global Basic auth email fallbackATLASSIAN_API_TOKEN(optional): global Basic auth token fallbackSSL_VERIFY(optional,true/false, defaulttrue)USER_AGENT(optional, defaultjira-mcp)
Run
Development:
npm run dev
Build:
npm run build
Start built server:
npm start
Manual smoke test (direct API calls):
npm run build
npm run manual:test
MCP Tools
Generic proxy tools
jira_requestconfluence_request
jira_request uses JIRA_API_VERSION when apiVersion is not provided.
Both return:
{
"status": 200,
"headers": {
"content-type": "application/json"
},
"body": {}
}
Jira tools
jira_search_issuesjira_get_issuejira_get_projectjira_list_projectsjira_get_transitionsjira_transition_issuejira_add_commentjira_get_usersjira_download_attachment
jira_download_attachment:
- input:
attachmentId, optionalmode(base64orfile) - output always uses
{ status, headers, body }; for non-2xx Jira responses it still returns this shape with error details inbody
Confluence tools
confluence_get_pageconfluence_searchconfluence_get_childrenconfluence_get_page_contentconfluence_get_attachmentsconfluence_download_attachment
confluence_get_page_content returns:
- original Confluence page payload
- normalized
document
{
"id": "12345",
"title": "Page Title",
"url": "https://company.atlassian.net/wiki/spaces/ENG/pages/12345/Page+Title",
"spaceKey": "ENG",
"updatedAt": "2025-01-01T12:00:00.000Z",
"text": "Plain text extracted from storage HTML",
"html": "<p>Original storage HTML</p>",
"breadcrumbs": ["Parent", "Child"],
"labels": ["runbook"],
"attachments": [
{
"id": "att-1",
"title": "diagram.png",
"mediaType": "image/png",
"fileSize": 10240,
"downloadUrl": "https://company.atlassian.net/wiki/download/attachments/..."
}
]
}
Authentication examples
Different servers, different tokens:
JIRA_BASE_URL=https://jira.company.internal
JIRA_API_VERSION=2
CONFLUENCE_BASE_URL=https://wiki.company.internal
CONFLUENCE_API_PREFIX=/rest/api
JIRA_BEARER_TOKEN=jira_bearer_token
CONFLUENCE_BEARER_TOKEN=confluence_bearer_token
Different Basic tokens:
[email protected]
JIRA_API_TOKEN=jira_api_token
[email protected]
CONFLUENCE_API_TOKEN=confluence_api_token
Global fallback for both services:
[email protected]
ATLASSIAN_API_TOKEN=global_api_token
# or
ATLASSIAN_BEARER_TOKEN=global_bearer_token
Corporate proxy / self-signed cert support
To disable TLS certificate verification explicitly:
SSL_VERIFY=false
Default is secure verification (SSL_VERIFY=true).
Notes
- Tokens are never printed in logs.
- HTTP logs are emitted to
stderrso MCP stdio communication remains valid onstdout. - HTTP 3xx redirects are treated as errors (
HTTP_REDIRECT) to surface auth/login redirect issues explicitly. - If Confluence returns redirect to
login.actionwithfourohfour.action, setCONFLUENCE_API_PREFIXfor your deployment (commonly/rest/apifor Server/DC). - If official MCP SDK loading fails, a minimal JSON-RPC stdio adapter starts automatically.
How to add to cursor:
{
"mcpServers": {
"atlassian": {
"command": "node",
"args": ["/your/path/to/JIRA_MCP/dist/index.js"],
"env": {
"ATLASSIAN_SITE": "https://company.atlassian.net",
"JIRA_BASE_URL": "https://jira.company.internal",
"JIRA_API_VERSION": "2",
"CONFLUENCE_BASE_URL": "https://wiki.company.internal",
"CONFLUENCE_API_PREFIX": "/rest/api",
"JIRA_BEARER_TOKEN": "jira_token",
"CONFLUENCE_BEARER_TOKEN": "confluence_token",
"SSL_VERIFY": "true"
}
}
}
}
Publishing to npm
Имя пакета:
@alexbuzo/jira-mcp. Проверка:npm view @alexbuzo/jira-mcp.Вход в npm:
npm login(илиnpm login --registry=https://registry.npmjs.org/).Сборка перед публикацией выполняется автоматически скриптом
prepublishOnly(npm run build).Публикация (в
package.jsonзаданоpublishConfig.access: public):npm publishПри необходимости явно:
npm publish --access public.После публикации в Cursor через
npx:"command": "npx", "args": ["-y", "@alexbuzo/jira-mcp"], "env": { ... }
Или command: jira-mcp, если пакет установлен глобально (npm i -g @alexbuzo/jira-mcp — исполняемый файл по-прежнему называется jira-mcp).
Install Atlassian Node Server in Claude Desktop, Claude Code & Cursor
unyly install mcp-atlassian-node-serverInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add mcp-atlassian-node-server -- npx -y @alexbuzo/jira-mcpFAQ
Is Atlassian Node Server MCP free?
Yes, Atlassian Node Server MCP is free — one-click install via Unyly at no cost.
Does Atlassian Node Server need an API key?
No, Atlassian Node Server runs without API keys or environment variables.
Is Atlassian Node Server hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Atlassian Node Server in Claude Desktop, Claude Code or Cursor?
Open Atlassian Node Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Notion
Read and write pages in your workspace
by NotionLinear
Issues, cycles, triage — from Claude
by LinearGoogle Drive
Search and read your Drive files
by Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
by mindsdbCompare Atlassian Node Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All productivity MCPs
