Skip to content

Releases: sooperset/mcp-atlassian

v0.11.1

19 May 15:09
b6d23df
Compare
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
Compare
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

v0.10.6

11 May 16:11
bcad8e8
Compare
Choose a tag to compare

This release enhances the OAuth 2.0 authentication experience with improved detection logic and comprehensive documentation.

🔐 OAuth Improvements

  • Better OAuth Detection: Fixed configuration detection to properly recognize and prioritize OAuth 2.0 when all required environment variables (including ATLASSIAN_OAUTH_CLOUD_ID) are present. This ensures OAuth takes precedence over other authentication methods when fully configured. (#410, #412)

📚 Documentation

  • Comprehensive OAuth 2.0 Guide: Restored and significantly enhanced the OAuth setup documentation with:

    • Step-by-step instructions for creating an Atlassian OAuth app
    • Clear guidance for using the --oauth-setup wizard
    • Emphasis on the importance of the offline_access scope for refresh tokens
    • Updated IDE integration examples (Cursor, Claude Desktop) (#411, #414)
  • Docker OAuth Support: Added Docker-specific instructions for OAuth configuration, including token persistence via volume mounting:

    docker run --rm -i \
      -p 8080:8080 \
      -v "${HOME}/.mcp-atlassian:/home/app/.mcp-atlassian" \
      ghcr.io/sooperset/mcp-atlassian:latest --oauth-setup -v

    This ensures OAuth tokens stored in ~/.mcp-atlassian persist across container runs. (#413)

  • Configuration Clarity: Reorganized authentication methods in .env.example for better readability and understanding. (#414, #415)

Full Changelog: v0.10.5...v0.10.6

v0.10.5

10 May 06:11
29e3d1b
Compare
Choose a tag to compare

This release improves client compatibility and updates core dependencies for better stability with the latest FastMCP framework.

🐞 Fixed

  • Better Client Compatibility: Fixed how optional parameters are handled in Jira and Confluence tools to work smoothly with different MCP clients like Cursor IDE. Empty default values are now properly managed, addressing issues reported in #389. (#407)
  • FastMCP 2.3.1 Support: Updated type hints to prevent "Context is not subscriptable" errors with the latest FastMCP version. (#408)

⚙️ Dependencies

  • Updated fastmcp dependency to 2.3.x series for latest improvements and stability

Full Changelog: v0.10.4...v0.10.5

v0.10.4

09 May 18:32
a297149
Compare
Choose a tag to compare

v0.10.4

This release enhances OAuth 2.0 stability, adds a Jira user profile tool, and improves Confluence tool compatibility.

🎉 Features

  • Jira User Profile Tool (jira_get_user_profile): New tool to retrieve Jira user details (name, email, avatar) using various identifiers (accountId, username, email). Enables better user-related automations. (#396)
  • Enhanced OAuth 2.0 Stability (offline_access Scope): Added offline_access scope to OAuth configurations to enable refresh tokens and prevent authentication failures. Includes improved validation and UI in setup scripts. (#381)

🐞 Fixed

  • Confluence Tool Client Compatibility: Fixed optional string parameters handling in Confluence tools when None is passed. Parameters now properly default to empty strings for better compatibility. (#389)
  • OAuth Authorization Flow: Fixed "501 Unsupported method" errors during OAuth callbacks, improved logging for easier troubleshooting, and added better handling of extraneous requests. (#402)

📄 Documentation & Security

  • OAuth Documentation: Temporarily hidden OAuth 2.0 setup guide pending validation in Docker environments. (#404)
  • Jira Tool Descriptions: Updated README with the new jira_get_user_profile tool and clarified input format for assignee parameter in Jira issue tools. (#391, #395)
  • Security Guidance: Added advice on client secret handling during OAuth setup.

Full Changelog: v0.10.3...v0.10.4

v0.10.3

06 May 14:19
f2cdab8
Compare
Choose a tag to compare

This release introduces proxy support and addresses a critical compatibility issue encountered when running the server via uvx.

🎉 Added

  • Proxy Support: Added support for routing Jira and Confluence API requests through HTTP/S and SOCKS proxies. Configure proxies using standard environment variables (HTTP_PROXY, HTTPS_PROXY, SOCKS_PROXY, NO_PROXY) or service-specific overrides (e.g., JIRA_HTTPS_PROXY, CONFLUENCE_NO_PROXY). Refer to the README and .env.example for detailed configuration instructions. (#260, #361)

🐞 Fixed

  • uvx Compatibility Fix: Resolved the "Context is not available outside of a request" error that occurred when running uvx mcp-atlassian@latest due to incompatibility with fastmcp>=2.2.8. Pinned the fastmcp dependency to <2.2.8 to ensure compatibility with the latest mcp-atlassian release when installed via uvx. (#383, #384)

Note: This release pins the fastmcp version to address the immediate compatibility issue. Future releases will aim to update the code for compatibility with the latest fastmcp versions.

Full Changelog: v0.10.2...v0.10.3

v0.10.2

05 May 15:38
246021f
Compare
Choose a tag to compare

🐞 Fixes

  • SSE Docker Network Fix: Modified the SSE server to bind to "0.0.0.0" instead of the default localhost, allowing connections from any network interface when running in Docker containers. (#378)

Full Changelog: v0.10.1...v0.10.2

v0.10.1

05 May 08:29
ffe7947
Compare
Choose a tag to compare

🐞 Fixes

  • Restore Health Check Endpoint: This release fixes a regression introduced in v0.10.0 where the /healthz endpoint (added to fix #359) was accidentally removed during the FastMCP v2 migration (#371). The /healthz endpoint is now correctly available again for Kubernetes health probes when using the SSE transport. (#375)

Full Changelog: v0.10.0...v0.10.1

v0.10.0

05 May 07:36
d8496ac
Compare
Choose a tag to compare

This release introduces OAuth 2.0 support for Atlassian Cloud, migrates the server backend to FastMCP v2, and significantly improves Jira Cloud search functionality.

✨ Highlights

  • OAuth 2.0 for Cloud: Added secure OAuth 2.0 authentication for Jira/Confluence Cloud, including an interactive setup wizard (uvx mcp-atlassian --oauth-setup). (#365, Fixes #238)
  • FastMCP v2 Migration: Updated the core server to use the modern FastMCP framework for improved structure and performance. (#371)
  • Jira Cloud Search Fixes:
    • Correctly reports the total issue count in search results. (#360, Refs #333)
    • Allows retrieving more than 50 issues per search request. (#369)
  • SSE Health Check: Added a /healthz endpoint for Kubernetes probes when using SSE transport. (#366, Fixes #359)
  • Tool Removals: Removed jira_get_epic_issues and confluence_get_page_ancestors tools (use search tools instead). (#372)
  • Docker Optimizations: Reduced image size. (#367)
  • Internal: Consolidated linting/typing configurations into pyproject.toml. (#368)

New Contributors

Full Changelog: v0.9.0...v0.10.0

v0.9.0

01 May 14:06
cdc98c6
Compare
Choose a tag to compare

What's Changed

  • Support on-prem servers by @msabramo in #350
  • feat: add support for getting and adding labels for Confluence pages by @mroeckl in #328
  • Refactor: improve code quality and clean up technical debt by @cutekibry in #345
  • Feat: add batch get changelogs by @cutekibry in #346
  • fix(jira): Use enhanced_jql for Cloud searches and fix startAt TypeError by @sooperset in #356
  • feat: Add enabled tools flag and environment variable to filter avail… by @rlcurrall in #354
  • fix(jira): Fix labels not added during issue creation by @sooperset in #357

New Contributors

Full Changelog: v0.8.4...v0.9.0