Built with ❤️ for the Atlassian community by an overly caffeinated engineer and Claude that doesn't mind navigating Atlassian's GraphQL explorer to work out undocumented JPD mutations at 3am. If you've ever been the one person standing between stakeholder requests and Jira's configuration labyrinth, these tools were made for you.
Open-source Model Context Protocol (MCP) servers for Atlassian Cloud. Enables AI assistants like Claude to interact with Jira and Confluence through a standardized tool interface.
| Server | Tools | Description |
|---|---|---|
| jira-projects | 60 | Issues, projects, sprints, boards, comments, dashboards, attachments, reporting |
| jira-workflows | 39 | Workflows, screens, schemes, automation rules |
| jira-fields-permissions | 31 | Custom fields, field configs, permission schemes |
| jira-service-desk | 12 | JSM service desks, request types, customer orgs |
| jira-organization | 31 | Org management, users, groups, identity providers |
| jira-system-admin | 21 | System config, audit logs, webhooks, reporting |
| jira-product-discovery | 12 | JPD ideas, insights, scoring |
| confluence | 69 | Pages, spaces, comments, attachments, templates, permissions |
| Total | 275 |
Counts include
search_toolsandload_tool_schemautility tools on each server.
- Node.js 18+
- Atlassian Cloud account with API token
cp .env.example .envRequired:
ATLASSIAN_SITE_URL=https://your-domain.atlassian.net
ATLASSIAN_USER_EMAIL=your-email@example.com
ATLASSIAN_API_TOKEN=your-api-tokenFor organization/admin servers, also add:
ATLASSIAN_ORG_ID=your-organization-id
ATLASSIAN_ORG_ADMIN_TOKEN=your-org-admin-tokennpm install
npm run build:allDocker (recommended):
docker compose up -d # Start all servers
docker compose up -d jira-projects # Start one server
docker compose ps # Check statusLocal (stdio for Claude Desktop):
cd servers/jira-projects
node dist/index.js{
"mcpServers": {
"jira-projects": {
"command": "node",
"args": ["servers/jira-projects/dist/index.js"],
"env": {
"ATLASSIAN_SITE_URL": "https://your-domain.atlassian.net",
"ATLASSIAN_USER_EMAIL": "your-email@example.com",
"ATLASSIAN_API_TOKEN": "your-api-token"
}
}
}
}Windows users: Use
cmd /cwrapper. See Getting Started.
Docker (stdio via exec):
{
"mcpServers": {
"jira-projects": {
"command": "docker",
"args": ["exec", "-i", "-e", "TRANSPORT=stdio", "jira-projects-mcp",
"sh", "-c", "node /app/servers/jira-projects/dist/index.js"]
}
}
}# Docker health check
curl http://localhost:3001/health
# Or use search_tools in Claude to discover available tools┌─────────────────────┐
│ Claude Desktop │
│ Claude Code │ MCP (stdio or HTTP)
│ Custom Apps │
└────┬───┬───┬───┬────┘
│ │ │ │ ...connects to each server independently
▼ ▼ ▼ ▼
jira- jira- jira- jira- jira- jira- jpd confluence
projects workflows fields service org system
perms desk admin
Eight specialized servers, each running independently. Clients connect to whichever servers they need — a team using only Jira issues and Confluence pages connects to just jira-projects and confluence.
In-memory LRU cache (500 entries) applied to all GET requests, reducing Atlassian API calls by 20-60%.
| TTL Tier | Duration | Use Case |
|---|---|---|
STATIC |
30 min | Issue types, statuses, field configs |
SEMI_STATIC |
10 min | Project metadata, user info (default) |
DYNAMIC |
2 min | Issue lists, search results |
REALTIME |
30 sec | Notifications, activity feeds |
Write operations (POST/PUT/DELETE) bypass the cache and trigger path-based invalidation.
Reduces tools/list response size by 60-75% by stripping inputSchema from tool listings. Clients fetch full schemas on-demand via the load_tool_schema tool (automatically registered on every server).
15 high-complexity tools include structured input_examples that improve LLM accuracy from ~72% to ~90% on complex parameter patterns (custom fields, JQL syntax, nested automation rules). Examples are available via:
load_tool_schema(runtime) — Returns examples in thetool.examplesfieldschemas/tools.json(build-time) — Complete tool catalog with all examples
See Optimization Guide for integration details.
Compact output modes reduce token consumption:
- concise (default) — TOON/TSV format, minimal whitespace
- detailed — Full JSON with metadata
- markdown — Human-readable tables
A responseFormat parameter is injected into every tool's input schema automatically.
All tools are annotated with MCP security hints (readOnlyHint, destructiveHint) to help clients distinguish safe read operations from destructive ones like deletes.
| Category | Tools |
|---|---|
| Issues | create_issue, get_issue, update_issue, delete_issue, bulk_create_issues, assign_issue, get_issue_editmeta_fields |
| Transitions | get_transitions, transition_issue |
| Comments | add_comment, get_comments, update_comment, delete_comment |
| Attachments | add_attachment, get_attachment, list_issue_attachments, delete_attachment, get_attachment_meta |
| Projects | search_projects, create_project, get_project, update_project, delete_project |
| Dashboards | get_dashboards, create_dashboard, get_dashboard, update_dashboard, delete_dashboard |
| Issue Types | get_issue_types, create_issue_type, update_issue_type, delete_issue_type, get_issue_type_schemes, create_issue_type_scheme, update_issue_type_scheme, delete_issue_type_scheme, get_issue_type_scheme_mappings, add_issue_types_to_scheme, assign_issue_type_scheme_to_project, get_issue_createmeta_issuetypes, get_issue_createmeta_fields |
| Search & Reporting | search_jql, generate_project_report, get_project_analytics |
| Agile (Sprints & Boards) | get_boards, get_board, get_board_configuration, get_board_backlog, create_board, delete_board, get_sprints_for_board, create_sprint, get_sprint, update_sprint, delete_sprint, get_sprint_issues, move_issues_to_sprint, move_issues_to_backlog |
| Category | Tools |
|---|---|
| Workflows | get_workflows, create_workflow, delete_workflow, get_statuses, get_workflow_schemes_basic |
| Guided Setup | setup_workflow_guided |
| Workflow Schemes | get_workflow_schemes_detailed, create_workflow_scheme, update_workflow_scheme, set_workflow_scheme_issue_type, delete_workflow_scheme_issue_type |
| Screens | get_screens, create_screen, update_screen, delete_screen, get_screen_available_fields, add_field_to_screen, add_field_to_default_screen |
| Screen Tabs | get_screen_tabs, create_screen_tab, update_screen_tab, delete_screen_tab, get_screen_tab_fields, remove_field_from_screen_tab, move_screen_tab_field |
| Screen Schemes | get_screen_schemes, create_screen_scheme, delete_screen_scheme |
| Automation | get_automation_rules, get_automation_rule_details, get_automation_templates, get_automation_component_types, create_automation_rule, update_automation_rule, enable_disable_automation_rule |
| Category | Tools |
|---|---|
| Fields | get_fields_paginated, create_custom_field, update_custom_field, delete_custom_field |
| Field Configs | get_field_configurations, create_field_configuration, update_field_configuration, get_field_configuration_schemes, create_field_configuration_scheme |
| Field Contexts | get_custom_field_contexts, create_custom_field_context, update_custom_field_context, delete_custom_field_context, get_custom_field_options, create_custom_field_options |
| Notifications | get_notification_schemes, create_notification_scheme, get_notification_screens, create_notification_screen, add_field_to_notification_screen |
| Permissions | get_permission_schemes, create_permission_scheme, update_permission_scheme, delete_permission_scheme, get_permission_grants, create_permission_grant, delete_permission_grant, get_global_permissions, get_my_permissions |
| Category | Tools |
|---|---|
| Service Desks | get_service_desks, get_request_types, create_request_type, get_request_type_fields, configure_request_type_workflow |
| Customer Orgs | get_customer_organizations, get_organization_customers, get_customer_organization_membership, get_project_customer_organizations, analyze_customer_visibility |
All read-only tools for organization-wide management and analytics.
| Category | Tools |
|---|---|
| Organization | get_organizations, get_organization_details, get_organization_info, get_organization_policies, get_organization_domains, get_organization_workspaces, get_organization_events |
| Users | get_organization_users, search_organization_users, get_user_role_assignments, get_user_group_memberships, analyze_user_access |
| User Management | get_user_manage, get_user_manage_profile, get_user_manage_api_tokens, get_org_user_stats, get_org_group_stats |
| Identity Providers | get_identity_providers, get_directory_info, get_directory_sync_status, get_directory_sync_settings, get_directory_users, get_user_last_active |
| Directory Health | get_scim_directory_groups, get_directory_health_status, get_provisioning_insights |
| Analytics | get_cross_product_user_activity, get_enhanced_identity_provider_insights, get_advanced_directory_health_monitoring, get_user_behavior_pattern_analysis |
| Category | Tools |
|---|---|
| System | get_instance_info, get_system_limits, get_audit_records, get_jira_license, get_system_webhooks |
| Configuration | get_application_properties, set_application_property, get_time_tracking_settings, update_time_tracking_settings, get_application_roles |
| Users & Groups | search_site_users, search_groups, get_site_user_groups, get_bulk_permissions |
| Filters & Misc | create_filter, get_system_avatars |
| Reporting | export_project_data, export_user_data, generate_system_report, generate_usage_analytics, generate_health_check_report |
| Category | Tools |
|---|---|
| Projects | get_jpd_projects |
| Ideas | get_ideas, search_ideas, get_idea, create_idea, update_idea, delete_idea |
| Insights | get_insights, get_insight, create_insight, update_insight, delete_insight, analyze_idea_insights |
| Scoring | get_idea_scoring |
| Category | Tools |
|---|---|
| Spaces | search_spaces, get_space, create_space, update_space, delete_space, archive_space, restore_space, get_space_content, get_space_settings, update_space_settings, get_space_theme, set_space_theme |
| Pages | search_pages, get_page, create_page, update_page, delete_page, get_page_versions, get_page_version, get_page_children, get_page_ancestors, move_page, copy_page, get_page_restrictions, set_page_restrictions, get_page_likes |
| Comments | get_page_comments, get_footer_comments, get_inline_comments, add_footer_comment, add_inline_comment, update_comment, delete_comment, get_comment_children |
| Attachments | get_attachments, get_attachment, upload_attachment, update_attachment, delete_attachment, download_attachment, get_attachment_versions, copy_attachment |
| Content | search_cql, search_content, get_labels, add_labels, remove_label, get_space_labels, add_space_label, remove_space_label |
| Templates | get_templates, get_template, create_template, update_template, delete_template |
| Blog Posts | get_blog_posts, get_blog_post, create_blog_post, update_blog_post, delete_blog_post |
| Properties | get_content_properties, create_content_property, update_content_property, delete_content_property |
| Watchers | get_content_watchers, add_content_watch, remove_content_watch, get_space_watchers |
| Content States | get_content_states, set_content_state |
| Permissions | get_space_permissions, add_space_permission, remove_space_permission, get_space_permission_users, copy_space_permissions, get_permission_types, check_content_permission, bulk_update_permissions |
| Admin | get_audit_records, get_system_info |
All servers include a search_tools meta-discovery tool:
search_tools({ category: 'pages', type: 'discovery' })
// Returns filtered tool list with getting_started workflow and suggested_next_stepsSkills are guided workflows that orchestrate multiple tools for complex, multi-step tasks. They encode institutional knowledge about Atlassian best practices, dependency chains, and multi-step procedures.
Claude Code: Skills are automatically discovered from .claude/skills/. Invoke with /skill-name or describe the task.
Claude Desktop: Package and upload skills as ZIP files:
npm run package:skills # Creates dist/skills/*.zipThen upload each ZIP via Claude Desktop → Settings → Capabilities → Upload Custom Skill.
| Skill | Servers | Purpose |
|---|---|---|
atlassian-project-setup |
jira-projects, jira-workflows, jira-fields-permissions, jira-service-desk, confluence | Dependency-aware Jira project provisioning |
confluence-space-health-audit |
confluence | Audit space for stale pages, permission issues |
confluence-template-library-builder |
confluence | Create ADR, Runbook, API spec templates |
jpd-prioritization-review |
jira-product-discovery | Backlog readiness report for planning |
sprint-health-reporter |
jira-projects, confluence | Sprint metrics, velocity, blockers report |
jpd-idea-to-delivery |
jira-product-discovery, jira-projects, confluence | Convert JPD idea to Epic with traceability |
Dependency-aware Jira Cloud project provisioning with spec gap analysis and incremental verification. Use this skill when setting up:
- Jira Software projects (Scrum/Kanban)
- Jira Service Management projects with request types
- Business projects
- Confluence documentation spaces
- Workflow schemes, issue type schemes, screen schemes, field configurations
Why use the skill? Jira Cloud objects exist in a strict dependency hierarchy. Creating a workflow without a workflow scheme, or issues without an issue type scheme assigned to the project, produces orphaned objects that appear to succeed but don't function. This skill enforces pre-flight validation, spec gap analysis, and incremental smoke testing at every phase.
Invoke with: /atlassian-project-setup or describe a project setup task
Audit a Confluence space for content health issues:
- Stale pages not updated in 180+ days
- Unlabeled pages missing categorization
- Permission anomalies differing from space baseline
- Draft backlog of unpublished content
- Orphaned pages with broken hierarchy
Invoke with: /confluence-space-health-audit or ask to "audit a space", "find stale pages", "check space health"
Create a documentation template library with common templates and examples:
- Architecture Decision Records (ADR)
- Runbooks for operational procedures
- API Specifications
- Meeting Notes
- Technical Design documents
- Postmortem templates
Invoke with: /confluence-template-library-builder or ask to "set up templates", "create doc standards"
Generate a prioritization readiness report for JPD projects:
- Scoring completeness analysis
- Evidence coverage (insights) per idea
- Readiness categorization for planning
- Top ideas by different criteria
- Data gap identification
Invoke with: /jpd-prioritization-review or ask to "review idea backlog", "check prioritization readiness"
Generate comprehensive sprint health reports:
- Current sprint status and completion percentage
- Velocity trends across sprints
- Slip rate (rollover from previous sprints)
- Blocked items requiring attention
- Workload distribution by team member
- Optional Confluence page publication
Invoke with: /sprint-health-reporter or ask for "sprint report", "velocity report", "sprint health"
Translate an approved JPD idea into delivery artifacts:
- Jira Epic with prioritization context and evidence
- Confluence specification page
- Bidirectional linking (Epic ↔ Idea ↔ Spec)
- Preserved scoring rationale and customer evidence
Invoke with: /jpd-idea-to-delivery or ask to "create epic from idea", "move idea to delivery"
Real-world scenarios demonstrating how AI assistants use these tools to solve everyday Atlassian administration and collaboration challenges.
A scrum master preparing for sprint retrospective asks Claude to analyze the current state of their board.
User prompt:
"We're closing Sprint 24 tomorrow. Can you find all issues in project PLATFORM that are still In Progress or In Review, show me who's assigned, and flag anything that hasn't been updated in over a week? Also pull the sprint report so I can see our velocity trend."
Tools used: search_jql | get_issue | generate_project_report (jira-projects)
Claude executes a JQL search (project = PLATFORM AND sprint in openSprints() AND status in ("In Progress", "In Review") ORDER BY updated ASC), iterates through results to surface assignees and last-updated timestamps, flags stale items, and calls generate_project_report to pull velocity and completion metrics — giving the scrum master a single consolidated view before their retro.
An IT operations lead is setting up a new service desk for their infrastructure team and needs request types wired to the right workflows.
User prompt:
"Set up request types on our INFRA service desk for 'Cloud Access Request', 'VPN Issue', and 'Server Provisioning'. Each one should collect different fields. Then show me what customer organizations currently have visibility so I know who can submit requests."
Tools used: get_service_desks | create_request_type | get_request_type_fields | configure_request_type_workflow | analyze_customer_visibility (jira-service-desk)
Claude retrieves the INFRA service desk ID, creates three request types with appropriate descriptions, configures which fields appear on each intake form, maps them to the correct workflow transitions, and then calls analyze_customer_visibility to report which customer organizations can currently see and submit requests — highlighting any gaps in access.
A documentation lead needs to stand up a new product knowledge base space with a consistent page hierarchy and locked-down permissions before a launch.
User prompt:
"Create a Confluence space called 'Payments Platform' with key PAY. Set up top-level pages for Architecture, Runbooks, API Reference, and Onboarding. Add the 'Technical Documentation' template to the space. Then lock down permissions so only the payments-engineering group can edit, but the whole company can view."
Tools used: create_space | create_page | create_template | get_space_permissions | add_space_permission | bulk_update_permissions (confluence)
Claude creates the space, builds out the four top-level pages (each with placeholder structure in Atlassian Document Format), attaches the template, then audits current permissions with get_space_permissions and applies granular grants — view-only for the default group, edit access for payments-engineering — confirming the final permission state back to the user.
A Jira admin is spinning up a new project and needs a custom workflow with automation rules that enforce the team's process.
User prompt:
"Create a workflow called 'Engineering Review Flow' with statuses: Backlog → In Development → Code Review → QA → Done. Then create an automation rule that auto-transitions issues to Code Review when a pull request is linked, and another rule that notifies the #releases Slack channel when an issue moves to Done. Assign this workflow to the CORE project."
Tools used: get_statuses | create_workflow | get_automation_templates | create_automation_rule | enable_disable_automation_rule | create_workflow_scheme | set_workflow_scheme_issue_type (jira-workflows)
Claude checks available statuses (creating any missing ones), builds the workflow with the specified transitions, creates both automation rules using the appropriate trigger/action component types, enables them, then wires the workflow to the CORE project through a workflow scheme — delivering a fully operational process in minutes instead of hours of manual admin console clicking.
atlassian-mcp-servers/
├── servers/ # 8 MCP server implementations
│ ├── confluence/
│ ├── jira-fields-permissions/
│ ├── jira-organization/
│ ├── jira-product-discovery/
│ ├── jira-projects/
│ ├── jira-service-desk/
│ ├── jira-system-admin/
│ └── jira-workflows/
├── docs/
│ ├── development-guide.md # Adding tools and creating servers
│ ├── getting-started.md # Setup and configuration
│ ├── optimization-guide.md # Deferred loading and tool examples
│ └── tool-catalog.md # Complete tool reference
├── deploy/ # Docker and cloud deployment configs
├── AGENTS.md # For AI agents working on this codebase
└── CONTRIBUTING.md
- Getting Started - Setup and configuration
- Development Guide - Adding tools and creating servers
- Tool Catalog - Complete tool reference
- Optimization Guide - Deferred loading and tool use examples
- AGENTS.md - For AI agents working on this codebase
- CHANGELOG.md - Version history
See CONTRIBUTING.md for development guidelines.
See SECURITY.md for security policy and reporting.
These MCP servers process data through your Atlassian Cloud instance:
- All data flows directly between the MCP server and Atlassian APIs
- Servers do not persist any user data
- API tokens are used only for Atlassian API authentication
- Minimal request logging for debugging, no PII captured
See PRIVACY.md for the full privacy policy.