Releases: sooperset/mcp-atlassian
v0.11.1
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. Theread_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 insrc/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
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 runmcp-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. -
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 bypage_id
, you can now retrieve pages using a combination of theirtitle
andspace_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
andmcp
. - 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
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:
-
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
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
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): Addedoffline_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 forassignee
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
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 runninguvx mcp-atlassian@latest
due to incompatibility withfastmcp>=2.2.8
. Pinned thefastmcp
dependency to<2.2.8
to ensure compatibility with the latestmcp-atlassian
release when installed viauvx
. (#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
v0.10.1
🐞 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
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:
- SSE Health Check: Added a
/healthz
endpoint for Kubernetes probes when using SSE transport. (#366, Fixes #359) - Tool Removals: Removed
jira_get_epic_issues
andconfluence_get_page_ancestors
tools (usesearch
tools instead). (#372) - Docker Optimizations: Reduced image size. (#367)
- Internal: Consolidated linting/typing configurations into
pyproject.toml
. (#368)
New Contributors
- @swapnilsurdi made their first contribution in #369
- @zparnold made their first contribution in #365
Full Changelog: v0.9.0...v0.10.0
v0.9.0
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
- @msabramo made their first contribution in #350
- @mroeckl made their first contribution in #328
- @rlcurrall made their first contribution in #354
Full Changelog: v0.8.4...v0.9.0