Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Custom Atlassian

БесплатноНе проверен

A self-hosted MCP server that exposes Jira and Confluence Cloud to MCP clients, enabling issue tracking, search, creation, and Confluence page management via na

GitHubEmbed

Описание

A self-hosted MCP server that exposes Jira and Confluence Cloud to MCP clients, enabling issue tracking, search, creation, and Confluence page management via natural language.

README

A small, self-hosted Model Context Protocol server that exposes Jira and Confluence Cloud to any MCP-compatible client (Claude Code, Claude Desktop, GitHub Copilot Agents, etc.) over stdio.

Built as a lightweight alternative to the (currently unavailable) public Confluence MCP — one Atlassian site, one API token, no frameworks.

What you get

Jira

  • jira_search — run a JQL query, get a compact issue list
  • jira_get_issue — full issue with description and recent comments (ADF → text)
  • jira_add_comment — append a plain-text comment
  • jira_update_issue — edit summary, description, assignee, priority, labels
  • jira_create_issue — create issues, optionally linked to an epic or parent
  • jira_transition_issue — list transitions or move an issue through workflow
  • jira_list_sprints — list sprints for a Jira Software board (Agile API)
  • jira_add_issues_to_sprint — move issues into a sprint

Confluence

  • confluence_search — CQL search across spaces and pages
  • confluence_get_page — fetch a page as plain text or raw storage-format XHTML
  • confluence_create_page — create a page under a space (optionally under a parent)
  • confluence_update_page — update body/title; supports drafts and publishing

Requirements

Install

git clone https://github.com/shamshodisaev/custom-atlassian-mcp.git
cd custom-atlassian-mcp
npm install
npm run build

npm run build compiles TypeScript to dist/ and marks dist/index.js executable.

Configure

The server reads three environment variables:

Variable Example Description
ATLASSIAN_SITE your-org.atlassian.net Your Atlassian Cloud host (no protocol, no trailing slash)
ATLASSIAN_EMAIL [email protected] Email of the account that owns the API token
ATLASSIAN_API_TOKEN ATATT3x… API token from the Atlassian profile page

For local runs you can copy .env.example to .env and fill it in — but the MCP server itself does not load .env automatically. Either export the vars in your shell, launch the server via node --env-file=.env dist/index.js, or pass them through your MCP client's config (see below).

Wire it into an MCP client

Claude Code

Add an entry to your Claude Code MCP config (typically ~/.claude.json under mcpServers, or via claude mcp add):

{
  "mcpServers": {
    "atlassian": {
      "command": "node",
      "args": ["/absolute/path/to/custom-atlassian-mcp/dist/index.js"],
      "env": {
        "ATLASSIAN_SITE": "your-org.atlassian.net",
        "ATLASSIAN_EMAIL": "[email protected]",
        "ATLASSIAN_API_TOKEN": "ATATT3x..."
      }
    }
  }
}

Restart Claude Code — the atlassian server should appear in /mcp and its tools will be available as mcp__atlassian__jira_search, etc.

Claude Desktop

Add the same block to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the equivalent on Windows/Linux.

Any other MCP client

Any client that can launch an stdio MCP server can use it — point it at node /absolute/path/to/dist/index.js with the three env vars set.

Run standalone (for smoke testing)

export ATLASSIAN_SITE=your-org.atlassian.net
export [email protected]
export ATLASSIAN_API_TOKEN=ATATT3x...
npm start

The server communicates over stdio, so it will look idle — that's expected. It's meant to be spawned by an MCP client, not talked to by hand. To exercise it interactively use the MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Tool details

Jira

jira_search

Search issues via JQL. Returns a compact summary per issue plus paging info.

Args

  • jql (string, required) — JQL query, e.g. project = ABC AND status = "In Progress"
  • maxResults (number, 1–100, default 25)
  • fields (string[], optional) — extra field names beyond the default summary set
jira_get_issue

