{
  "server": "atlassian",
  "url": "https://mcp.atlassian.com/v1/mcp",
  "date": "2026-09-04",
  "protocolVersion": "2025-11-25",
  "serverInfo": {
    "name": "atlassian-mcp-server",
    "version": "1.0.0"
  },
  "listChangedDeclared": true,
  "toolCount": 46,
  "outputSchemaCoveragePct": 0,
  "tools": [
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Add comment"
      },
      "description": "Add or update a comment on a Jira issue",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "commentBody": {
            "description": "Comment body",
            "type": "string"
          },
          "commentId": {
            "description": "ID of an existing comment to update. If omitted, a new comment is added.",
            "maxLength": 18,
            "type": "string"
          },
          "commentVisibility": {
            "additionalProperties": false,
            "properties": {
              "type": {
                "enum": [
                  "group",
                  "role"
                ],
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "required": [
              "type",
              "value"
            ],
            "type": "object"
          },
          "contentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "issueIdOrKey": {
            "description": "Issue ID or key (e.g., PROJ-123 or 10000)",
            "type": "string"
          },
          "responseContentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "issueIdOrKey",
          "commentBody"
        ],
        "type": "object"
      },
      "name": "addCommentToJiraIssue"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Add Teamwork Graph context"
      },
      "description": "Adds a relationship between two entities in the Teamwork Graph (e.g. linking two Jira work items, marking one as blocking another, attaching a remote link, or connecting a Jira work item to an Atlas project or goal).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "objectIdentifier": {
            "description": "Identifier of the source entity. Accepts an ARI, a full URL, or a stable key (e.g. ENG-123 for a Jira work item). Format depends on relationshipType.",
            "maxLength": 500,
            "type": "string"
          },
          "relationshipType": {
            "description": "Type of relationship to create. Determines which entity types 'objectIdentifier' and 'targetObjectIdentifier' must resolve to.",
            "enum": [
              "jira-work-item-links-jira-work-item",
              "jira-work-item-blocks-jira-work-item",
              "jira-work-item-links-jira-work-item-remote-link",
              "jira-work-item-tracks-atlassian-project",
              "jira-work-item-contributes-to-atlassian-goal"
            ],
            "type": "string"
          },
          "targetObjectIdentifier": {
            "description": "Identifier of the target entity. Accepts an ARI, a full URL, or a stable key (e.g. ATLAS-20426 for an Atlas project). Format depends on relationshipType.",
            "maxLength": 500,
            "type": "string"
          },
          "title": {
            "description": "Optional display label for the target. Used by relationships that surface a title (e.g. remote links); ignored otherwise.",
            "maxLength": 500,
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "relationshipType",
          "objectIdentifier",
          "targetObjectIdentifier"
        ],
        "type": "object"
      },
      "name": "addTeamworkGraphContext"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Add or update worklog"
      },
      "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "commentBody": {
            "description": "Comment body",
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "issueIdOrKey": {
            "description": "Issue ID or key (e.g., PROJ-123 or 10000)",
            "type": "string"
          },
          "started": {
            "description": "When the work was started (ISO 8601 date-time, e.g. 2026-03-09T09:00:00.000+0000). If omitted, the worklog is booked at the current date/time.",
            "type": "string"
          },
          "timeSpent": {
            "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating.",
            "type": "string"
          },
          "visibility": {
            "additionalProperties": false,
            "properties": {
              "type": {
                "enum": [
                  "group",
                  "role"
                ],
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "required": [
              "type",
              "value"
            ],
            "type": "object"
          },
          "worklogId": {
            "description": "ID of an existing worklog to update. If omitted, a new worklog is created.",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "issueIdOrKey",
          "timeSpent"
        ],
        "type": "object"
      },
      "name": "addWorklogToJiraIssue"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get current user info"
      },
      "description": "Get current user info",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "atlassianUserInfo"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Bitbucket deployment"
      },
      "description": "Bitbucket deployment operations (list, get).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "Deployment operation.",
            "enum": [
              "list",
              "get"
            ],
            "type": "string"
          },
          "deploymentUuid": {
            "description": "Deployment UUID (required for action=get).",
            "type": "string"
          },
          "environment": {
            "description": "Filter by environment UUID (action=list).",
            "type": "string"
          },
          "page": {
            "description": "Pagination cursor (action=list).",
            "type": "string"
          },
          "pagelen": {
            "description": "Page length (action=list).",
            "type": "number"
          },
          "repoId": {
            "description": "Repository identifier: repo slug (preferred), or repo UUID in \"{...}\" form, or a Bitbucket repository URL.",
            "type": "string"
          },
          "state": {
            "description": "Filter by state (action=list).",
            "type": "string"
          },
          "workspaceId": {
            "description": "Workspace identifier: workspace slug (preferred), or workspace UUID in \"{...}\" form, or a Bitbucket workspace URL.",
            "type": "string"
          }
        },
        "required": [
          "action",
          "workspaceId",
          "repoId"
        ],
        "type": "object"
      },
      "name": "bitbucketDeployment"
    },
    {
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Bitbucket environment"
      },
      "description": "Bitbucket environment operations (list, get, create, delete, update).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "Environment operation.",
            "enum": [
              "list",
              "get",
              "create",
              "delete",
              "update"
            ],
            "type": "string"
          },
          "environmentType": {
            "additionalProperties": false,
            "description": "Environment type (required for create; optional for update).",
            "properties": {
              "name": {
                "description": "Type name: Production | Staging | Test | ...",
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object"
          },
          "environmentUuid": {
            "description": "Environment UUID (required for get/delete/update).",
            "type": "string"
          },
          "name": {
            "description": "Environment name (required for create; optional for update).",
            "type": "string"
          },
          "page": {
            "description": "Pagination cursor (action=list).",
            "type": "string"
          },
          "pagelen": {
            "description": "Page length (action=list).",
            "type": "number"
          },
          "rank": {
            "description": "Environment rank (optional).",
            "type": "number"
          },
          "repoId": {
            "description": "Repository identifier: repo slug (preferred), or repo UUID in \"{...}\" form, or a Bitbucket repository URL.",
            "type": "string"
          },
          "workspaceId": {
            "description": "Workspace identifier: workspace slug (preferred), or workspace UUID in \"{...}\" form, or a Bitbucket workspace URL.",
            "type": "string"
          }
        },
        "required": [
          "action",
          "workspaceId",
          "repoId"
        ],
        "type": "object"
      },
      "name": "bitbucketEnvironment"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Bitbucket pipeline"
      },
      "description": "Bitbucket pipeline operations (list, run, get, steps, step.get, step.log).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "Pipeline operation.",
            "enum": [
              "list",
              "run",
              "get",
              "steps",
              "step.get",
              "step.log"
            ],
            "type": "string"
          },
          "page": {
            "description": "Pagination cursor (action=list/steps).",
            "type": "string"
          },
          "pagelen": {
            "description": "Page length (action=list/steps).",
            "type": "number"
          },
          "pipelineId": {
            "description": "Pipeline identifier: pipeline UUID in \"{...}\" form or build number, or a Bitbucket pipeline URL.",
            "type": "string"
          },
          "repoId": {
            "description": "Repository identifier: repo slug (preferred), or repo UUID in \"{...}\" form, or a Bitbucket repository URL.",
            "type": "string"
          },
          "selector": {
            "additionalProperties": false,
            "description": "Run selector (optional).",
            "properties": {
              "pattern": {
                "type": "string"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          },
          "sort": {
            "description": "Sort (action=list).",
            "type": "string"
          },
          "status": {
            "description": "Filter: status (action=list).",
            "type": "string"
          },
          "stepUuid": {
            "description": "Step UUID (required for action=step.get or step.log).",
            "type": "string"
          },
          "target": {
            "additionalProperties": false,
            "description": "Run target (required for action=run).",
            "properties": {
              "commit": {
                "additionalProperties": false,
                "properties": {
                  "hash": {
                    "type": "string"
                  }
                },
                "required": [
                  "hash"
                ],
                "type": "object"
              },
              "ref_name": {
                "type": "string"
              },
              "ref_type": {
                "type": "string"
              }
            },
            "required": [
              "ref_type",
              "ref_name"
            ],
            "type": "object"
          },
          "targetBranch": {
            "description": "Filter: target.branch (action=list).",
            "type": "string"
          },
          "targetCommit": {
            "description": "Filter: target.commit.hash (action=list).",
            "type": "string"
          },
          "targetRefName": {
            "description": "Filter: target.ref_name (action=list).",
            "type": "string"
          },
          "targetRefType": {
            "description": "Filter: target.ref_type (action=list).",
            "type": "string"
          },
          "triggerType": {
            "description": "Filter: trigger_type (action=list).",
            "type": "string"
          },
          "variables": {
            "description": "Run variables (optional).",
            "items": {
              "additionalProperties": false,
              "properties": {
                "key": {
                  "type": "string"
                },
                "secured": {
                  "type": "boolean"
                },
                "value": {
                  "type": "string"
                }
              },
              "required": [
                "key",
                "value"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "workspaceId": {
            "description": "Workspace identifier: workspace slug (preferred), or workspace UUID in \"{...}\" form, or a Bitbucket workspace URL.",
            "type": "string"
          }
        },
        "required": [
          "action",
          "workspaceId",
          "repoId"
        ],
        "type": "object"
      },
      "name": "bitbucketPipeline"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Bitbucket pull request"
      },
      "description": "Bitbucket pull request operations (create, get, list, merge, approve, request-changes, comment, comments, diff, createTask, listTasks, setTaskState, deleteTask).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "Pull request operation. Includes PR tasks (createTask/listTasks/setTaskState/deleteTask).",
            "enum": [
              "create",
              "get",
              "list",
              "merge",
              "approve",
              "request-changes",
              "comment",
              "comments",
              "diff",
              "createTask",
              "listTasks",
              "setTaskState",
              "deleteTask"
            ],
            "type": "string"
          },
          "closeSourceBranch": {
            "description": "Close source branch after merge (optional).",
            "type": "boolean"
          },
          "content": {
            "description": "Comment text (required for action=comment).",
            "type": "string"
          },
          "description": {
            "description": "PR description (optional for action=create).",
            "type": "string"
          },
          "draft": {
            "description": "Create as draft (optional).",
            "type": "boolean"
          },
          "inlineFromLine": {
            "description": "Line number on the old (original/deleted) side of the diff to anchor an inline comment. Requires inlinePath. Mutually exclusive with inlineToLine.",
            "minimum": 1,
            "type": "integer"
          },
          "inlineFromLineStart": {
            "description": "Start line for a multi-line inline comment on the old (original/deleted) side. Requires inlineFromLine; must be \u003c= inlineFromLine. When omitted, the comment is single-line.",
            "minimum": 1,
            "type": "integer"
          },
          "inlinePath": {
            "description": "File path to anchor an inline or file-level comment to the diff (optional for action=comment). Path only (no inlineToLine/inlineFromLine) creates a file-level comment.",
            "maxLength": 4096,
            "minLength": 1,
            "type": "string"
          },
          "inlineToLine": {
            "description": "Line number on the new (added/modified) side of the diff to anchor an inline comment. Requires inlinePath. Mutually exclusive with inlineFromLine.",
            "minimum": 1,
            "type": "integer"
          },
          "inlineToLineStart": {
            "description": "Start line for a multi-line inline comment on the new (added/modified) side. Requires inlineToLine; must be \u003c= inlineToLine. When omitted, the comment is single-line.",
            "minimum": 1,
            "type": "integer"
          },
          "mergeStrategy": {
            "description": "Merge strategy (for action=merge).",
            "type": "string"
          },
          "message": {
            "description": "Merge commit message (for action=merge).",
            "type": "string"
          },
          "page": {
            "description": "Page number for paginated results (for action=list, action=comments, action=listTasks).",
            "minimum": 1,
            "type": "integer"
          },
          "pagelen": {
            "description": "Number of results per page (for action=list, action=comments, action=listTasks).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "parentCommentId": {
            "description": "Parent comment ID. For action=comment: reply to an existing comment thread. For action=createTask: anchor the task to a comment.",
            "type": "number"
          },
          "pending": {
            "description": "When true, creates a pending/draft comment as part of a review instead of publishing immediately (optional for action=comment).",
            "type": "boolean"
          },
          "prId": {
            "description": "Pull request ID (required for get/merge/approve/request-changes/comment/comments/diff and all task actions).",
            "minimum": 1,
            "type": "integer"
          },
          "q": {
            "description": "Filter PRs by query (for action=list).",
            "type": "string"
          },
          "repoId": {
            "description": "Repository identifier: repo slug (preferred), or repo UUID in \"{...}\" form, or a Bitbucket repository URL.",
            "type": "string"
          },
          "reviewers": {
            "description": "Reviewer UUIDs (optional for action=create). Each item must have a uuid field. Use bitbucketRepository with action='defaultReviewers' (and excludeCurrentUser=true) to fetch the repository's default reviewers.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "uuid": {
                  "description": "Reviewer UUID in \"{...}\" format.",
                  "type": "string"
                }
              },
              "required": [
                "uuid"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "sourceBranch": {
            "description": "Source branch (required for action=create).",
            "type": "string"
          },
          "state": {
            "description": "Filter PRs by state (for action=list).",
            "type": "string"
          },
          "targetBranch": {
            "description": "Target branch (default: main).",
            "type": "string"
          },
          "taskContent": {
            "description": "Task text (required for action=createTask). The TODO/checkbox text shown on the PR.",
            "maxLength": 10000,
            "minLength": 1,
            "type": "string"
          },
          "taskId": {
            "description": "Task ID (required for action=setTaskState and action=deleteTask).",
            "minimum": 1,
            "type": "integer"
          },
          "taskState": {
            "description": "Task state (for action=setTaskState). Defaults to \"RESOLVED\".",
            "enum": [
              "RESOLVED",
              "UNRESOLVED"
            ],
            "type": "string"
          },
          "title": {
            "description": "PR title (required for action=create).",
            "type": "string"
          },
          "workspaceId": {
            "description": "Workspace identifier: workspace slug (preferred), or workspace UUID in \"{...}\" form, or a Bitbucket workspace URL.",
            "type": "string"
          }
        },
        "required": [
          "action",
          "workspaceId",
          "repoId"
        ],
        "type": "object"
      },
      "name": "bitbucketPullRequest"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Bitbucket repo content"
      },
      "description": "Bitbucket repo content operations (branch.get, branch.create, commit.get, commit.create, files.get).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "Repo content operation.",
            "enum": [
              "branch.get",
              "branch.create",
              "commit.get",
              "commit.create",
              "files.get"
            ],
            "type": "string"
          },
          "author": {
            "description": "Author in \"Display Name \u003cemail\u003e\" format, e.g. \"Jane Smith \u003cjane@example.com\u003e\" (optional for action=commit.create). Must use this exact format or Bitbucket will return a 400 error. If you have access to the local git config, prefer the values from `git config user.name` and `git config user.email`. Do NOT guess or infer this from branch names, commit messages, or other context — if you cannot read the real identity, omit this field and Bitbucket will attribute the commit to the authenticated user.",
            "type": "string"
          },
          "branch": {
            "description": "Branch to commit to (optional for action=commit.create).",
            "type": "string"
          },
          "branchName": {
            "description": "Branch name (required for action=branch.get).",
            "type": "string"
          },
          "commitHash": {
            "description": "Commit hash (required for action=commit.get).",
            "type": "string"
          },
          "files": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Files map path-\u003econtent (required for action=commit.create).",
            "type": "object"
          },
          "format": {
            "description": "Format: meta | rendered (optional for action=files.get).",
            "type": "string"
          },
          "message": {
            "description": "Commit message (required for action=commit.create).",
            "type": "string"
          },
          "name": {
            "description": "New branch name (required for action=branch.create).",
            "type": "string"
          },
          "parents": {
            "description": "Parent commit hashes (optional for action=commit.create).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "path": {
            "description": "File/dir path (optional for action=files.get).",
            "type": "string"
          },
          "referenceOrSha": {
            "description": "Commit/branch/tag ref (required for action=files.get).",
            "type": "string"
          },
          "repoId": {
            "description": "Repository identifier: repo slug (preferred), or repo UUID in \"{...}\" form, or a Bitbucket repository URL.",
            "type": "string"
          },
          "target": {
            "description": "Target commit hash/branch (required for action=branch.create).",
            "type": "string"
          },
          "workspaceId": {
            "description": "Workspace identifier: workspace slug (preferred), or workspace UUID in \"{...}\" form, or a Bitbucket workspace URL.",
            "type": "string"
          }
        },
        "required": [
          "action",
          "workspaceId",
          "repoId"
        ],
        "type": "object"
      },
      "name": "bitbucketRepoContent"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Bitbucket repository"
      },
      "description": "Bitbucket repository operations (list, get, defaultReviewers, getReportListForCommit, getReportForCommit, getReportAnnotationsForCommit).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "Operation: list or get a repository, get default reviewers, or fetch commit reports and annotations.",
            "enum": [
              "list",
              "get",
              "defaultReviewers",
              "getReportListForCommit",
              "getReportForCommit",
              "getReportAnnotationsForCommit"
            ],
            "type": "string"
          },
          "commit": {
            "description": "Commit hash to fetch reports for (required for action=getReportListForCommit, getReportForCommit, getReportAnnotationsForCommit).",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "excludeCurrentUser": {
            "description": "Whether to exclude the current authenticated user from the default reviewers list (for action=defaultReviewers). Defaults to false.",
            "type": "boolean"
          },
          "page": {
            "description": "Page number for paginated results (for action=getReportListForCommit and action=getReportAnnotationsForCommit).",
            "minimum": 1,
            "type": "integer"
          },
          "pagelen": {
            "description": "Number of results per page, max 100 (for action=getReportListForCommit and action=getReportAnnotationsForCommit).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "q": {
            "description": "List filter query (for action=list).",
            "type": "string"
          },
          "repoId": {
            "description": "Repository identifier: repo slug (preferred), or repo UUID in \"{...}\" form, or a Bitbucket repository URL.",
            "type": "string"
          },
          "reportId": {
            "description": "Report ID (UUID) — required for action=getReportForCommit and action=getReportAnnotationsForCommit.",
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "sort": {
            "description": "Sort order (for action=list).",
            "type": "string"
          },
          "workspaceId": {
            "description": "Workspace identifier: workspace slug (preferred), or workspace UUID in \"{...}\" form, or a Bitbucket workspace URL.",
            "type": "string"
          }
        },
        "required": [
          "action",
          "workspaceId"
        ],
        "type": "object"
      },
      "name": "bitbucketRepository"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Bitbucket workspace"
      },
      "description": "Bitbucket workspace operations (list, get).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "Operation: list or get a workspace.",
            "enum": [
              "list",
              "get"
            ],
            "type": "string"
          },
          "administrator": {
            "description": "Filter to workspaces where the user is an administrator (for action=list).",
            "type": "boolean"
          },
          "limit": {
            "description": "Page size (for action=list).",
            "type": "number"
          },
          "page": {
            "description": "Pagination cursor (for action=list).",
            "type": "string"
          },
          "sort": {
            "description": "Sort order (for action=list).",
            "type": "string"
          },
          "workspaceId": {
            "description": "Workspace identifier: workspace slug (preferred), or workspace UUID in \"{...}\" form, or a Bitbucket workspace URL.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "bitbucketWorkspace"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Create Confluence footer comment"
      },
      "description": "Create a footer comment on a page or blog post",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "attachmentId": {
            "description": "Attachment ID to include",
            "type": "string"
          },
          "body": {
            "description": "Page/comment body. When contentFormat is \"html\", use standard HTML for headings (\u003ch1\u003e-\u003ch6\u003e), paragraphs (\u003cp\u003e), tables (\u003ctable\u003e/\u003cthead\u003e/\u003ctbody\u003e/\u003ctr\u003e/\u003cth\u003e/\u003ctd\u003e), links (\u003ca href=\"URL\"\u003e), code (\u003cpre\u003e\u003ccode class=\"language-python\"\u003e), and lists (\u003cul\u003e/\u003col\u003e/\u003cli\u003e). Confluence-specific HTML+ uses data-type attributes, not CSS classes: panels \u003cdiv data-type=\"panel-info|panel-warning|panel-note|panel-success|panel-error\"\u003e\u003cp\u003etext\u003c/p\u003e\u003c/div\u003e; status \u003cspan data-type=\"status\" data-color=\"green|red|yellow|blue|neutral|purple\"\u003eLabel\u003c/span\u003e; task list \u003cul data-type=\"task-list\"\u003e\u003cli data-type=\"task-item\"\u003e\u003cinput type=\"checkbox\"\u003e Item\u003c/li\u003e\u003c/ul\u003e; decision list \u003cul data-type=\"decision-list\"\u003e\u003cli data-type=\"decision-item\" data-state=\"DECIDED|UNDECIDED\"\u003etext\u003c/li\u003e\u003c/ul\u003e; expand \u003cdetails\u003e\u003csummary\u003eTitle\u003c/summary\u003e\u003cp\u003econtent\u003c/p\u003e\u003c/details\u003e; layout \u003csection data-type=\"layout-two-equal|layout-three-equal\"\u003e\u003cdiv data-type=\"column\"\u003e\u003cp\u003eColumn\u003c/p\u003e\u003c/div\u003e\u003c/section\u003e; inline card \u003ca href=\"URL\" data-card-appearance=\"inline\"\u003etext\u003c/a\u003e; date \u003ctime datetime=\"YYYY-MM-DD\"\u003elabel\u003c/time\u003e; mention \u003cspan data-type=\"mention\" data-user-id=\"ACCOUNT_ID\"\u003e@Name\u003c/span\u003e; inline placeholder \u003cspan data-type=\"placeholder\"\u003eprompt\u003c/span\u003e; macro/extension \u003cdiv data-type=\"extension|bodied-extension|multi-bodied-extension\" data-extension-key=\"KEY\" data-extension-type=\"TYPE\" data-parameters=\"JSON\"\u003e\u003c/div\u003e; sync block \u003cdiv data-type=\"sync-block|bodied-sync-block\" data-resource-id=\"ID\"\u003e\u003c/div\u003e; media group \u003cdiv data-type=\"media-group\"\u003e\u003cdiv data-type=\"media\" data-media-type=\"file\" data-id=\"MEDIA_ID\" data-collection=\"COLLECTION\"\u003efile.pdf\u003c/div\u003e\u003c/div\u003e; inline media \u003cspan data-type=\"media-inline\" data-media-id=\"MEDIA_ID\" data-media-collection=\"COLLECTION\"\u003efile.pdf\u003c/span\u003e. For native Confluence macros use data-extension-type=\"com.atlassian.confluence.macro.core\" and never storage XML (\u003cac:structured-macro\u003e). Omit macroId. Do not invent opaque IDs: only copy data-user-id, data-id, data-collection, data-media-id, data-media-collection, data-resource-id, and data-local-id from existing content or tool output; omit data-local-id on new nodes. Preserve existing data-local-id when editing fetched HTML. Tables support data-number-column, data-layout=\"default|center|wide|full-width\", data-display-mode=\"fixed\", data-width, row/col spans, data-colwidth, and cell data-background. Breakout supports data-breakout=\"wide|full-width\" on details, pre, section, and sync blocks. Follow ADF nesting: task/decision items, headings, and captions are inline-only; list items cannot contain headings/tables/panels/expands; panels cannot contain tables/expands/blockquotes/panels; table cells can contain headings, panels, lists, media, blockquote, decision list, and nested expand (\u003cdetails data-type=\"nested-expand\"\u003e) but not nested tables or normal expand. Never wrap content in \u003chtml\u003e, \u003chead\u003e, or \u003cbody\u003e tags.",
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for page/comment body. Use \"html\" to write or read Confluence content as structured HTML. HTML supports standard blocks plus Confluence HTML+ data-type nodes: panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, and sync blocks. HTML is round-trip safe and preserves inline comments and existing local IDs. It must follow valid ADF nesting rules: inline-only task/decision items, headings, and captions; no self-nesting panels, expands, tables, or blockquotes. Invalid HTML will be rejected with a descriptive error so you can retry. Use \"markdown\" for simplified plain text. Defaults vary by tool when omitted.",
            "enum": [
              "html",
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "contentType": {
            "default": "page",
            "description": "Type of content: page or blog post",
            "enum": [
              "page",
              "blog"
            ],
            "type": "string"
          },
          "customContentId": {
            "description": "Custom content ID to include",
            "type": "string"
          },
          "pageId": {
            "description": "Page or blog post ID, or a Confluence tiny link ID (the encoded part from /wiki/x/ URLs, e.g., Fc1bBw)",
            "type": "string"
          },
          "parentCommentId": {
            "description": "Parent comment ID for replies",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "body"
        ],
        "type": "object"
      },
      "name": "createConfluenceFooterComment"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Create Confluence inline comment"
      },
      "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only (no pageId or inlineCommentProperties). You must first fetch the page content (e.g. using getConfluencePage) to find the exact text and count how many times it appears. Incorrect or missing inlineCommentProperties can result in a 400 error from the Confluence API.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "body": {
            "description": "Page/comment body. When contentFormat is \"html\", use standard HTML for headings (\u003ch1\u003e-\u003ch6\u003e), paragraphs (\u003cp\u003e), tables (\u003ctable\u003e/\u003cthead\u003e/\u003ctbody\u003e/\u003ctr\u003e/\u003cth\u003e/\u003ctd\u003e), links (\u003ca href=\"URL\"\u003e), code (\u003cpre\u003e\u003ccode class=\"language-python\"\u003e), and lists (\u003cul\u003e/\u003col\u003e/\u003cli\u003e). Confluence-specific HTML+ uses data-type attributes, not CSS classes: panels \u003cdiv data-type=\"panel-info|panel-warning|panel-note|panel-success|panel-error\"\u003e\u003cp\u003etext\u003c/p\u003e\u003c/div\u003e; status \u003cspan data-type=\"status\" data-color=\"green|red|yellow|blue|neutral|purple\"\u003eLabel\u003c/span\u003e; task list \u003cul data-type=\"task-list\"\u003e\u003cli data-type=\"task-item\"\u003e\u003cinput type=\"checkbox\"\u003e Item\u003c/li\u003e\u003c/ul\u003e; decision list \u003cul data-type=\"decision-list\"\u003e\u003cli data-type=\"decision-item\" data-state=\"DECIDED|UNDECIDED\"\u003etext\u003c/li\u003e\u003c/ul\u003e; expand \u003cdetails\u003e\u003csummary\u003eTitle\u003c/summary\u003e\u003cp\u003econtent\u003c/p\u003e\u003c/details\u003e; layout \u003csection data-type=\"layout-two-equal|layout-three-equal\"\u003e\u003cdiv data-type=\"column\"\u003e\u003cp\u003eColumn\u003c/p\u003e\u003c/div\u003e\u003c/section\u003e; inline card \u003ca href=\"URL\" data-card-appearance=\"inline\"\u003etext\u003c/a\u003e; date \u003ctime datetime=\"YYYY-MM-DD\"\u003elabel\u003c/time\u003e; mention \u003cspan data-type=\"mention\" data-user-id=\"ACCOUNT_ID\"\u003e@Name\u003c/span\u003e; inline placeholder \u003cspan data-type=\"placeholder\"\u003eprompt\u003c/span\u003e; macro/extension \u003cdiv data-type=\"extension|bodied-extension|multi-bodied-extension\" data-extension-key=\"KEY\" data-extension-type=\"TYPE\" data-parameters=\"JSON\"\u003e\u003c/div\u003e; sync block \u003cdiv data-type=\"sync-block|bodied-sync-block\" data-resource-id=\"ID\"\u003e\u003c/div\u003e; media group \u003cdiv data-type=\"media-group\"\u003e\u003cdiv data-type=\"media\" data-media-type=\"file\" data-id=\"MEDIA_ID\" data-collection=\"COLLECTION\"\u003efile.pdf\u003c/div\u003e\u003c/div\u003e; inline media \u003cspan data-type=\"media-inline\" data-media-id=\"MEDIA_ID\" data-media-collection=\"COLLECTION\"\u003efile.pdf\u003c/span\u003e. For native Confluence macros use data-extension-type=\"com.atlassian.confluence.macro.core\" and never storage XML (\u003cac:structured-macro\u003e). Omit macroId. Do not invent opaque IDs: only copy data-user-id, data-id, data-collection, data-media-id, data-media-collection, data-resource-id, and data-local-id from existing content or tool output; omit data-local-id on new nodes. Preserve existing data-local-id when editing fetched HTML. Tables support data-number-column, data-layout=\"default|center|wide|full-width\", data-display-mode=\"fixed\", data-width, row/col spans, data-colwidth, and cell data-background. Breakout supports data-breakout=\"wide|full-width\" on details, pre, section, and sync blocks. Follow ADF nesting: task/decision items, headings, and captions are inline-only; list items cannot contain headings/tables/panels/expands; panels cannot contain tables/expands/blockquotes/panels; table cells can contain headings, panels, lists, media, blockquote, decision list, and nested expand (\u003cdetails data-type=\"nested-expand\"\u003e) but not nested tables or normal expand. Never wrap content in \u003chtml\u003e, \u003chead\u003e, or \u003cbody\u003e tags.",
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for page/comment body. Use \"html\" to write or read Confluence content as structured HTML. HTML supports standard blocks plus Confluence HTML+ data-type nodes: panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, and sync blocks. HTML is round-trip safe and preserves inline comments and existing local IDs. It must follow valid ADF nesting rules: inline-only task/decision items, headings, and captions; no self-nesting panels, expands, tables, or blockquotes. Invalid HTML will be rejected with a descriptive error so you can retry. Use \"markdown\" for simplified plain text. Defaults vary by tool when omitted.",
            "enum": [
              "html",
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "contentType": {
            "default": "page",
            "description": "Type of content: page or blog post",
            "enum": [
              "page",
              "blog"
            ],
            "type": "string"
          },
          "inlineCommentProperties": {
            "additionalProperties": false,
            "description": "Required for top-level inline comments (not replies). Provide textSelection, textSelectionMatchCount (total occurrences on the page), and textSelectionMatchIndex (0-based, must be \u003c textSelectionMatchCount).",
            "properties": {
              "textSelection": {
                "description": "The exact text on the page to anchor the inline comment to. Must match the rendered page text exactly (case-sensitive).",
                "minLength": 1,
                "type": "string"
              },
              "textSelectionMatchCount": {
                "description": "Total number of times the textSelection string appears on the page. Fetch the page content and count occurrences before calling this tool.",
                "minimum": 0,
                "type": "integer"
              },
              "textSelectionMatchIndex": {
                "description": "Zero-based index of the specific occurrence of textSelection to anchor the comment to. Must be less than textSelectionMatchCount.",
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "textSelection",
              "textSelectionMatchCount",
              "textSelectionMatchIndex"
            ],
            "type": "object"
          },
          "pageId": {
            "description": "Page or blog post ID, or a Confluence tiny link ID (the encoded part from /wiki/x/ URLs, e.g., Fc1bBw). Use for top-level inline comments only; do not provide with parentCommentId.",
            "type": "string"
          },
          "parentCommentId": {
            "description": "Parent comment ID for replies. When provided, this creates a reply to an existing inline comment thread. Do not provide pageId or inlineCommentProperties.",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "body"
        ],
        "type": "object"
      },
      "name": "createConfluenceInlineComment"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Create Confluence page"
      },
      "description": "Create a Confluence page or blog post. When contentFormat is \"html\" or omitted because HTML is the default, first call the getContentFormatGuide tool with { toolName: \"createConfluencePage\" } and follow the returned HTML-format guidance. Do not call it when contentFormat is \"markdown\".",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "body": {
            "description": "Page body. When contentFormat is \"html\" or omitted, author this field using the HTML-format guidance returned by the getContentFormatGuide tool for createConfluencePage.",
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "contentFormat": {
            "description": "Body format. HTML is the default. When contentFormat is \"html\" or omitted, first call the getContentFormatGuide tool with { toolName: \"createConfluencePage\" } and follow the returned HTML-format guidance. Use \"markdown\" for simplified plain text.",
            "enum": [
              "html",
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "contentType": {
            "default": "page",
            "description": "Type of content: page or blog post",
            "enum": [
              "page",
              "blog"
            ],
            "type": "string"
          },
          "isPrivate": {
            "description": "Make private",
            "type": "boolean"
          },
          "parentId": {
            "description": "ID of the parent to nest the new page under. Accepts the ID of any container that can hold a page — a page, folder, whiteboard, database, embed, or slide (smart links surface as embeds). Applies to pages only; ignored for blog posts.",
            "type": "string"
          },
          "spaceId": {
            "description": "Numeric space ID (a Long, e.g. \"131073\"). A space key (e.g. \"ENG\") or personal-space key (e.g. \"~712020abc\") is also accepted and resolved to the numeric ID automatically.",
            "type": "string"
          },
          "status": {
            "default": "current",
            "description": "Status (draft for unpublished)",
            "enum": [
              "current",
              "draft"
            ],
            "type": "string"
          },
          "subtype": {
            "description": "Page subtype (pages only, ignored for blogs)",
            "enum": [
              "live"
            ],
            "type": "string"
          },
          "title": {
            "description": "Page or blog post title",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "spaceId",
          "body"
        ],
        "type": "object"
      },
      "name": "createConfluencePage"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Create issue link"
      },
      "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" → inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "comment": {
            "description": "Optional comment on the outward issue.",
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "inwardIssue": {
            "description": "Inward issue key (e.g. HSP-1).",
            "type": "string"
          },
          "outwardIssue": {
            "description": "Outward issue key (e.g. MKY-1).",
            "type": "string"
          },
          "type": {
            "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types.",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "inwardIssue",
          "outwardIssue",
          "type"
        ],
        "type": "object"
      },
      "name": "createIssueLink"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Create issue"
      },
      "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "additional_fields": {
            "additionalProperties": {},
            "description": "REQUIRED for custom fields. This is the ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Pass a JSON object with field names as keys. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}.",
            "type": "object"
          },
          "assignee_account_id": {
            "description": "Assignee ID",
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 32000,
                "type": "string"
              },
              {
                "additionalProperties": true,
                "properties": {
                  "type": {
                    "const": "doc",
                    "type": "string"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ],
            "description": "Issue description. With contentFormat \"markdown\" (default), pass plain text or Markdown as a string. With contentFormat \"adf\", pass an ADF JSON string or a document object with type \"doc\"."
          },
          "issueTypeName": {
            "description": "Type (Task, Bug, Story)",
            "type": "string"
          },
          "parent": {
            "description": "Parent for subtasks",
            "type": "string"
          },
          "projectKey": {
            "description": "Project key",
            "type": "string"
          },
          "responseContentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "transition": {
            "additionalProperties": false,
            "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid transition IDs. Placed at top level of Jira API request, not inside fields.",
            "properties": {
              "id": {
                "description": "The workflow transition ID to apply during issue creation",
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          }
        },
        "required": [
          "cloudId",
          "projectKey",
          "issueTypeName",
          "summary"
        ],
        "type": "object"
      },
      "name": "createJiraIssue"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Update issue"
      },
      "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "fields": {
            "additionalProperties": {},
            "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass an explicit null, e.g. { \"resolution\": null }. Clearing the resolution is the fix when a reopened issue is blocked from transitioning because it still has a Resolution set.",
            "type": "object"
          },
          "issueIdOrKey": {
            "description": "Issue ID or key (e.g., PROJ-123 or 10000)",
            "type": "string"
          },
          "responseContentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "issueIdOrKey",
          "fields"
        ],
        "type": "object"
      },
      "name": "editJiraIssue"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Fetch content with ARI"
      },
      "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "id": {
            "description": "Atlassian Resource Identifier (ARI) from search results, e.g., \"ari:cloud:jira:cloudId:issue/10107\" or \"ari:cloud:confluence:cloudId:page/123456789\"",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "id"
        ],
        "type": "object"
      },
      "name": "fetchAtlassian"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List accessible resources"
      },
      "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname (e.g. site.atlassian.net) as cloudId to other tools first; if that fails, use this tool to list accessible resources.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "getAccessibleAtlassianResources"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get comment replies"
      },
      "description": "Get reply(child) comments for a comment",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "commentId": {
            "description": "Parent comment ID",
            "type": "string"
          },
          "commentType": {
            "description": "Comment type",
            "enum": [
              "footer",
              "inline"
            ],
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "cursor": {
            "description": "Pagination cursor",
            "type": "string"
          },
          "limit": {
            "description": "Max replies",
            "type": "number"
          },
          "sort": {
            "description": "Sort order",
            "enum": [
              "id",
              "-id",
              "created-date",
              "-created-date"
            ],
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "commentId",
          "commentType"
        ],
        "type": "object"
      },
      "name": "getConfluenceCommentChildren"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Retrieve Confluence page"
      },
      "description": "Get a Confluence page or blog post by ID, including body content. Use getTeamworkGraphContext with objectType ConfluencePage, ConfluenceBlogPost, ConfluenceWhiteboard, or ConfluenceSpace to get linked comments, child pages, shared users, and page owners.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for page/comment body. Use \"html\" to write or read Confluence content as structured HTML. HTML supports standard blocks plus Confluence HTML+ data-type nodes: panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, and sync blocks. HTML is round-trip safe and preserves inline comments and existing local IDs. It must follow valid ADF nesting rules: inline-only task/decision items, headings, and captions; no self-nesting panels, expands, tables, or blockquotes. Invalid HTML will be rejected with a descriptive error so you can retry. Use \"markdown\" for simplified plain text. Defaults vary by tool when omitted.",
            "enum": [
              "html",
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "contentType": {
            "default": "page",
            "description": "Type of content: page or blog post",
            "enum": [
              "page",
              "blog"
            ],
            "type": "string"
          },
          "pageId": {
            "description": "Page or blog post ID, or a Confluence tiny link ID (the encoded part from /wiki/x/ URLs, e.g., Fc1bBw)",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "pageId"
        ],
        "type": "object"
      },
      "name": "getConfluencePage"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List page descendants"
      },
      "description": "Get child pages of specified page",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "cursor": {
            "description": "Pagination cursor",
            "type": "string"
          },
          "depth": {
            "description": "Max depth",
            "type": "number"
          },
          "limit": {
            "description": "Max descendants",
            "type": "number"
          },
          "pageId": {
            "description": "Page or blog post ID, or a Confluence tiny link ID (the encoded part from /wiki/x/ URLs, e.g., Fc1bBw)",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "pageId"
        ],
        "type": "object"
      },
      "name": "getConfluencePageDescendants"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get page comments"
      },
      "description": "Get footer comments for a page or blog post",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "contentType": {
            "default": "page",
            "description": "Type of content: page or blog post",
            "enum": [
              "page",
              "blog"
            ],
            "type": "string"
          },
          "cursor": {
            "description": "Pagination cursor",
            "type": "string"
          },
          "includeReplies": {
            "default": false,
            "description": "When true, also return reply comments",
            "type": "boolean"
          },
          "limit": {
            "description": "Max comments",
            "type": "number"
          },
          "pageId": {
            "description": "Page or blog post ID, or a Confluence tiny link ID (the encoded part from /wiki/x/ URLs, e.g., Fc1bBw)",
            "type": "string"
          },
          "repliesPerComment": {
            "maximum": 25,
            "minimum": 1,
            "type": "integer"
          },
          "sort": {
            "description": "Sort order",
            "enum": [
              "id",
              "-id",
              "created-date",
              "-created-date"
            ],
            "type": "string"
          },
          "status": {
            "default": "current",
            "description": "Comment status",
            "enum": [
              "current",
              "archived",
              "trashed",
              "deleted",
              "historical",
              "draft"
            ],
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "pageId"
        ],
        "type": "object"
      },
      "name": "getConfluencePageFooterComments"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List page inline comments"
      },
      "description": "Get inline comments for a page or blog post",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "contentType": {
            "default": "page",
            "description": "Type of content: page or blog post",
            "enum": [
              "page",
              "blog"
            ],
            "type": "string"
          },
          "cursor": {
            "description": "Pagination cursor",
            "type": "string"
          },
          "includeReplies": {
            "default": false,
            "description": "When true, also return reply comments",
            "type": "boolean"
          },
          "limit": {
            "description": "Max comments",
            "type": "number"
          },
          "pageId": {
            "description": "Page or blog post ID, or a Confluence tiny link ID (the encoded part from /wiki/x/ URLs, e.g., Fc1bBw)",
            "type": "string"
          },
          "repliesPerComment": {
            "maximum": 25,
            "minimum": 1,
            "type": "integer"
          },
          "resolutionStatus": {
            "default": "open",
            "description": "Resolution status",
            "enum": [
              "resolved",
              "open",
              "dangling",
              "reopened"
            ],
            "type": "string"
          },
          "sort": {
            "description": "Sort order",
            "enum": [
              "id",
              "-id",
              "created-date",
              "-created-date"
            ],
            "type": "string"
          },
          "status": {
            "default": "current",
            "description": "Comment status",
            "enum": [
              "current",
              "archived",
              "trashed",
              "deleted",
              "historical",
              "draft"
            ],
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "pageId"
        ],
        "type": "object"
      },
      "name": "getConfluencePageInlineComments"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get spaces"
      },
      "description": "Get spaces",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "expand": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "description": "Properties to expand"
          },
          "favoritedBy": {
            "description": "User favorites",
            "type": "string"
          },
          "favourite": {
            "description": "Favorite spaces only",
            "type": "boolean"
          },
          "ids": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              }
            ],
            "description": "Space IDs"
          },
          "keys": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "description": "Space keys"
          },
          "labels": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "description": "Space labels"
          },
          "limit": {
            "description": "Max results (default: 25, max: 250)",
            "type": "number"
          },
          "start": {
            "description": "Start index",
            "type": "number"
          },
          "status": {
            "description": "Space status",
            "enum": [
              "current",
              "archived"
            ],
            "type": "string"
          },
          "type": {
            "description": "Space type",
            "enum": [
              "global",
              "personal"
            ],
            "type": "string"
          }
        },
        "required": [
          "cloudId"
        ],
        "type": "object"
      },
      "name": "getConfluenceSpaces"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get content format guide"
      },
      "description": "Get the canonical Confluence HTML-format guidance for `createConfluencePage` or `updateConfluencePage`. Use this tool before authoring HTML/default page bodies or fine-grained HTML edits. First call with only `toolName`; if the returned guidance references a follow-up document, call this tool again with the same `toolName` and `reference` set to that single referenced path. Fetch one document per call. Valid `toolName` values: createConfluencePage, updateConfluencePage.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "reference": {
            "description": "Forward-compatible provider-specific path for follow-up guidance referenced by the initial response. The current page guide does not emit follow-up references.",
            "minLength": 1,
            "type": "string"
          },
          "toolName": {
            "description": "The Confluence page tool whose body you are authoring: `createConfluencePage` or `updateConfluencePage`. Do not pass a content type or `getContentFormatGuide` itself.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "toolName"
        ],
        "type": "object"
      },
      "name": "getContentFormatGuide"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get issue link types"
      },
      "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" → inwardIssue: B, outwardIssue: A).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          }
        },
        "required": [
          "cloudId"
        ],
        "type": "object"
      },
      "name": "getIssueLinkTypes"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get issue"
      },
      "description": "Get issue details. Use getTeamworkGraphContext to get linked deployments, PRs, builds, branches, commits, designs, issues, confluence whiteboards, feature flags, vulnerabilities, sprints and remote links to Jira Issues.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "expand": {
            "description": "Additional issue details to expand in the response (for example, renderedFields or names).",
            "type": "string"
          },
          "failFast": {
            "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data.",
            "type": "boolean"
          },
          "fields": {
            "description": "Issue fields to return. When omitted or empty, defaults to: summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project. Pass \"*all\" to return every field (including custom fields). Include \"comment\" to fetch issue comments in fields.comment.comments.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "fieldsByKeys": {
            "description": "Whether fields in the request are referenced by field keys instead of IDs.",
            "type": "boolean"
          },
          "issueIdOrKey": {
            "description": "Issue ID or key (e.g., PROJ-123 or 10000)",
            "type": "string"
          },
          "properties": {
            "description": "Issue property keys to include in the response.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "responseContentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "updateHistory": {
            "description": "Whether to update the user's recently viewed projects/history for this issue request.",
            "type": "boolean"
          }
        },
        "required": [
          "cloudId",
          "issueIdOrKey"
        ],
        "type": "object"
      },
      "name": "getJiraIssue"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get remote links"
      },
      "description": "Get remote links",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "globalId": {
            "type": "string"
          },
          "issueIdOrKey": {
            "description": "Issue ID or key (e.g., PROJ-123 or 10000)",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "issueIdOrKey"
        ],
        "type": "object"
      },
      "name": "getJiraIssueRemoteIssueLinks"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get field metadata"
      },
      "description": "Get field metadata",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "issueTypeId": {
            "type": "string"
          },
          "maxResults": {
            "type": "number"
          },
          "projectIdOrKey": {
            "type": "string"
          },
          "requiredFieldsOnly": {
            "description": "When true (default), returns only the fields that are required to create an issue of this type, reducing response size. Set to false to return all available fields (both required and optional).",
            "type": "boolean"
          },
          "startAt": {
            "type": "number"
          }
        },
        "required": [
          "cloudId",
          "projectIdOrKey",
          "issueTypeId"
        ],
        "type": "object"
      },
      "name": "getJiraIssueTypeMetaWithFields"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get issue types"
      },
      "description": "Get issue types",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "maxResults": {
            "default": 50,
            "maximum": 200,
            "type": "number"
          },
          "projectIdOrKey": {
            "type": "string"
          },
          "startAt": {
            "default": 0,
            "type": "number"
          }
        },
        "required": [
          "cloudId",
          "projectIdOrKey"
        ],
        "type": "object"
      },
      "name": "getJiraProjectIssueTypesMetadata"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get JSM Ops alerts"
      },
      "description": "Get a single alert by ID or alias, or search alerts using query and time window filters. Supports query syntax like \"priority:P1 AND status:open AND team:Web\". Parameters id, alias, and query are mutually exclusive. If no parameters are provided, returns a paginated list of alerts (default size: 20, maximum: 100).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "alias": {
            "description": "Alert alias. Mutually exclusive with id and query parameters.",
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "from": {
            "description": "Start of time window for filtering alerts (ISO 8601 date-time format, e.g., \"2025-11-01T00:00:00Z\"). Can be used with or without query parameter. Must be used in conjunction with to parameter.",
            "type": "string"
          },
          "id": {
            "description": "Alert ID (UUID). Mutually exclusive with alias and query parameters.",
            "type": "string"
          },
          "offset": {
            "description": "Starting index (offset) for pagination. Default: 0. Minimum: 0.",
            "minimum": 0,
            "type": "number"
          },
          "query": {
            "description": "Search query string (e.g., \"priority:P1 AND status:open AND team:Web\"). Can be used with or without time window parameters.",
            "type": "string"
          },
          "size": {
            "description": "Maximum number of items to return per page. Default: 20. Range: 1-100.",
            "maximum": 100,
            "minimum": 1,
            "type": "number"
          },
          "to": {
            "description": "End of time window for filtering alerts (ISO 8601 date-time format, e.g., \"2025-11-01T00:00:00Z\"). Can be used with or without query parameter. Must be used in conjunction with from parameter.",
            "type": "string"
          }
        },
        "required": [
          "cloudId"
        ],
        "type": "object"
      },
      "name": "getJsmOpsAlerts"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get JSM Ops schedule info"
      },
      "description": "Get schedule information: list all schedules, get a specific schedule by ID, or retrieve on-call responders. Use action=\"schedule\" to list schedules or get schedule details. Use action=\"oncall\" to get current or next on-call responders for a schedule.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "default": "schedule",
            "description": "Action to perform. Use \"schedule\" to list or get schedules. Use \"oncall\" to get on-call responders. Default: \"schedule\".",
            "enum": [
              "schedule",
              "oncall"
            ],
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "flat": {
            "default": false,
            "description": "If true, returns just an array of user responders. If false, returns full responder objects. Default: false. Only used when action=\"oncall\".",
            "type": "boolean"
          },
          "next": {
            "default": false,
            "description": "If true, returns next on-call responders. If false, returns current on-call responders. Default: false. Only used when action=\"oncall\".",
            "type": "boolean"
          },
          "offset": {
            "description": "Starting index (offset) for pagination. Default: 0. Minimum: 0. Only used when action=\"schedule\".",
            "minimum": 0,
            "type": "number"
          },
          "query": {
            "description": "Query keyword to filter schedules by name. Only used when action=\"schedule\".",
            "type": "string"
          },
          "scheduleId": {
            "description": "Schedule ID (UUID). When action=\"schedule\": if provided, returns details for the specific schedule; if omitted, returns a list of all schedules without rotations. When action=\"oncall\": required to get on-call responders for the schedule.",
            "type": "string"
          },
          "size": {
            "description": "Maximum number of items to return per page. Default: 25. Range: 1-50. Only used when action=\"schedule\".",
            "maximum": 50,
            "minimum": 1,
            "type": "number"
          }
        },
        "required": [
          "cloudId"
        ],
        "type": "object"
      },
      "name": "getJsmOpsScheduleInfo"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get JSM Ops team info"
      },
      "description": "Get team information: list all teams or get escalation policies for a specific team. Use action=\"teams\" to retrieve a list of all teams based on the user's role. Use action=\"escalations\" to list escalation policies for a team (to obtain escalationId values used by updateJsmOpsAlert).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "default": "teams",
            "description": "Action to perform. Use \"teams\" to list all teams. Use \"escalations\" to list escalation policies for a team. Default: \"teams\".",
            "enum": [
              "teams",
              "escalations"
            ],
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "offset": {
            "description": "Starting index (offset) for pagination. Default: 0. Minimum: 0. Only used when action=\"escalations\".",
            "minimum": 0,
            "type": "number"
          },
          "size": {
            "description": "Maximum number of items to return per page. Default: 20. Range: 1-100. Only used when action=\"escalations\".",
            "maximum": 100,
            "minimum": 1,
            "type": "number"
          },
          "teamId": {
            "description": "Team ID (UUID). Required when action=\"escalations\".",
            "type": "string"
          }
        },
        "required": [
          "cloudId"
        ],
        "type": "object"
      },
      "name": "getJsmOpsTeamInfo"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get pages in space"
      },
      "description": "Get pages or blog posts in a space",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "contentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "contentType": {
            "default": "page",
            "description": "Type of content: page or blog post",
            "enum": [
              "page",
              "blog"
            ],
            "type": "string"
          },
          "cursor": {
            "description": "Pagination cursor",
            "type": "string"
          },
          "limit": {
            "description": "Max results (default: 25, max: 250)",
            "maximum": 250,
            "minimum": 1,
            "type": "integer"
          },
          "sort": {
            "description": "Sort order",
            "enum": [
              "id",
              "-id",
              "created-date",
              "-created-date",
              "modified-date",
              "-modified-date",
              "title",
              "-title"
            ],
            "type": "string"
          },
          "spaceId": {
            "description": "Space ID",
            "type": "string"
          },
          "status": {
            "description": "Page status",
            "enum": [
              "current",
              "archived",
              "deleted",
              "trashed"
            ],
            "type": "string"
          },
          "title": {
            "description": "Title filter",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "spaceId"
        ],
        "type": "object"
      },
      "name": "getPagesInConfluenceSpace"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get Teamwork Graph context"
      },
      "description": "Retrieves connected context from Teamwork Graph for any Atlassian entity. Returns all relationships and linked objects within one traversal – including cross-product and third-party connections. Use when the answer requires connections between entities, not just a single entity's fields.\n\nSupported entry points:\n\nJira: issues, projects, sprints, versions, comments\n\nConfluence: pages, blogposts, whiteboards, databases, spaces\n\nGoals, Projects, Focus Areas, Tags and updates\n\nPeople: users, teams, organisations\n\nDevOps: PRs, repos, deployments, services, builds, designs\n\nLoom: videos, meetings\n\nCompass: components\n\nAssets: objects\n\nIncidents, conversations, calendar events, external documents\n\nAfter calling this tool, call getTeamworkGraphObject on returned ARIs to get full content.\n\nThe utilisation of this tool may consume up to 10 Rovo Credits. If the user or organization does not have any Rovo Credits available, the tool call will fail.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "after": {
            "description": "Pagination cursor for fetching the next page of results.",
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "detailLevel": {
            "default": "summary",
            "description": "'summary' (counts/metadata) or 'full' (detailed content).",
            "enum": [
              "summary",
              "full"
            ],
            "type": "string"
          },
          "first": {
            "default": 50,
            "description": "Max number of related items to return.",
            "maximum": 50,
            "type": "integer"
          },
          "objectIdentifier": {
            "description": "Identifier for the object. It could be a key (e.g. ENG-1234), ID, ARI, or full URL; format depends on objectType.",
            "maxLength": 500,
            "type": "string"
          },
          "objectType": {
            "description": "Type of object to fetch context for.",
            "enum": [
              "AtlassianGoal",
              "AtlassianGoalUpdate",
              "AtlassianHomeComment",
              "AtlassianHomeTag",
              "AtlassianProject",
              "AtlassianProjectUpdate",
              "AtlassianTeam",
              "AtlassianUser",
              "CompassComponent",
              "ConfluenceBlogPost",
              "ConfluenceComment",
              "ConfluenceDatabase",
              "ConfluencePage",
              "ConfluenceSpace",
              "ConfluenceWhiteboard",
              "ExternalCalendarEvent",
              "ExternalConversation",
              "ExternalDeployment",
              "ExternalDesign",
              "ExternalDocument",
              "ExternalOrganisation",
              "ExternalPosition",
              "ExternalPullRequest",
              "ExternalRepository",
              "ExternalService",
              "FocusFocusArea",
              "JiraSpace",
              "JiraSprint",
              "JiraVersion",
              "JiraWorkItem",
              "JiraWorkItemComment",
              "AssetsObject",
              "LoomMeeting",
              "LoomMeetingRecurrence",
              "LoomVideo"
            ],
            "type": "string"
          },
          "relationshipTypes": {
            "description": "Filter full results to specific relationship types to save tokens (e.g. 'jira-work-item-links-external-build' for Jira work items).",
            "items": {
              "maxLength": 200,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "targetObjectTypes": {
            "description": "Filter results to only include relationships targeting specific object types (e.g. AtlassianUser, ConfluenceComment).",
            "items": {
              "maxLength": 200,
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "timeRange": {
            "additionalProperties": false,
            "description": "Optional time range to filter relationships by creation or update time.",
            "properties": {
              "from": {
                "description": "ISO 8601 date-time string for the start of the time range (e.g. \"2025-01-01T00:00:00Z\").",
                "format": "date-time",
                "type": "string"
              },
              "to": {
                "description": "ISO 8601 date-time string for the end of the time range (e.g. \"2025-12-31T23:59:59Z\").",
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "required": [
          "cloudId",
          "objectType",
          "objectIdentifier"
        ],
        "type": "object"
      },
      "name": "getTeamworkGraphContext"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get Teamwork Graph object"
      },
      "description": "Fetches the entire available data for one or more objects (Atlassian or third-party) using their ARIs or URLs. Use for the objects gathered from getTeamworkGraphContext tool.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "objects": {
            "description": "A list of object identifiers to hydrate. Supports both ARIs (e.g., 'ari:cloud:jira::issue/123') and full browser URLs (e.g., 'https://mysite.atlassian.net/browse/PROJ-1').",
            "items": {
              "maxLength": 500,
              "type": "string"
            },
            "maxItems": 25,
            "type": "array"
          }
        },
        "required": [
          "cloudId",
          "objects"
        ],
        "type": "object"
      },
      "name": "getTeamworkGraphObject"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get transitions"
      },
      "description": "Get transitions",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "expand": {
            "type": "string"
          },
          "includeUnavailableTransitions": {
            "type": "boolean"
          },
          "issueIdOrKey": {
            "description": "Issue ID or key (e.g., PROJ-123 or 10000)",
            "type": "string"
          },
          "skipRemoteOnlyCondition": {
            "type": "boolean"
          },
          "sortByOpsBarAndStatus": {
            "type": "boolean"
          },
          "transitionId": {
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "issueIdOrKey"
        ],
        "type": "object"
      },
      "name": "getTransitionsForJiraIssue"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get projects"
      },
      "description": "Get projects",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "default": "create",
            "enum": [
              "view",
              "browse",
              "edit",
              "create"
            ],
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "expandIssueTypes": {
            "default": true,
            "type": "boolean"
          },
          "maxResults": {
            "default": 50,
            "maximum": 50,
            "type": "number"
          },
          "searchString": {
            "type": "string"
          },
          "startAt": {
            "default": 0,
            "type": "number"
          }
        },
        "required": [
          "cloudId"
        ],
        "type": "object"
      },
      "name": "getVisibleJiraProjects"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Lookup users"
      },
      "description": "Lookup user IDs",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "searchString": {
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "searchString"
        ],
        "type": "object"
      },
      "name": "lookupJiraAccountId"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Rovo Search Jira and Confluence"
      },
      "description": "Search Jira, Confluence and linked 3P data using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context. The utilisation of this tool may consume up to 10 Rovo Credits. If the user or organization does not have any Rovo Credits available, the tool call will fail.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "query": {
            "description": "The search query to use for Rovo Search",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "query"
        ],
        "type": "object"
      },
      "name": "searchAtlassian"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Search Confluence with CQL"
      },
      "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "cql": {
            "description": "CQL (Confluence Query Language) query string. CQL is specific to Confluence and is not JQL. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash: title ~ \"Q2 \\\"planning\\\" review\". Examples: title ~ \"meeting notes\" AND type = page | space.title ~ \"Engineering\" AND lastmodified \u003e= now(\"-2w\") AND type = page | creator = currentUser() AND type = page | text ~ \"Q2 \\\"planning\\\" review\" AND type = page",
            "type": "string"
          },
          "cqlcontext": {
            "description": "CQL context for narrowing search scope (e.g., spaceKey)",
            "type": "string"
          },
          "cursor": {
            "description": "Pagination cursor",
            "type": "string"
          },
          "expand": {
            "description": "Properties to expand",
            "type": "string"
          },
          "limit": {
            "description": "Max results (default: 25, max: 250)",
            "type": "number"
          },
          "next": {
            "description": "Include next page link",
            "type": "boolean"
          },
          "prev": {
            "description": "Include previous page link",
            "type": "boolean"
          }
        },
        "required": [
          "cloudId",
          "cql"
        ],
        "type": "object"
      },
      "name": "searchConfluenceUsingCql"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Search with JQL"
      },
      "description": "Search issues with JQL, total counts only when explicitly requested.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "fields": {
            "description": "Issue fields to return. When omitted or empty, defaults to: summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project. Pass \"*all\" to return every field (including custom fields). Include \"comment\" to fetch issue comments in fields.comment.comments.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "jql": {
            "description": "JQL query",
            "type": "string"
          },
          "maxResults": {
            "description": "Max (50-100)",
            "maximum": 100,
            "type": "number"
          },
          "nextPageToken": {
            "description": "Page token",
            "type": "string"
          },
          "responseContentFormat": {
            "description": "Content format for body content. Use \"markdown\" for simplified plain text. Use \"adf\" (Atlassian Document Format, JSON) for full programmatic fidelity. Defaults vary by tool when omitted.",
            "enum": [
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "searchResultMode": {
            "description": "Default \"issues\". Never count for normal search or if nextPageToken used. If total for same query is known, reuse it. Use \"count\" only when no trusted count exists and either the user asks or a downstream step needs it. Use \"all\" only if both count and issues required.",
            "enum": [
              "issues",
              "count",
              "all"
            ],
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "jql"
        ],
        "type": "object"
      },
      "name": "searchJiraIssuesUsingJql"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Transition issue"
      },
      "description": "Transition issue status",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "fields": {
            "additionalProperties": {},
            "type": "object"
          },
          "historyMetadata": {
            "additionalProperties": false,
            "properties": {
              "activityDescription": {
                "type": "string"
              },
              "activityDescriptionKey": {
                "type": "string"
              },
              "actor": {
                "additionalProperties": false,
                "properties": {
                  "avatarUrl": {
                    "type": "string"
                  },
                  "displayName": {
                    "type": "string"
                  },
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "cause": {
                "additionalProperties": false,
                "properties": {
                  "avatarUrl": {
                    "type": "string"
                  },
                  "displayName": {
                    "type": "string"
                  },
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "description": {
                "type": "string"
              },
              "descriptionKey": {
                "type": "string"
              },
              "emailDescription": {
                "type": "string"
              },
              "emailDescriptionKey": {
                "type": "string"
              },
              "extraData": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "generator": {
                "additionalProperties": false,
                "properties": {
                  "avatarUrl": {
                    "type": "string"
                  },
                  "displayName": {
                    "type": "string"
                  },
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "issueIdOrKey": {
            "description": "Issue ID or key (e.g., PROJ-123 or 10000)",
            "type": "string"
          },
          "transition": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "update": {
            "additionalProperties": {
              "items": {
                "additionalProperties": {},
                "type": "object"
              },
              "type": "array"
            },
            "type": "object"
          }
        },
        "required": [
          "cloudId",
          "issueIdOrKey",
          "transition"
        ],
        "type": "object"
      },
      "name": "transitionJiraIssue"
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Update Confluence page"
      },
      "description": "Update a Confluence page or blog post. When contentFormat is \"html\" or omitted because HTML is the default, first call the getContentFormatGuide tool with { toolName: \"updateConfluencePage\" } and follow the returned HTML-format guidance. Do not call it when contentFormat is \"markdown\".",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "body": {
            "description": "Replacement page body. When contentFormat is \"html\" or omitted, author this field using the HTML-format guidance returned by the getContentFormatGuide tool for updateConfluencePage.",
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "contentFormat": {
            "description": "Body format. HTML is the default. When contentFormat is \"html\" or omitted, first call the getContentFormatGuide tool with { toolName: \"updateConfluencePage\" } and follow the returned HTML-format guidance. Use \"markdown\" for simplified plain text.",
            "enum": [
              "html",
              "markdown",
              "adf"
            ],
            "type": "string"
          },
          "contentType": {
            "default": "page",
            "description": "Type of content: page or blog post",
            "enum": [
              "page",
              "blog"
            ],
            "type": "string"
          },
          "includeBody": {
            "default": false,
            "description": "If true, include the page body in the response; if false, omit it to reduce payload size.",
            "type": "boolean"
          },
          "pageId": {
            "description": "Page or blog post ID, or a Confluence tiny link ID (the encoded part from /wiki/x/ URLs, e.g., Fc1bBw)",
            "type": "string"
          },
          "parentId": {
            "description": "ID of the parent to move the page under. Accepts the ID of any container that can hold a page — a page, folder, whiteboard, database, embed, or slide (smart links surface as embeds). Applies to pages only; ignored for blog posts.",
            "type": "string"
          },
          "spaceId": {
            "description": "Optional numeric space ID (a Long, e.g. \"131073\"). A space key (e.g. \"ENG\") or personal-space key (e.g. \"~712020abc\") is also accepted and resolved to the numeric ID automatically. Provide only for an actual move; omit when the space is unchanged.",
            "maxLength": 255,
            "type": "string"
          },
          "status": {
            "default": "current",
            "description": "Page status",
            "enum": [
              "current",
              "draft"
            ],
            "type": "string"
          },
          "title": {
            "description": "New title",
            "type": "string"
          },
          "versionMessage": {
            "description": "Version message",
            "type": "string"
          }
        },
        "required": [
          "cloudId",
          "pageId",
          "body"
        ],
        "type": "object"
      },
      "name": "updateConfluencePage"
    },
    {
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": false,
        "readOnlyHint": false,
        "title": "Update JSM Ops alert"
      },
      "description": "Update an alert by performing state-changing actions: acknowledge, unacknowledge, close, or escalate. Escalate action requires escalationId. Returns requestId and optionally polls request status once if pollStatus is enabled.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "Action to perform on the alert.",
            "enum": [
              "acknowledge",
              "unacknowledge",
              "close",
              "escalate"
            ],
            "type": "string"
          },
          "alertId": {
            "description": "Alert ID (UUID).",
            "type": "string"
          },
          "cloudId": {
            "description": "Cloud ID (UUID or site URL)",
            "type": "string"
          },
          "escalationId": {
            "description": "Escalation policy ID. Required when action is \"escalate\". Must be one of the escalation policies listed in the alert's responders field.",
            "type": "string"
          },
          "pollStatus": {
            "default": false,
            "description": "Whether to poll request status once after the action. When true, returns the request status to indicate if the action was processed successfully. Default: false.",
            "type": "boolean"
          }
        },
        "required": [
          "cloudId",
          "alertId",
          "action"
        ],
        "type": "object"
      },
      "name": "updateJsmOpsAlert"
    }
  ]
}
