logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

atlassian-confluence-adapter

Facilitates interaction with the Confluence REST API for data retrieval and modification, supporting advanced CQL operations and content management.

Author

atlassian-confluence-adapter logo

zereight

No License

Quick Info

GitHub GitHub Stars 21
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

confluencecqltoolsconfluence dataconfluence apiconfluence mcp

Enhanced Confluence Interaction Module

Introduction

This module adheres to the Model Context Protocol (MCP) specification, establishing a standardized interface for Confluence operations. It represents a refined, hardened version of existing Confluence integrations, resolving known instability issues and delivering superior operational reliability. Core capabilities include the execution of Confluence Query Language (CQL) searches and systematic retrieval of page artifacts.

This component operates within the standard MCP client-server framework:

  • Functions as an MCP service endpoint offering Confluence capabilities.
  • Utilizes the primary Confluence instance as its external data repository.
  • Communicates with upstream MCP clients strictly via the defined protocol.

Deployment Guide

smithery badge

confluence-mcp MCP server

Configuration for Claude Environment (App, Cline, Roo Code)

For these environments, authentication parameters and endpoint details must be explicitly defined in the configuration block.

{ "mcpServers": { "Atlassian Confluence Integration Agent": { "command": "npx", "args": ["-y", "@zereight/mcp-confluence"], "env": { "CONFLUENCE_URL": "https://XXXXXXXX.atlassian.net", "JIRA_URL": "https://XXXXXXXX.atlassian.net", "CONFLUENCE_API_MAIL": "Your registered email", "CONFLUENCE_API_KEY": "Token generated from: https://id.atlassian.com/manage-profile/security/api-tokens", "CONFLUENCE_IS_CLOUD": "true" // Use 'false' for on-premise Server/Data Center deployments } } } }

Setup for Cursor Environments

Installation via Smithery Utility

Automatic deployment for Cursor clients can be initiated using the Smithery command-line interface:

bash npx -y @smithery/cli install @zereight/confluence-mcp --client claude

For direct execution within Cursor, set environment variables and launch the service:

bash env CONFLUENCE_API_MAIL=your@email.com CONFLUENCE_API_KEY=your-key CONFLUENCE_URL=your-confluence-url JIRA_URL=your-jira-url npx -y @zereight/mcp-confluence

Variable Descriptions:

  • CONFLUENCE_API_MAIL: The email address associated with the Confluence API credential.
  • CONFLUENCE_API_KEY: The generated authentication token.
  • CONFLUENCE_URL: The base URL for the Confluence instance.
  • JIRA_URL: The base URL for the associated Jira instance (often identical).
  • CONFLUENCE_IS_CLOUD: Specifies the Confluence deployment type.
  • Default setting is true (for Cloud).
  • Set to 'false' to target Server or Data Center installations.
  • Impacts the base path for API calls:
    • Cloud Instances: Uses /wiki/rest/api
    • Server Instances: Uses /rest/api

Available Confluence Operations

  • execute_cql_search: Runs a CQL search against the Confluence repository.

  • Documentation: Executes a specified CQL expression against the connected Confluence environment to locate content items.

  • Input Structure:

    { "type": "object", "properties": { "cql": { "type": "string", "description": "The formal CQL query string to execute" }, "limit": { "type": "integer", "description": "Maximum record count for the result set", "default": 10 } }, "required": ["cql"] }

  • get_page_content: Fetches the raw storage content of a designated page.

  • Documentation: Retrieves the content body for a Confluence page, identified by its unique ID.

  • Input Structure:

    { "type": "object", "properties": { "pageId": { "type": "string", "description": "The unique identifier of the Confluence page" } }, "required": ["pageId"] }

  • create_page: Provisions a new documentation page.

  • Documentation: Generates a new page within a specified Confluence space, providing a title and content.

  • Input Structure:

    { "type": "object", "properties": { "spaceKey": { "type": "string", "description": "The symbolic key of the target Confluence space" }, "title": { "type": "string", "description": "The desired title for the new document" }, "content": { "type": "string", "description": "The page content formatted in Confluence storage markup" }, "parentId": { "type": "string", "description": "Identifier for an optional parent page" } }, "required": ["spaceKey", "title", "content"] }

  • update_page: Modifies the attributes of an existing page.

  • Documentation: Replaces the content or title of a specified Confluence page.
  • Input Structure:

    { "type": "object", "properties": { "pageId": { "type": "string", "description": "Identifier of the page slated for modification" }, "content": { "type": "string", "description": "The revised page content in storage format" }, "title": { "type": "string", "description": "Optional field to set a new page title" } }, "required": ["pageId", "content"] }

Integrated Jira Utility Set

  • execute_jql_search: Executes JQL against the linked Jira instance.

  • Documentation: Runs a JQL query against the Jira system to locate relevant issues.

  • Input Structure:

    { "type": "object", "properties": { "jql": { "type": "string", "description": "The JQL expression to evaluate" }, "limit": { "type": "integer", "description": "Maximum issue count returned", "default": 10 } }, "required": ["jql"] }

  • create_jira_issue: Provisions a new Jira ticket.

  • Documentation: Creates a new issue record within the specified Jira project.

  • Input Structure:

    { "type": "object", "properties": { "project": { "type": "string", "description": "The key identifying the target project" }, "summary": { "type": "string", "description": "A brief summary of the issue" }, "description": { "type": "string", "description": "Detailed description of the requirement or bug" }, "issuetype": { "type": "string", "description": "The categorization type for the issue (e.g., Bug, Story)" }, "assignee": { "type": "string", "description": "Account ID of the designated assignee" }, "priority": { "type": "string", "description": "ID representing the issue's urgency level" } }, "required": ["project", "summary", "issuetype"] }

  • update_jira_issue: Modifies metadata for an existing Jira ticket.

  • Documentation: Allows modification of various fields on a pre-existing Jira issue.

  • Input Structure:

    { "type": "object", "properties": { "issueKey": { "type": "string", "description": "The unique identifier (e.g., PROJ-123)" }, "summary": { "type": "string", "description": "The revised summary text" }, "description": { "type": "string", "description": "The updated issue narrative" }, "assignee": { "type": "string", "description": "Account ID for the new assignee" }, "priority": { "type": "string", "description": "The new priority designation ID" } }, "required": ["issueKey"] }

  • transition_jira_issue: Executes a workflow status change on a ticket.

  • Documentation: Advances a Jira issue to a different status using its defined transition ID.

  • Input Structure:

    { "type": "object", "properties": { "issueKey": { "type": "string", "description": "The issue identifier (e.g. PROJ-123)" }, "transitionId": { "type": "string", "description": "The numeric ID corresponding to the desired workflow transition" } }, "required": ["issueKey", "transitionId"] }

  • get_board_sprints: Fetches sprint records associated with a board.

  • Documentation: Retrieves a catalog of all sprints linked to a specific Jira board.

  • Input Structure:

    { "type": "object", "properties": { "boardId": { "type": "string", "description": "The unique identifier of the target Jira board" }, "state": { "type": "string", "description": "Filter sprints by their lifecycle status", "enum": ["active", "future", "closed"] } }, "required": ["boardId"] }

  • get_sprint_issues: Retrieves all issues belonging to a specified sprint.

  • Documentation: Lists all work items contained within a particular sprint ID.

  • Input Structure:

    { "type": "object", "properties": { "sprintId": { "type": "string", "description": "The ID of the sprint boundary" }, "fields": { "type": "array", "items": { "type": "string" }, "description": "A specific list of issue fields to be returned for each record" } }, "required": ["sprintId"] }

  • get_current_sprint: Retrieves details for the active sprint on a board.

  • Documentation: Fetches the currently running sprint for a board, optionally including its associated issues.

  • Input Structure:

    { "type": "object", "properties": { "boardId": { "type": "string", "description": "The identifier for the Jira board" }, "includeIssues": { "type": "boolean", "description": "Flag to dictate inclusion of sprint issue data", "default": true } }, "required": ["boardId"] }

  • get_epic_issues: Lists all tickets tied to a specific Epic.

  • Documentation: Returns every issue that maps to a given Epic key.

  • Input Structure:

    { "type": "object", "properties": { "epicKey": { "type": "string", "description": "The issue key designated as the Epic container (e.g., CONNECT-1234)" }, "fields": { "type": "array", "items": { "type": "string" }, "description": "A selection of data fields required for the returned issues" } }, "required": ["epicKey"] }

  • get_user_issues: Finds all issues linked to a user on a board.

  • Documentation: Retrieves work items based on whether a user is the assignee or reporter within a specified board context.

  • Input Structure:

    { "type": "object", "properties": { "boardId": { "type": "string", "description": "The board context for the search" }, "username": { "type": "string", "description": "The Jira username or account ID of interest" }, "type": { "type": "string", "description": "The relationship type to filter by (assignee or reporter)", "enum": ["assignee", "reporter"], "default": "assignee" }, "status": { "type": "string", "description": "Filter issues based on their current workflow status", "enum": ["open", "in_progress", "done", "all"], "default": "all" } }, "required": ["boardId", "username"] }

See Also

`