Fetch a single issue with description and recent comments (ADF converted to text).

Args

  • key (string, required) — e.g. ABC-123
  • includeComments (boolean, default true)
jira_add_comment

Append a plain-text comment. The text is wrapped into a single ADF paragraph.

Args

  • key (string, required)
  • body (string, required)
jira_update_issue

Update editable fields. Only provided fields are changed.

Args

  • key (string, required)
  • summary, description, priority (strings, optional)
  • assigneeAccountId (string, optional; use "unassigned" to clear)
  • labels (string[], optional — replaces existing labels)
jira_create_issue

Create a new issue. Description text is converted to ADF.

Args

  • projectKey (string, required), summary (string, required)
  • issueType (string, default Task)
  • description, assigneeAccountId, priority (strings, optional)
  • labels (string[], optional)
  • epicKey (string, optional) — sets Epic Link via customfield_10014 (company-managed projects)
  • parentKey (string, optional) — sets parent (team-managed projects, sub-tasks)
jira_transition_issue

Omit transition to list available transitions; supply it (by id or name) to apply one.

Args

  • key (string, required)
  • transition (string, optional)
jira_list_sprints

List sprints for a Jira Software board (Agile API).

Args

  • boardId (string or number, required)
  • state (active | future | closed, optional)
jira_add_issues_to_sprint

Move issues into a sprint (Agile API).

Args

  • sprintId (string or number, required)
  • issueKeys (string[], required, min 1)

Confluence

confluence_search

Search content with CQL, e.g. space = ENG AND title ~ "onboarding".

Args

  • cql (string, required)
  • limit (number, 1–50, default 15)
confluence_get_page

Fetch a page by id.

Args

  • pageId (string, required)
  • format (text (default) | storage) — text strips HTML; storage returns raw XHTML
confluence_create_page

Create a page under a space. The body is treated as Confluence storage-format XHTML — pass HTML-like markup, not markdown. Plain text is accepted and wrapped in <p>.

Args

  • spaceKey (string, required) — resolved to a spaceId internally
  • title (string, required)
  • body (string, required)
  • parentId (string, optional)
confluence_update_page

Update a page's body (and optionally title/status). Drafts stay at version 1 per Confluence's rules; pass status: "current" to publish a draft.

Args

  • pageId (string, required)
  • body (string, required)
  • title (string, optional)
  • status (draft | current, optional)

Project layout

src/
  index.ts             # stdio entrypoint, wires the server + tools
  client.ts            # thin fetch wrapper with Basic auth + typed errors
  adf.ts               # tiny ADF <-> plain-text converter
  tools/
    jira.ts            # jira_* tool registrations
    confluence.ts      # confluence_* tool registrations

Development

npm run dev    # tsc --watch
npm run build  # compile once, chmod +x dist/index.js
npm start      # node dist/index.js (needs env vars set)

The MCP server is written against the official @modelcontextprotocol/sdk. Every tool is registered with a Zod schema — argument validation and the tool manifest come from the same source.

Security notes

  • API tokens are as powerful as your account — treat them like passwords.
  • The included .gitignore blocks .env; keep it that way.
  • All requests go directly from the server process to your Atlassian site over HTTPS with HTTP Basic auth (email:token base64-encoded). Nothing is proxied or logged.

License

No license granted. This is a personal utility — fork it if you want to use or modify it.

from github.com/shamshodisaev/custom-atlassian-mcp

Установка Custom Atlassian

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/shamshodisaev/custom-atlassian-mcp

FAQ

Custom Atlassian MCP бесплатный?

Да, Custom Atlassian MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Custom Atlassian?

Нет, Custom Atlassian работает без API-ключей и переменных окружения.

Custom Atlassian — hosted или self-hosted?

Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.

Как установить Custom Atlassian в Claude Desktop, Claude Code или Cursor?

Открой Custom Atlassian на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Custom Atlassian with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории productivity