Atlassian MCP Infrastructure

Hardened, single-tenant Docker infrastructure for Jira and Confluence Cloudthrough Model Context Protocol clients.

This repository does not contain or fork an MCP application. It runs Docker'sdigest-pinned mcp/atlassian imagebehind a separate, authenticated, loopback-only proxy. The image is built byDocker from the MIT-licensedsooperset/mcp-atlassianproject. It is not an official Atlassian product.

Security boundary

flowchart LR
    Client[Trusted local MCP client] -->|Bearer token<br/>127.0.0.1:8000/mcp| Proxy[Unprivileged NGINX proxy]
    Proxy -->|Authorization stripped<br/>internal network| MCP[mcp/atlassian]
    MCP -->|HTTPS egress| Cloud[Jira and Confluence Cloud]
    MCP --> Workspace[(Explicit attachment workspace)]
    Proxy -. only .-> MCPSecret[MCP bearer secret]
    MCP -. only .-> AtlassianSecrets[Jira and Confluence tokens]

Only the proxy publishes a host port. The backend uses an internal network forproxy traffic and a separate network for Atlassian Cloud egress. Both servicesrun without root, Linux capabilities, writable root filesystems, or Dockersocket access.

Write tools are intentionally enabled. The proxy authenticates MCP clients butdoes not add approvals to Jira or Confluence operations. Use a dedicatedleast-privilege Atlassian service account, configure project and space filters,and require consequential-tool confirmation in the MCP client.

Quick start

Requirements are Linux, OpenSSL, Docker Engine, and Docker Compose.

  1. Initialize owner-only runtime files:

    scripts/bootstrap.sh
    
  2. Edit .env. Configure Jira Cloud, Confluence Cloud, or both. At least oneproduct needs its URL, service-account email, and matching token file:

    printf '%s' 'your-jira-api-token' >secrets/jira_api_token
    printf '%s' 'your-confluence-api-token' >secrets/confluence_api_token
    chmod 600 secrets/*_api_token
    

    Leave all variables and the corresponding token file empty to disable oneproduct. Set JIRA_PROJECTS_FILTER and CONFLUENCE_SPACES_FILTER beforestartup whenever the service account spans more content than clients need.

  3. Validate and start:

    scripts/validate-compose.sh
    docker compose up -d
    curl --fail http://127.0.0.1:8000/healthz
    
  4. Configure a Streamable HTTP MCP client forhttp://127.0.0.1:8000/mcp with:

    Authorization: Bearer <contents of secrets/mcp_api_token>
    

    The bearer token is generated once and is never printed by bootstrap.

The attachment tools can read and write only paths within the mountedworkspace/ directory. In tool arguments, use paths relative to the upstreamworking directory, such as workspace/report.pdf.

Operations

  • Health endpoint: http://127.0.0.1:${MCP_PORT:-8000}/healthz
  • MCP endpoint: http://127.0.0.1:${MCP_PORT:-8000}/mcp
  • Transport: Streamable HTTP
  • Tool selection: all upstream toolsets
  • Write mode: enabled by default
  • Public ingress: none

See the operations guide for rotation, upgrades,filtering, recovery, and read-only smoke validation. Architecture and trustdecisions are in architecture, and repository checksare in testing.

Development and Jenkins

scripts/ci-bootstrap.sh
scripts/validate-static.sh
scripts/test-native.sh
scripts/validate-compose.sh

JenkinsService consumes the same static and test commands from.jenkins/pipeline.yaml, adds mandatory Gitleaks and Trivy scans, and permitsnetwork access only during locked development dependency bootstrap.

License

Repository-authored infrastructure and documentation use the PolyFormNoncommercial License 1.0.0; see LICENSE. Third-party images retaintheir own licenses and are not redistributed or relicensed by this repository;see THIRD_PARTY_LICENSES.md.

Atlassian, Jira, and Confluence are trademarks of Atlassian and its affiliates.This project is independent and is not endorsed by Atlassian.

MCP Server · Populars

MCP Server · New

    DareDev256

    FCPXML MCP

    🎬 The first AI-powered MCP server for Final Cut Pro XML. Control your edits with natural language.

    Community DareDev256
    acunningham-ship-it

    Veil

    Stealth browser for AI agents — real Chrome over raw CDP, no Playwright/Puppeteer. TypeScript + MCP-native. Passes sannysoft 57/57, bypasses Cloudflare.

    Cassette-Editor

    Oh My Cassette: Chat Your Raw Clips Into a Finished Cut

    你的随身 AI 剪辑搭档 | Pocket AI co-editor for video montage — AI video editing plugin & MCP server for Claude Code, Codex, Hermes & OpenCode

    Community Cassette-Editor
    trendsmcp-ai

    Trends MCP

    MCP server for live trend data. Query Google Search, YouTube, TikTok, Reddit, Amazon, Wikipedia, News sentiment, Web Traffic, App Downloads, Steam, npm and more. Works with Claude, Cursor, VS Code, GitHub Copilot, ChatGPT, Windsurf, Cline, Raycast and any MCP-compatible.

    Community trendsmcp-ai
    jacob-bd

    Gemini Notebook (formerly Google NotebookLM) CLI & MCP Server

    Programmatic access to Gemini Notebook - via command-line interface (CLI), Model Context Protocol (MCP) server, and AI agent skills.

    Community jacob-bd