confluence-mcp

by zereight
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides integration with Confluence to execute CQL queries, retrieve page content, create pages, and update pages.

  • Provides integration with Jira to execute JQL queries, create issues, update issues, transition issues, get board sprints, get sprint issues, get current sprints, get epic issues, and get user issues.

더 나은 Confluence 커뮤니케이션 서버

개요

이 서버는 Confluence 통합을 위한 모델 컨텍스트 프로토콜(MCP)을 구현합니다. 이 버전은 기존 Confluence 서버에서 발견된 버그를 해결하고 수정하여 더욱 안정적이고 신뢰할 수 있는 환경을 제공합니다. 또한, Confluence에서 CQL 쿼리를 실행하고 페이지 콘텐츠를 검색하는 기능을 제공합니다.

이 서버는 MCP 클라이언트-서버 아키텍처를 따릅니다.

  • Confluence 기능을 제공하는 MCP 서버 역할을 합니다.
  • 데이터 소스로 Confluence에 연결합니다.
  • 표준화된 프로토콜을 통해 MCP 클라이언트와 통신합니다.

사용 방법

Claude App, Cline, Roo Code와 함께 사용

Claude 앱을 사용하는 경우 API 키와 URL을 직접 설정해야 합니다.

지엑스피1

커서와 함께 사용

Smithery를 통해 설치

Smithery 를 통해 Claude Desktop용 Confluence 통신 서버를 자동으로 설치하려면:

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

Cursor와 함께 사용할 경우 다음과 같이 환경 변수를 설정하고 서버를 실행할 수 있습니다.

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
  • CONFLUENCE_API_MAIL : Confluence API에 대한 이메일 주소입니다.
  • CONFLUENCE_API_KEY : Confluence API 키.
  • CONFLUENCE_URL : Confluence URL입니다.
  • JIRA_URL : JIRA URL입니다.
  • CONFLUENCE_IS_CLOUD : Confluence 버전(클라우드 또는 서버)을 결정합니다.
    • 기본값: true(클라우드 버전)
    • 서버/데이터 센터 버전에 대해 명시적으로 'false'로 설정
    • API 엔드포인트 경로에 영향을 미칩니다.
      • 클라우드: /wiki/rest/api
      • 서버: /rest/api

Confluence 도구

  • execute_cql_search : Confluence에서 CQL 쿼리를 실행하여 페이지를 검색합니다.
    • 설명: Confluence 인스턴스에서 CQL 쿼리를 실행하여 페이지를 검색합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "cql": { "type": "string", "description": "CQL query string" }, "limit": { "type": "integer", "description": "Number of results to return", "default": 10 } }, "required": ["cql"] }
  • get_page_content : 특정 Confluence 페이지의 콘텐츠를 검색합니다.
    • 설명: 페이지 ID를 사용하여 Confluence 페이지의 콘텐츠를 가져옵니다.
    • 입력 스키마:
      { "type": "object", "properties": { "pageId": { "type": "string", "description": "Confluence Page ID" } }, "required": ["pageId"] }
  • create_page : 새로운 Confluence 페이지를 만듭니다.
    • 설명: 지정된 Confluence 공간에 새 페이지를 만듭니다.
    • 입력 스키마:
      { "type": "object", "properties": { "spaceKey": { "type": "string", "description": "Space key where the page will be created" }, "title": { "type": "string", "description": "Page title" }, "content": { "type": "string", "description": "Page content in storage format" }, "parentId": { "type": "string", "description": "Parent page ID (optional)" } }, "required": ["spaceKey", "title", "content"] }
  • update_page : 기존 Confluence 페이지를 업데이트합니다.
    • 설명: 기존 Confluence 페이지의 내용을 업데이트합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "pageId": { "type": "string", "description": "ID of the page to update" }, "content": { "type": "string", "description": "New page content in storage format" }, "title": { "type": "string", "description": "New page title (optional)" } }, "required": ["pageId", "content"] }

