Skip to main content
This guide covers IDE integration, environment variables, and advanced configuration options.

IDE Integration

Configuration File Locations

Basic Configuration (uvx)

Docker with Environment File

Server/Data Center Configuration

For mTLS, replace the personal token variables with client certificate variables. Use a combined certificate-and-private-key PEM in *_CLIENT_CERT, or use *_CLIENT_CERT and the matching *_CLIENT_KEY for separate files:
JIRA_CLIENT_CERT and CONFLUENCE_CLIENT_CERT can point to combined PEM files. If the private key is separate, set JIRA_CLIENT_KEY or CONFLUENCE_CLIENT_KEY as appropriate. Encrypted private keys aren’t supported by the requests library, so decrypt them before starting MCP Atlassian instead of setting JIRA_CLIENT_KEY_PASSWORD or CONFLUENCE_CLIENT_KEY_PASSWORD.

Single Service Configuration

Environment Variables

Connection Settings

Encrypted private keys are not supported. Setting JIRA_CLIENT_KEY_PASSWORD or CONFLUENCE_CLIENT_KEY_PASSWORD to a non-empty value will raise a configuration error at startup. Decrypt the key first:

Filtering Options

Jira Key Validation

Jira tools validate their issue_key / project_key arguments before calling the API. The defaults match the Cloud key format, which cannot be changed. On Server/Data Center the format is an instance setting (jira.projectkey.pattern), so widen these patterns if your instance allows keys the defaults reject — a leading digit, a single character, or lowercase. An invalid regex is ignored (a warning is logged) and the default is kept. Both are read once at startup.

Server Options

See .env.example for all available options.

HTTP Hardening

These optional safeguards are useful for protecting self-hosted Server/Data Center instances from runaway request loops. They are disabled by default.

Proxy Configuration

MCP Atlassian supports routing API requests through HTTP/HTTPS/SOCKS proxies, with optional PAC/WPAD auto-configuration. Service-specific variables override global ones. PAC/WPAD is opt-in and is only evaluated when no explicit proxy is configured for that service. PAC/WPAD support is provided by the optional wpad extra. Install it with pip install "mcp-atlassian[wpad]" or uv add "mcp-atlassian[wpad]" before enabling the feature. The published Docker image includes this extra.

Custom HTTP Headers

Add custom HTTP headers to all API requests. Useful in corporate environments. Format: Static custom headers use comma-separated key=value pairs. Passthrough headers use comma-separated header names.
Passthrough headers are request-scoped and only apply to HTTP transports. If a passthrough header name conflicts with a static custom header, the incoming request header value is used for that request. Only configure headers that are set by a trusted proxy or gateway. Clients can control any passthrough header they are allowed to send to the MCP endpoint. When external auth uses a client-supplied Jira or Confluence URL, configure MCP_ALLOWED_URL_DOMAINS; dynamic URLs are rejected without this allowlist so trusted session headers cannot be forwarded to an attacker-controlled host.
Header values are masked in debug logs for security.

Tool Filtering

Control which tools are available:
Command-line alternative:

Toolset Filtering

Toolsets provide group-level tool control. Instead of listing individual tool names, enable entire groups of related tools at once using the TOOLSETS environment variable.
Command-line alternative:
Core toolsets (included with TOOLSETS=default): jira_issues, jira_fields, jira_comments, jira_transitions, confluence_pages, confluence_comments The opt-in legacy toolset contains deprecated tools retained while users migrate to their replacement tools. Use TOOLSETS=legacy to expose only those tools, or combine it with another selection such as TOOLSETS=default,legacy. It is not included in TOOLSETS=default. When both TOOLSETS and ENABLED_TOOLS are set, they intersect — a tool must pass both filters. If TOOLSETS is not set, all toolsets are currently enabled.
In v0.22.0, the default will change from all toolsets to 6 core toolsets only. Set TOOLSETS=all explicitly to preserve current behavior.
Unknown toolset names are silently ignored. If all names are unknown, no tools are enabled (fail-closed behavior to prevent accidental exposure).
See Toolset Groups for the full list of available toolsets.