Skip to content

Releases: sooperset/mcp-atlassian

v0.11.9

29 Jun 14:00
3b07fd3

Choose a tag to compare

This release enhances corporate environment support, improves OAuth authentication reliability, and fixes critical issues with Jira Epic creation and Confluence API operations.

✨ Features

  • Custom HTTP Headers Support: Configure additional HTTP headers for Jira and Confluence API requests via environment variables, enabling usage in corporate environments requiring authentication, routing, or security headers (#570)

🐛 Fixed

  • Multi-Cloud OAuth User Lookups: Fixed user account lookups in Jira Cloud OAuth mode by correctly identifying OAuth instances as Cloud and using accountId parameter instead of username (#581)
  • Confluence OAuth v2 API: Added v2 API support for confluence_get_page to fix deprecated endpoint errors when using OAuth authentication (#579)
  • JQL Project Filter Syntax: Fixed invalid JQL syntax when using JIRA_PROJECTS_FILTER with empty queries or ORDER BY clauses (#578)
  • Confluence Preprocessor Memory: Eliminated circular reference between ConfluenceClient and ConfluencePreprocessor preventing proper garbage collection (#574)
  • Jira Epic Creation: Handle required Epic Name fields during initial creation instead of post-creation update, with caching for improved performance (#568)

⚙️ Internal

  • Added performance optimization through field requirement caching for bulk Epic operations (#568)
  • Improved test coverage for OAuth flows and protocol compliance (#579, #581)

New Contributors

Full Changelog: v0.11.8...v0.11.9

v0.11.8

25 Jun 09:56
67393f5

Choose a tag to compare

This release introduces OAuth multi-cloud support, enhances Jira functionality, and fixes critical authentication and query issues.

✨ Features

  • OAuth Multi-Cloud Support: Connect to different Atlassian Cloud instances through a single server using X-Atlassian-Cloud-Id header and per-request authentication (#471)
  • Bring Your Own Token OAuth: Support externally managed OAuth tokens via ATLASSIAN_OAUTH_ACCESS_TOKEN environment variable (#482)
  • Jira Remote Issue Links: New jira_create_remote_issue_link tool for creating web and Confluence links (#542)
  • Markdown-to-Jira Conversion: Automatic formatting conversion for issue descriptions in create/update operations (#538)

🐛 Fixed

  • Multi-Cloud OAuth URLs: Fixed api.atlassian.com recognition for email-based user lookups (#561)
  • JQL Reserved Keywords: Quote project names to handle reserved keywords like "AND", "OR" (#553)
  • Confluence PAT Auth: Changed auth type from "token" to "pat" for consistency. BREAKING: Update existing configs (#549)
  • Localized Issue Types: Handle non-English Jira instances for Epic/Subtask validation (#545)
  • Issue Unassignment: Allow setting assignee to None to unassign issues (#540)
  • Dependency Stability: Pin markdown-to-confluence <0.4.0 and add version bounds (#558)

⚙️ Internal

  • Standardized parameter types to use str | None instead of empty string workarounds (#515)
  • Removed deprecated decorator usage (#546)

New Contributors

Full Changelog: v0.11.7...v0.11.8

v0.11.7

19 Jun 16:05
c71b45c

Choose a tag to compare

This release addresses critical compatibility issues affecting Windows environments, Jira Server status transitions, and Confluence page operations with numeric IDs. These fixes enhance cross-platform stability and improve LLM client integration.

🐛 Fixed

Windows Server Shutdown Stability: Resolved "ValueError: I/O operation on closed file" errors that occurred during server shutdown, particularly affecting Windows environments and Claude Desktop integration. The fix gracefully handles cases where parent processes close stdio pipes before the cleanup phase completes, ensuring clean exits without crashes (#532)

Jira Status Transitions: Fixed Method Resolution Order (MRO) conflict that prevented status updates on Jira Server/Data Center instances. The issue manifested as empty transition lists in error messages despite available transitions. The fix properly integrates TransitionsMixin methods and provides clear feedback about available status transitions (#455)

Confluence Numeric Parent IDs: Enhanced Confluence page operations to automatically handle numeric parent IDs sent by LLM clients (particularly Gemini). The API now seamlessly accepts both integer and string formats for parent_id parameters in create and update operations, preventing type validation failures (#452)

⚙️ Internal

Enhanced Error Handling: Improved robustness in the shutdown sequence with comprehensive exception handling for various stream states, including closed streams, missing attributes, and flush failures (#533)

Test Coverage: Added extensive test cases for edge conditions in stream handling during shutdown, ensuring reliability across different operating systems and process termination scenarios

Full Changelog: v0.11.6...v0.11.7

v0.11.6

18 Jun 16:45
4ab34c7

Choose a tag to compare

This release adds native wiki markup support for Confluence page operations and simplifies the transport lifecycle testing infrastructure following the previous stdin monitoring fixes.

✨ Features

Wiki Markup Support for Confluence: Added comprehensive support for creating and updating Confluence pages using native wiki markup syntax and storage format. This enhancement enables users to leverage Confluence-specific features like {toc}, {panel}, and {change-history} macros that were previously unavailable with Markdown-only support. The implementation includes:

  • New content_format parameter for confluence_create_page and confluence_update_page tools
  • Support for three formats: 'markdown' (default), 'wiki', and 'storage'
  • Proper handling of representation parameter for both v1 and v2 Confluence APIs
  • Full backward compatibility with existing Markdown-based workflows (#526)

⚙️ Internal

Transport Lifecycle Test Simplification: Refactored the transport lifecycle test suite to align with the simplified architecture introduced in v0.11.5. After removing the problematic stdin monitoring functionality, all transports now behave identically, allowing for a cleaner and more maintainable test structure. The refactoring consolidates redundant tests while maintaining full regression coverage for issues #519 and #524 (#529)

Full Changelog: v0.11.5...v0.11.6

v0.11.5

18 Jun 10:59
de559ab

Choose a tag to compare

This release fixes a critical issue affecting streamable-http transport where sessions were terminated immediately after initialization, preventing subsequent API calls in containerized environments.

🐛 Fixed

Streamable-HTTP Session Management: Resolved session termination issue where HTTP transports (SSE and streamable-http) incorrectly used stdin monitoring, causing premature shutdown when clients closed their stdin. This prevented the initialize → tools/list flow from working correctly, with sessions being terminated and returning "Received request before initialization was complete" errors. The fix ensures HTTP transports rely solely on OS signals for shutdown while stdio transport continues to work correctly (#524)

🧪 Testing

Transport Lifecycle Test Suite: Added comprehensive test coverage for transport lifecycle behavior to prevent regression of stdin monitoring issues. The new tests verify that stdio transport correctly bypasses lifecycle monitoring while HTTP transports (SSE, streamable-http) use proper signal-based shutdown. These tests would have caught both issue #519 and #524 before shipping by detecting the race condition between MCP's stdio handler and lifecycle monitoring (#523)

⚙️ Internal

Removed Flawed Lifecycle Function: Completely removed the run_with_stdio_monitoring function that was the root cause of both this issue and the previous stdio transport issue (#519). This function was fundamentally incompatible with MCP's architecture as it conflicted with the protocol's own use of stdin for communication. After the fixes in v0.11.4 and this release, the function was dead code and has been removed to prevent future issues.

Full Changelog: v0.11.4...v0.11.5

v0.11.4

18 Jun 04:40
4896761

Choose a tag to compare

This release fixes a critical regression introduced in v0.11.3 that prevented the MCP Atlassian server from starting when using stdio transport in Docker containers.

🐛 Fixed

Docker stdio transport compatibility: Resolved a race condition where the lifecycle monitoring introduced in v0.11.3 conflicted with the MCP server's internal stdio handling. This caused immediate startup failures with "I/O operation on closed file" errors when running in Docker containers. The fix disables stdin monitoring for stdio transport while preserving the enhanced lifecycle management for SSE and HTTP transports (#522)

Full Changelog: v0.11.3...v0.11.4

v0.11.3

17 Jun 16:11
dbdb339

Choose a tag to compare

This release enhances Docker container integration with critical lifecycle management fixes, expands Jira project management capabilities with new version and project discovery tools, and strengthens the testing infrastructure with comprehensive integration tests.

✨ Features

Docker Lifecycle Management: Implemented comprehensive signal handling and stdin monitoring to ensure graceful shutdown in containerized environments. This critical enhancement resolves hanging container issues when using AI agent SDKs like OpenAI Agents SDK and Google ADK, which close stdin without sending proper shutdown signals (#514, #501)

Jira Project Discovery: Introduced the jira_get_all_projects tool to list all accessible Jira projects with optional archived project inclusion. The tool respects the JIRA_PROJECTS_FILTER configuration and returns comprehensive project metadata including keys, names, and project details (#493)

Jira Version Management: Added two new tools for managing project versions:

  • jira_create_version - Create individual project versions with optional metadata (#472)
  • jira_batch_create_versions - Efficiently create multiple versions in a single operation with partial failure handling (#473)

Confluence User Search: Introduced confluence_search_user tool with CQL query support for discovering Confluence users. Features automatic query conversion and comprehensive user data retrieval including account IDs, display names, and email addresses (#509)

Cloud Logging Compatibility: Added MCP_LOGGING_STDOUT environment variable to direct logs to stdout instead of stderr, resolving cloud platform logging categorization issues where DEBUG/INFO messages were incorrectly flagged as errors (#494)

Integration Testing Suite: Implemented comprehensive integration testing infrastructure with 127+ tests covering authentication flows, cross-service operations, SSL/proxy configurations, and real API validation. Includes --use-real-data flag for testing against live APIs (#517)

🐞 Fixed

Confluence OAuth v2 API Support: Resolved "This deprecated endpoint has been removed" errors by implementing ConfluenceV2Adapter for OAuth authentication. The fix automatically routes OAuth requests to v2 API endpoints while maintaining backward compatibility for API token and basic auth users (#496)

VertexAI Schema Compatibility: Fixed function calling incompatibility by removing unsupported anyOf schema constructs in the confluence_search tool's spaces_filter parameter. VertexAI users can now successfully use Confluence search functionality (#497)

Environment Variable Backward Compatibility: Preserved existing behavior while adding new functionality by splitting environment variable validation into specialized functions:

  • is_env_truthy() for standard MCP variables
  • is_env_extended_truthy() for READ_ONLY_MODE with extended values
  • is_env_ssl_verify() for SSL-specific logic (#516)

Confluence Content Preservation: Fixed styling corruption during page updates by disabling automatic heading anchor generation. Styled content including colored highlights and code blocks are now preserved during create/update operations (#498)

Consistent Project Security: Made jira_get_issue honor the JIRA_PROJECTS_FILTER configuration, ensuring direct issue access respects the same project restrictions as search operations (#485)

Enhanced Error Handling: Improved error handling and performance in the jira_get_all_projects tool with:

  • Structured error responses for authentication, network, and configuration failures
  • Optimized O(1) set-based project filtering instead of O(M) iteration
  • Comprehensive test coverage for edge cases (#512)

📚 Documentation

LLM Development Guidelines: Added comprehensive AGENTS.md (now CLAUDE.md) with detailed architecture overview, repository map, development workflow, and quick reference commands for LLM-driven development (#491)

Simplified Authentication: Reorganized authentication documentation to position API Token as the recommended default method, with OAuth 2.0 marked as advanced. Updated .env.example with clearer precedence order and improved new user guidance (#468)

⚙️ Internal

  • Test Infrastructure Refactoring: Complete overhaul achieving 75% test coverage with 49% reduction in test code complexity. Added reusable test utilities, factories, and comprehensive fixtures (#513)
  • Environment Variable Consolidation: Consolidated truthy checking logic into reusable utility functions following DRY principles (#505)
  • CI/CD Improvements: Updated publish workflow to use astral-sh/setup-uv@v3 action with caching enabled (#470)
  • Development Tooling: Updated .gitignore to exclude .claude/ directory and added stale bot workflow for automated issue/PR management (#492, #428)
  • Security Enhancements: Added secure credential masking in debug logs with get_masked_session_headers() utility (#497)

This release significantly improves container deployment reliability, expands project management capabilities, and establishes a robust foundation for future development with comprehensive testing and documentation enhancements.

New Contributors

Full Changelog: v0.11.2...v0.11.3

v0.11.2

30 May 15:38
dd66c31

Choose a tag to compare

This release enhances Jira functionality with issue link support and project version management, while streamlining the development workflow with automated versioning and improved authentication documentation.

✨ Features

Jira Issue Links Support: Added comprehensive support for the issuelinks field in Jira issues, enabling retrieval and representation of linked issues and their relationship types. This enhancement includes:

  • New Pydantic models: JiraIssueLinkType, JiraLinkedIssueFields, JiraLinkedIssue, and JiraIssueLink
  • Updated JiraIssue model to parse and include issue links from API responses
  • Issue links are now included in to_simplified_dict output for better integration (#466)

Jira Project Versions Tool: Introduced the new jira_get_project_versions tool to retrieve and list project versions (Fix Versions/Releases) from Jira projects. This foundational feature enables more advanced release-related automations and workflows (#463)

Automated Release Workflow: Implemented automated versioning and release management using:

  • uv-dynamic-versioning for Git tag-based version management
  • GitHub Actions workflow for automated PyPI publishing
  • Eliminated manual version bumping for smoother CI/CD (#469)

🐞 Fixed

PAT Authentication for Jira Data Center: Corrected authentication logic to consistently use "pat" as the auth_type for Personal Access Token authentication with Jira Data Center instances. Previously, there was a mismatch between configuration and client behavior that led to authentication failures (#461)

📚 Documentation

Improved Authentication Guidance: Reorganized authentication methods documentation to prioritize API Token (Method 1) as the recommended default for Cloud users, with OAuth 2.0 positioned as an advanced option. Updated .env.example and improved new user onboarding experience (#468)

⚙️ Internal

  • CI/CD Improvements: Updated publish workflow to use astral-sh/setup-uv@v3 action for improved reliability and added caching (#470)
  • Enhanced Testing: Added comprehensive unit tests for the new issue link functionality and Jira project versions (#467)
  • Build Optimization: Simplified build and publish commands in the release workflow

This release strengthens mcp-atlassian's Jira integration capabilities while modernizing the development and release processes for better maintainability and user experience.

Full Changelog: v0.11.1...v0.11.2

v0.11.1

19 May 15:09
b6d23df

Choose a tag to compare

This is a hotfix release that addresses a critical bug affecting Jira write operations and improves the consistency of read-only mode handling across all tools.

🐞 Fixed

  • Jira Write Operations in Read-Only Mode: Fixed an AttributeError: 'JiraConfig' object has no attribute 'read_only' that occurred when attempting to use Jira write tools. This issue (reported in #434) was caused by recent authentication refactoring. The read_only check now correctly uses the global application context.
  • Standardized Read-Only Checks: All Jira and Confluence write-enabled tools now use a common @check_write_access decorator to manage read-only mode restrictions. This ensures consistent behavior and makes the codebase cleaner. (PR #438)

⚙️ Internal

  • Introduced a @check_write_access decorator in src/mcp_atlassian/utils/decorators.py for centralized read-only mode logic.
  • Refactored Jira and Confluence server tool definitions to utilize the new decorator, removing repetitive manual checks.
  • Added unit tests for the new decorator.

This fix ensures that the READ_ONLY_MODE environment variable correctly restricts write operations for both Jira and Confluence tools as intended.

Full Changelog: v0.11.0...v0.11.1

v0.11.0

17 May 16:30
cd69329

Choose a tag to compare

This release marks a significant step forward in flexibility and user-specific interactions with mcp-atlassian. Version 0.11.0 introduces robust multi-user authentication for HTTP transports, expands Confluence capabilities with a new commenting tool and improved page lookup, and addresses important macro processing issues.

✨ Highlights

  • Multi-User Authentication for HTTP Transports (OAuth & PAT):
    You can now run mcp-atlassian as a shared service where individual users authenticate their requests using their own OAuth 2.0 Bearer tokens (for Atlassian Cloud) or Personal Access Tokens (PATs for Server/Data Center). This means AI assistants can now operate with the specific permissions and context of the end-user, enhancing security and personalization. The server intelligently creates user-specific Jira and Confluence clients on-the-fly.

    • Supports Bearer <OAuth_Token> and Token <PAT> in the Authorization header.
    • Check out the updated README.md for detailed setup instructions. (#416, #341)
  • New confluence_add_comment Tool:
    Programmatically add comments to Confluence pages! This new tool allows AI agents and users to engage more dynamically with Confluence content. (#424, Fixes #276)

  • Enhanced confluence_get_page Tool:
    Finding Confluence pages is now more flexible. In addition to fetching by page_id, you can now retrieve pages using a combination of their title and space_key. This is particularly useful when the page ID isn't readily available. (#430)

🐞 Fixed

  • Confluence User Profile Macro Processing: Resolved an issue where Confluence User Profile Macros were not being interpreted correctly, leading to garbled text (like "falsefalsefullName") or raw macro tags in output. The preprocessor now correctly fetches user display names and replaces these macros, ensuring cleaner and more accurate content rendering. (#419, cf0897ed)

⚙️ Internal & Dependencies

  • Refactored server context and dependency injection for dynamic, user-specific client creation.
  • Updated core dependencies including fastmcp and mcp.
  • Added cachetools for potential future token validation caching.

📚 Documentation

  • Significantly updated README.md with comprehensive guides for setting up and utilizing the new multi-user authentication features (OAuth and PAT).
  • Added the new confluence_add_comment tool to the tools table in the README. (#431)

Full Changelog: v0.10.6...v0.11.0