지라 도구

  • execute_jql_search : Jira에서 JQL 쿼리를 실행하여 문제를 검색합니다.
    • 설명: Jira 인스턴스에서 JQL 쿼리를 실행하여 문제를 검색합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "jql": { "type": "string", "description": "JQL query string" }, "limit": { "type": "integer", "description": "Number of results to return", "default": 10 } }, "required": ["jql"] }
  • create_jira_issue : 새로운 Jira 이슈를 생성합니다.
    • 설명: 지정된 Jira 프로젝트에서 새로운 이슈를 생성합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "project": { "type": "string", "description": "Project key" }, "summary": { "type": "string", "description": "Issue summary" }, "description": { "type": "string", "description": "Issue description" }, "issuetype": { "type": "string", "description": "Issue type name" }, "assignee": { "type": "string", "description": "Assignee account ID" }, "priority": { "type": "string", "description": "Priority ID" } }, "required": ["project", "summary", "issuetype"] }
  • update_jira_issue : 기존 Jira 이슈를 업데이트합니다.
    • 설명: 기존 Jira 문제의 필드를 업데이트합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "issueKey": { "type": "string", "description": "Issue key (e.g., PROJ-123)" }, "summary": { "type": "string", "description": "New issue summary" }, "description": { "type": "string", "description": "New issue description" }, "assignee": { "type": "string", "description": "New assignee account ID" }, "priority": { "type": "string", "description": "New priority ID" } }, "required": ["issueKey"] }
  • transition_jira_issue : Jira 이슈의 상태를 변경합니다.
    • 설명: 전환 ID를 사용하여 Jira 이슈의 상태를 변경합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "issueKey": { "type": "string", "description": "Issue key (e.g. PROJ-123)" }, "transitionId": { "type": "string", "description": "Transition ID to change the issue status" } }, "required": ["issueKey", "transitionId"] }
  • get_board_sprints : Jira 보드에서 모든 스프린트를 가져옵니다.
    • 설명: 지정된 Jira 보드에서 모든 스프린트를 검색합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "boardId": { "type": "string", "description": "Jira board ID" }, "state": { "type": "string", "description": "Filter sprints by state (active, future, closed)", "enum": ["active", "future", "closed"] } }, "required": ["boardId"] }
  • get_sprint_issues : 스프린트의 모든 이슈를 가져옵니다.
    • 설명: 지정된 스프린트의 모든 이슈를 검색합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "sprintId": { "type": "string", "description": "Sprint ID" }, "fields": { "type": "array", "items": { "type": "string" }, "description": "List of fields to return for each issue" } }, "required": ["sprintId"] }
  • get_current_sprint : 보드에서 현재 활성 스프린트와 해당 문제를 가져옵니다.
    • 설명: 지정된 보드에서 현재 활성 스프린트와 해당 이슈를 검색합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "boardId": { "type": "string", "description": "Jira board ID" }, "includeIssues": { "type": "boolean", "description": "Whether to include sprint issues in the response", "default": true } }, "required": ["boardId"] }
  • get_epic_issues : 에픽에 속한 모든 이슈를 가져옵니다.
    • 설명: 지정된 서사시에 속하는 모든 이슈를 검색합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "epicKey": { "type": "string", "description": "Epic issue key (e.g. CONNECT-1234)" }, "fields": { "type": "array", "items": { "type": "string" }, "description": "List of fields to return for each issue" } }, "required": ["epicKey"] }
  • get_user_issues : 보드에서 특정 사용자에게 할당되거나 보고된 모든 이슈를 가져옵니다.
    • 설명: 게시판의 특정 사용자와 관련된 모든 문제를 검색합니다.
    • 입력 스키마:
      { "type": "object", "properties": { "boardId": { "type": "string", "description": "Jira board ID" }, "username": { "type": "string", "description": "Username to search issues for" }, "type": { "type": "string", "description": "Type of user association with issues", "enum": ["assignee", "reporter"], "default": "assignee" }, "status": { "type": "string", "description": "Filter by issue status", "enum": ["open", "in_progress", "done", "all"], "default": "all" } }, "required": ["boardId", "username"] }
ID: p7fnmpaukj