Labsco
InfraMCP logo

Atlassian-mcp-server

β˜… 4

from InfraMCP

MCP server for Atlassian Cloud (Confluence & Jira) with seamless OAuth 2.0 authentication.

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredAdvanced setup

Atlassian MCP Server

PyPI version Python Support License: MIT Code Quality Dependency Security

MCP server for Atlassian Cloud (Confluence & Jira) with seamless OAuth 2.0 authentication. This server enables AI agents to help users document work in Confluence, manage Jira issues, and understand project context.

Features

  • Seamless OAuth 2.0 Flow: Automatic browser-based authentication with PKCE security
  • Modular Architecture: Specialized client classes for Jira, Confluence, and Service Desk operations
  • Selective Module Loading: Configure which modules to load using environment variables
  • Jira Integration: Search, create, and update issues; add comments; manage work
  • Confluence Integration: Search and read content for context understanding
  • Service Management: Access support tickets and requests
  • Automatic Token Management: Handles token refresh automatically
  • Minimal Permissions: Follows least privilege principle with only required scopes

Architecture

The server uses a modular architecture with specialized client classes:

  • BaseAtlassianClient: Core OAuth 2.0 authentication and HTTP request handling
  • JiraClient: Jira-specific operations (issues, projects, comments)
  • ConfluenceClient: Confluence-specific operations (pages, spaces, search)
  • ServiceDeskClient: Service Management operations (requests, approvals, Assets CMDB)

Each module can be independently enabled/disabled for optimal performance and security.

Use Cases

This MCP server is designed to help AI agents assist users with:

  • Work Documentation: Help document work progress and decisions in Confluence
  • Issue Management: Create, update, and track Jira issues based on conversations
  • Context Understanding: Read Confluence pages to understand project background
  • Time & Activity Logging: Track work activities and time spent on tasks
  • Service Requests: Access service management tickets for support context
  • Project Coordination: Search across Jira and Confluence for project information

Authentication Flow

  1. Start the MCP server
  2. Use the authenticate_atlassian tool to begin OAuth flow
  3. Browser opens automatically to Atlassian login
  4. After authorization, authentication completes automatically
  5. Credentials are saved locally for future use

Available Tools

Authentication

  • authenticate_atlassian() - Start seamless OAuth authentication flow

Jira Operations

  • jira_search(jql, max_results=50) - Search issues with JQL
  • jira_get_issue(issue_key) - Get specific issue details
  • jira_create_issue(project_key, summary, description, issue_type="Task") - Create new issue
  • jira_update_issue(issue_key, summary=None, description=None) - Update existing issue
  • jira_add_comment(issue_key, comment) - Add comment to issue

Confluence Operations

Core Content Management

  • confluence_search(query, limit=10) - Search Confluence content
  • confluence_get_page(page_id) - Get specific page content
  • confluence_create_page(space_key, title, content, parent_id=None) - Create new Confluence page
  • confluence_update_page(page_id, title, content, version) - Update existing Confluence page

Space Management

  • confluence_list_spaces(limit=25, space_type=None, status="current") - List available spaces
  • confluence_get_space(space_id, include_icon=False) - Get detailed space information
  • confluence_get_space_pages(space_id, limit=25, status="current") - Get pages in a space

Enhanced Search & Discovery

  • confluence_search_content(query, limit=25, space_id=None) - Advanced content search
  • confluence_get_page_children(page_id, limit=25) - Get child pages

Comments & Collaboration

  • confluence_get_page_comments(page_id, limit=25) - Get page comments
  • confluence_add_comment(page_id, comment, parent_comment_id=None) - Add comment to page
  • confluence_get_comment(comment_id) - Get specific comment details

Labels & Organization

  • confluence_get_page_labels(page_id, limit=25) - Get labels for a page
  • confluence_search_by_label(label_id, limit=25) - Find pages with specific label
  • confluence_list_labels(limit=25, prefix=None) - List all available labels

Attachments

  • confluence_get_page_attachments(page_id, limit=25) - Get page attachments
  • confluence_get_attachment(attachment_id) - Get attachment details

Version History

  • confluence_get_page_versions(page_id, limit=25) - Get page version history
  • confluence_get_page_version(page_id, version_number) - Get specific page version

Service Management Operations

Discovery Tools (Essential for AI Agents)

  • servicedesk_check_availability() - Check if Jira Service Management is configured
  • servicedesk_list_service_desks(limit=50) - List available service desks for creating requests
  • servicedesk_get_service_desk(service_desk_id) - Get detailed service desk information
  • servicedesk_list_request_types(service_desk_id=None, limit=50) - List available request types
  • servicedesk_get_request_type(service_desk_id, request_type_id) - Get detailed request type information
  • servicedesk_get_request_type_fields(service_desk_id, request_type_id) - Get required/optional fields for request type

Request Management

  • servicedesk_get_requests(service_desk_id=None, limit=50) - Get service desk requests
  • servicedesk_get_request(issue_key) - Get specific service desk request details
  • servicedesk_create_request(service_desk_id, request_type_id, summary, description) - Create new service request
  • servicedesk_add_comment(issue_key, comment, public=True) - Add comment to service request
  • servicedesk_get_request_comments(issue_key, limit=50) - Get comments for a service request
  • servicedesk_get_request_status(issue_key) - Get service request status
  • servicedesk_get_request_transitions(issue_key) - Get available status transitions for request
  • servicedesk_transition_request(issue_key, transition_id, comment=None) - Transition request to new status

Approval & Participant Management

  • servicedesk_get_approvals(issue_key) - Get approval information for request
  • servicedesk_approve_request(issue_key, approval_id, decision) - Approve or decline request approval
  • servicedesk_get_participants(issue_key) - Get participants for request
  • servicedesk_add_participants(issue_key, usernames) - Add participants to request (with confirmation prompts)
  • servicedesk_manage_notifications(issue_key, subscribe) - Subscribe/unsubscribe from request notifications

Important: Granular Scopes for v2 API

This MCP server uses granular scopes for Confluence operations to ensure compatibility with Confluence v2 API endpoints. The v2 API provides better performance and future-proofing compared to the deprecated v1 REST API.

Granular vs Classic Scopes:

  • Granular (recommended): read:page:confluence, write:page:confluence - Works with v2 API
  • Classic (deprecated): read:confluence-content.all, write:confluence-content - Only works with v1 API

If you previously configured classic scopes, you'll need to update your OAuth app to use granular scopes and re-authenticate to get fresh tokens.

Supply Chain Security

This project implements comprehensive supply chain security measures:

Dependency Management

  • Pinned Versions: All dependencies use exact version pins to prevent unexpected updates
  • Security Scanning: Automated vulnerability scanning with Safety and pip-audit
  • Dependency Tracking: Complete dependency documentation in docs/DEPENDENCIES.md
  • Regular Updates: Weekly automated security checks via GitHub Actions

Security Tools

# Generate dependency report
python3 scripts/generate_dependency_report.py

# Check for vulnerabilities
pip3 install safety pip-audit
safety check
pip-audit

# Update dependencies safely
python3 scripts/update_dependencies.py

Files

  • requirements.txt - Pinned production dependencies
  • docs/DEPENDENCIES.md - Human-readable dependency report
  • docs/dependency-report.json - Machine-readable dependency data
  • SECURITY.md - Security policy and vulnerability response
  • .github/workflows/dependency-security.yml - Automated security checks

Development

The server is built using:

  • FastMCP: Modern MCP server framework
  • httpx: Async HTTP client
  • Pydantic: Data validation and settings management

License

MIT License - see LICENSE file for details.