AT

Atlassian MCP Server for Jira and Confluence

Connect your AI agents to Jira and Confluence with an MCP server to query data and perform actions via the Model Context Protocol.

Quick Install
npx -y @phuc-nt/mcp-atlassian-server

Overview

This MCP (Model Context Protocol) server connects AI agents and tools to Atlassian Jira and Confluence. It implements the Model Context Protocol for exposing Atlassian actions and queries as machine-readable tools, so LLM agents can fetch issue data, run searches, or create and update Confluence pages in a standardized way.

By exposing Atlassian operations as tools, the server enables automation workflows such as summarizing tickets, generating release notes, triaging incoming issues, and creating meeting notes pages. Developers can run the server locally or in a container, configure access to their Jira/Confluence instances through API credentials, and register the server with an LLM that understands MCP tool endpoints.

Features

  • Exposes Jira and Confluence operations via MCP-compatible tool endpoints
  • Supports search and retrieval (issues, pages, attachments) and CRUD actions (create/update issues/pages)
  • Tool descriptions and parameter schemas follow the Protocol so LLMs can plan and invoke actions
  • Runs locally or in Docker for easy deployment
  • Configurable with environment variables for Atlassian site, credentials, and server options
  • Designed for integration with agent frameworks that support MCP / tools endpoints

Installation / Configuration

Prerequisites:

  • Node.js (recommended >= 16) OR Docker
  • Atlassian credentials: site URL, account email, and API token (Cloud) or appropriate credentials for server/DC

Clone and install:

git clone https://github.com/phuc-nt/mcp-atlassian-server.git
cd mcp-atlassian-server
npm install

Environment (example .env):

# Atlassian (Jira & Confluence)
ATLASSIAN_SITE=https://your-domain.atlassian.net
[email protected]
ATLASSIAN_API_TOKEN=your_api_token_here

# Server options
PORT=3000
MCP_BASE_PATH=/mcp/v1
LOG_LEVEL=info

Start the server (development):

npm run dev
# or
node src/index.js

Docker:

# Build
docker build -t mcp-atlassian-server .

# Run
docker run -d \
  -e ATLASSIAN_SITE=https://your-domain.atlassian.net \
  -e [email protected] \
  -e ATLASSIAN_API_TOKEN=your_api_token_here \
  -p 3000:3000 \
  mcp-atlassian-server

Docker Compose sample:

version: "3.8"
services:
  mcp-atlassian:
    image: mcp-atlassian-server:latest
    ports:
      - "3000:3000"
    environment:
      ATLASSIAN_SITE: https://your-domain.atlassian.net
      ATLASSIAN_EMAIL: [email protected]
      ATLASSIAN_API_TOKEN: your_api_token_here

Registering with an LLM/Agent:

  • Point your agent to the MCP server base URL (e.g., http://host:3000/mcp/v1)
  • The agent should fetch the tools list and tool schemas to determine available operations

Available Tools / Resources

The server exposes a set of tools that map common Jira and Confluence APIs. Example tools:

Tool namePurposeKey parameters
jira.searchRun JQL queries and return issue listsjql, maxResults, fields
jira.getIssueRetrieve a single issue by keyissueKey, fields
jira.createIssueCreate an issue in a projectprojectKey, summary, description, issuetype, fields
jira.transitionIssueMove issue through workflowissueKey, transitionId, comment
confluence.searchSearch Confluence contentcql, limit, expand
confluence.getPageRetrieve page content and metadatapageId, expand
confluence.createPageCreate a new Confluence pagespaceKey, title, body, parentId
confluence.updatePageUpdate an existing pagepageId, version, body, title
confluence.attachFileUpload an attachment to a pagepageId, filename, file (binary)

Endpoints (typical):

  • GET /mcp/v1/tools — list tools and metadata
  • POST /mcp/v1/tools/{toolName}/invoke — invoke a specific tool with JSON parameters

Example: list tools

curl http://localhost:3000/mcp/v1/tools

Example: invoke a search tool

curl -X POST http://localhost:3000/mcp/v1/tools/jira.search/invoke \
  -H "Content-Type: application/json" \
  -d '{"jql": "project = PROJ AND status = \"To Do\"", "maxResults": 10}'

Response payloads follow the Tool/Invocation schema (tool-dependent result objects).

Use Cases

  1. Generate release notes
  • Agent queries Jira with jql: project = XYZ AND fixVersion = "v1.2.0"
  • Fetches issues, groups by type, and composes release notes in Confluence by creating/updating a page.
  1. Auto-triage incoming issues
  • Agent periodically runs jira.search for newly created issues.
  • For each issue, it evaluates labels or components and invokes jira.transitionIssue or jira.createIssue to assign and set priority.
  1. Meeting notes and action items
  • After a meeting, an LLM summarizes