diff --git a/src/assets/docs/agent-connectors/atlassianmcp/add-domain-modal.png b/src/assets/docs/agent-connectors/atlassianmcp/add-domain-modal.png new file mode 100644 index 000000000..88f3bde62 Binary files /dev/null and b/src/assets/docs/agent-connectors/atlassianmcp/add-domain-modal.png differ diff --git a/src/assets/docs/agent-connectors/atlassianmcp/add-domain-redirect-uri.png b/src/assets/docs/agent-connectors/atlassianmcp/add-domain-redirect-uri.png new file mode 100644 index 000000000..181accd6d Binary files /dev/null and b/src/assets/docs/agent-connectors/atlassianmcp/add-domain-redirect-uri.png differ diff --git a/src/assets/docs/agent-connectors/atlassianmcp/copy-redirect-uri.png b/src/assets/docs/agent-connectors/atlassianmcp/copy-redirect-uri.png new file mode 100644 index 000000000..be71af3a4 Binary files /dev/null and b/src/assets/docs/agent-connectors/atlassianmcp/copy-redirect-uri.png differ diff --git a/src/components/templates/agent-connectors/_section-after-setup-atlassianmcp-common-workflows.mdx b/src/components/templates/agent-connectors/_section-after-setup-atlassianmcp-common-workflows.mdx new file mode 100644 index 000000000..4deddef59 --- /dev/null +++ b/src/components/templates/agent-connectors/_section-after-setup-atlassianmcp-common-workflows.mdx @@ -0,0 +1,77 @@ +export const sectionTitle = 'Common workflows' + +import { Tabs, TabItem, Aside } from '@astrojs/starlight/components' + +### Get your cloud ID + +Most Atlassian Rovo MCP tools require a `cloudId` — the UUID that identifies your Atlassian cloud site. Call `atlassianmcp_getaccessibleatlassianresources` once to retrieve it, then pass the `id` field value in every subsequent tool call. + + + + + + ```typescript + // Step 1 — get the cloud ID + const resources = await actions.executeTool({ + connectionName: 'atlassianmcp', + identifier: 'user_123', + toolName: 'atlassianmcp_getaccessibleatlassianresources', + toolInput: {}, + }); + const cloudId = resources[0].id; + + // Step 2 — use cloudId in subsequent calls + const issue = await actions.executeTool({ + connectionName: 'atlassianmcp', + identifier: 'user_123', + toolName: 'atlassianmcp_getjiraissue', + toolInput: { + cloudId, + issueIdOrKey: 'KAN-1', + }, + }); + console.log(issue); + ``` + + + ```python + # Step 1 — get the cloud ID + resources = actions.execute_tool( + connection_name="atlassianmcp", + identifier="user_123", + tool_name="atlassianmcp_getaccessibleatlassianresources", + tool_input={}, + ) + cloud_id = resources[0]["id"] + + # Step 2 — use cloud_id in subsequent calls + issue = actions.execute_tool( + connection_name="atlassianmcp", + identifier="user_123", + tool_name="atlassianmcp_getjiraissue", + tool_input={ + "cloudId": cloud_id, + "issueIdOrKey": "KAN-1", + }, + ) + print(issue) + ``` + + + +The `atlassianmcp_getaccessibleatlassianresources` response looks like this: + +```json +[ + { + "id": "a4c9b3e2-1234-5678-abcd-ef0123456789", + "name": "My Company", + "url": "https://mycompany.atlassian.net", + "scopes": ["read:jira-work", "write:jira-work", "read:confluence-content.all"] + } +] +``` + +Use `id` as the `cloudId` parameter. If the user belongs to multiple Atlassian sites, the list contains one entry per site — pick the one matching the target `url`. diff --git a/src/components/templates/agent-connectors/_setup-atlassianmcp.mdx b/src/components/templates/agent-connectors/_setup-atlassianmcp.mdx new file mode 100644 index 000000000..6bb3df3ab --- /dev/null +++ b/src/components/templates/agent-connectors/_setup-atlassianmcp.mdx @@ -0,0 +1,35 @@ +import { Steps, Aside } from '@astrojs/starlight/components' + +Atlassian Rovo MCP uses Dynamic Client Registration (DCR) — no client ID or secret is needed. The only step is registering your Scalekit redirect URI as an allowed domain in Atlassian Administration. + + +1. ### Copy the redirect URI from Scalekit + + In the [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**. Find **Atlassian Rovo MCP** and click **Create**. Copy the redirect URI — it looks like `https:///sso/v1/oauth//callback`. + + ![Copy redirect URI from Scalekit dashboard for Atlassian Rovo MCP](@/assets/docs/agent-connectors/atlassianmcp/copy-redirect-uri.png) + +2. ### Open the Rovo MCP server settings in Atlassian + + - Go to [admin.atlassian.com](https://admin.atlassian.com) and select your organisation. + - In the left sidebar, expand **Rovo** and click **Rovo access**. + - Click **Rovo MCP server** in the submenu. + - Select the **Domains** tab at the top of the page. + + + +3. ### Add the redirect URI as a domain + + - Under **Your domains**, click **Add domain**. + + ![Your domains section in Atlassian Rovo MCP server administration](@/assets/docs/agent-connectors/atlassianmcp/add-domain-redirect-uri.png) + + - In the **Add domain** dialog, paste the redirect URI from Scalekit into the **Domain** field. + - Accept the terms and click **Add**. + + ![Add domain dialog in Atlassian Rovo MCP server](@/assets/docs/agent-connectors/atlassianmcp/add-domain-modal.png) + + Once added, Scalekit automatically registers the OAuth client via DCR and handles token management for every user who authorizes the connection — no further configuration needed. + diff --git a/src/components/templates/agent-connectors/index.ts b/src/components/templates/agent-connectors/index.ts index 20848f331..5ec9ebb05 100644 --- a/src/components/templates/agent-connectors/index.ts +++ b/src/components/templates/agent-connectors/index.ts @@ -3,6 +3,7 @@ export { default as SetupAirtableSection } from './_setup-airtable.mdx' export { default as SetupApifymcpSection } from './_setup-apifymcp.mdx' export { default as SetupApolloSection } from './_setup-apollo.mdx' export { default as SetupAsanaSection } from './_setup-asana.mdx' +export { default as SetupAtlassianmcpSection } from './_setup-atlassianmcp.mdx' export { default as SetupAttioSection } from './_setup-attio.mdx' export { default as SetupBigquerySection } from './_setup-bigquery.mdx' export { default as SetupBigqueryserviceaccountSection } from './_setup-bigqueryserviceaccount.mdx' @@ -72,6 +73,7 @@ export { default as ConnectedAccountBigqueryserviceaccountSection } from './_con export { default as SectionAfterAuthenticationGoogledwdAuth } from './_section-after-authentication-googledwd-auth.mdx' export { default as SectionAfterSetupAirtableCommonWorkflows } from './_section-after-setup-airtable-common-workflows.mdx' export { default as SectionAfterSetupApifymcpCommonWorkflows } from './_section-after-setup-apifymcp-common-workflows.mdx' +export { default as SectionAfterSetupAtlassianmcpCommonWorkflows } from './_section-after-setup-atlassianmcp-common-workflows.mdx' export { default as SectionAfterSetupApolloCommonWorkflows } from './_section-after-setup-apollo-common-workflows.mdx' export { default as SectionAfterSetupAsanaCommonWorkflows } from './_section-after-setup-asana-common-workflows.mdx' export { default as SectionAfterSetupAttentionCommonWorkflows } from './_section-after-setup-attention-common-workflows.mdx' @@ -103,8 +105,8 @@ export { default as SectionAfterSetupGoogleAdsCommonWorkflows } from './_section export { default as SectionAfterSetupGooglecalendarCommonWorkflows } from './_section-after-setup-googlecalendar-common-workflows.mdx' export { default as SectionAfterSetupGoogledocsCommonWorkflows } from './_section-after-setup-googledocs-common-workflows.mdx' export { default as SectionAfterSetupGoogledriveCommonWorkflows } from './_section-after-setup-googledrive-common-workflows.mdx' +export { default as SectionAfterSetupGoogledwdCommonWorkflows } from './_section-after-setup-googledwd-common-workflows.mdx' export { default as SectionAfterSetupGoogledwdConnectedAccount } from './_section-after-setup-googledwd-connected-account.mdx' -export { default as SectionBeforeToolListGoogledwdCommonWorkflows } from './_section-before-tool-list-googledwd-common-workflows.mdx' export { default as SectionAfterSetupGoogleformsCommonWorkflows } from './_section-after-setup-googleforms-common-workflows.mdx' export { default as SectionAfterSetupGooglemeetCommonWorkflows } from './_section-after-setup-googlemeet-common-workflows.mdx' export { default as SectionAfterSetupGooglesheetsCommonWorkflows } from './_section-after-setup-googlesheets-common-workflows.mdx' @@ -146,6 +148,7 @@ export { default as SectionAfterSetupZendeskCommonWorkflows } from './_section-a export { default as SectionAfterSetupZoomCommonWorkflows } from './_section-after-setup-zoom-common-workflows.mdx' export { default as SectionAfterToolListSalesforceMetadataApiSoap } from './_section-after-tool-list-salesforce-metadata-api-soap.mdx' export { default as SectionBeforeToolListDatadogResourceIds } from './_section-before-tool-list-datadog-resource-ids.mdx' +export { default as SectionBeforeToolListGoogledwdCommonWorkflows } from './_section-before-tool-list-googledwd-common-workflows.mdx' export { default as SectionBeforeToolListHubspotResourceIds } from './_section-before-tool-list-hubspot-resource-ids.mdx' export { default as SectionBeforeToolListLinearResourceIds } from './_section-before-tool-list-linear-resource-ids.mdx' export { default as SectionBeforeToolListMondayResourceIds } from './_section-before-tool-list-monday-resource-ids.mdx' diff --git a/src/content/docs/agentkit/connectors/atlassianmcp.mdx b/src/content/docs/agentkit/connectors/atlassianmcp.mdx new file mode 100644 index 000000000..925d3873b --- /dev/null +++ b/src/content/docs/agentkit/connectors/atlassianmcp.mdx @@ -0,0 +1,90 @@ +--- +title: 'Atlassian Rovo MCP connector' +tableOfContents: true +description: 'Connect to Atlassian Rovo MCP server to manage Jira issues, Confluence pages, and Compass components directly from your AI workflows.' +sidebar: + label: 'Atlassian Rovo MCP' +overviewTitle: 'Quickstart' +connectorIcon: https://cdn.scalekit.com/sk-connect/assets/provider-icons/atlassian.svg +connectorAuthType: OAuth 2.0 +connectorCategories: [project_management, productivity] +tags: [agentkit, connector, atlassian, jira, confluence, compass, project-management, mcp] +head: + - tag: style + content: | + .sl-markdown-content h2 { + font-size: var(--sl-text-xl); + } + .sl-markdown-content h3 { + font-size: var(--sl-text-lg); + } +--- + +import ToolList from '@/components/ToolList.astro' +import { tools } from '@/data/agent-connectors/atlassianmcp' +import { Steps, Tabs, TabItem } from '@astrojs/starlight/components' +import { AgentKitCredentials } from '@components/templates' +import { SetupAtlassianmcpSection } from '@components/templates' +import { QuickstartGenericOauthSection } from '@components/templates' +import { SectionAfterSetupAtlassianmcpCommonWorkflows } from '@components/templates' + + + +1. ### Install the SDK + + + + ```bash frame="terminal" + npm install @scalekit-sdk/node + ``` + + + ```bash frame="terminal" + pip install scalekit + ``` + + + + Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/) + +2. ### Set your credentials + + + +3. ### Set up the connector + + Register your Atlassian Rovo MCP credentials with Scalekit so it handles the token lifecycle. You do this once per environment. + +
+ Dashboard setup steps + + + +
+ +4. ### Authorize and make your first call + + + +
+ +## What you can do + +Connect this agent connector to let your agent: + +- **Manage Jira issues** — create, edit, transition, comment on, and link issues; add worklogs +- **Search with JQL** — query issues using Jira Query Language with full field and filter support +- **Work with Confluence** — create, update, and retrieve pages; add footer and inline comments +- **Manage Compass components** — create, get, and search services, libraries, and applications; define custom fields and relationships +- **Look up users and resources** — resolve Atlassian account IDs, list accessible cloud sites, and find project metadata +- **Fetch Atlassian content** — retrieve any Atlassian object by its ARI or URL (e.g. a Jira issue or Confluence page URL) + +## Common workflows + + + +## Tool list + +Use the exact tool names from the **Tool list** below when you call `execute_tool`. If you're not sure which name to use, list the tools available for the current user first. + + diff --git a/src/data/agent-connectors/atlassianmcp.ts b/src/data/agent-connectors/atlassianmcp.ts new file mode 100644 index 000000000..60c30c341 --- /dev/null +++ b/src/data/agent-connectors/atlassianmcp.ts @@ -0,0 +1,1570 @@ +import type { Tool } from '../../types/agent-connectors' + +export const tools: Tool[] = [ + { + name: 'atlassianmcp_addcommenttojiraissue', + description: `Add a comment to an existing Jira issue.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'commentBody', + type: 'string', + required: true, + description: `The text content of the comment to add.`, + }, + { + name: 'issueIdOrKey', + type: 'string', + required: true, + description: `The Jira issue ID (e.g. 10001) or key (e.g. KAN-1).`, + }, + { + name: 'commentVisibility', + type: 'object', + required: false, + description: `Restrict comment visibility as JSON (e.g. {"type": "role", "value": "Dev Team"}).`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'responseContentFormat', + type: 'string', + required: false, + description: `Format to return content in — markdown (default) or adf.`, + }, + ], + }, + { + name: 'atlassianmcp_addworklogtojiraissue', + description: `Log time spent on a Jira issue by adding a worklog entry.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'issueIdOrKey', + type: 'string', + required: true, + description: `The Jira issue ID (e.g. 10001) or key (e.g. KAN-1).`, + }, + { + name: 'timeSpent', + type: 'string', + required: true, + description: `Time spent on the issue, in Jira duration format (e.g. 1h, 2h 30m, 1d).`, + }, + { + name: 'commentBody', + type: 'string', + required: false, + description: `The text content of the comment to add.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'started', + type: 'string', + required: false, + description: `The date and time the work started, in ISO 8601 format (e.g. 2026-05-15T10:00:00.000+0000).`, + }, + { + name: 'visibility', + type: 'object', + required: false, + description: `Restrict worklog visibility as JSON (e.g. {"type": "role", "value": "Dev Team"}).`, + }, + { + name: 'worklogId', + type: 'string', + required: false, + description: `The ID of an existing worklog entry to update.`, + }, + ], + }, + { + name: 'atlassianmcp_atlassianuserinfo', + description: `Retrieve the profile information for the currently authenticated Atlassian user.`, + params: [], + }, + { + name: 'atlassianmcp_createcompasscomponent', + description: `Create a new component in Atlassian Compass (e.g. a service, library, or application).`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'name', + type: 'string', + required: true, + description: `Name of the Compass component.`, + }, + { + name: 'typeId', + type: 'string', + required: true, + description: `Type ID of the Compass component (e.g. SERVICE, LIBRARY, APPLICATION).`, + }, + { + name: 'description', + type: 'string', + required: false, + description: `A human-readable description of this Compass component.`, + }, + { + name: 'labels', + type: 'array', + required: false, + description: `Labels to attach to this Compass component.`, + }, + { + name: 'ownerId', + type: 'string', + required: false, + description: `Atlassian account ID of the component owner.`, + }, + ], + }, + { + name: 'atlassianmcp_createcompasscomponentrelationship', + description: `Create a dependency or relationship between two Compass components.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'fromComponentId', + type: 'string', + required: true, + description: `The ID of the source Compass component in the relationship.`, + }, + { + name: 'relationshipType', + type: 'string', + required: true, + description: `The type of relationship between components (e.g. DEPENDS_ON).`, + }, + { + name: 'toComponentId', + type: 'string', + required: true, + description: `The ID of the target Compass component in the relationship.`, + }, + ], + }, + { + name: 'atlassianmcp_createcompasscustomfielddefinition', + description: `Define a new custom field for Compass components in your workspace.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'input', + type: 'object', + required: true, + description: `Custom field definition as JSON (fields: name, type, description).`, + }, + ], + }, + { + name: 'atlassianmcp_createconfluencefootercomment', + description: `Add a footer comment to a Confluence page, blog post, or other content.`, + params: [ + { + name: 'body', + type: 'string', + required: true, + description: `The body content of the Confluence page or comment, in the format specified by contentFormat.`, + }, + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'attachmentId', + type: 'string', + required: false, + description: `The ID of the attachment to comment on.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'contentType', + type: 'string', + required: false, + description: `Type of Confluence content: page, blogpost, or custom.`, + }, + { + name: 'customContentId', + type: 'string', + required: false, + description: `The ID of the custom content to comment on.`, + }, + { + name: 'pageId', + type: 'string', + required: false, + description: `The numeric ID of the Confluence page. Use getConfluenceSpaces or search to find page IDs.`, + }, + { + name: 'parentCommentId', + type: 'string', + required: false, + description: `Optional ID of the parent comment, for creating a reply.`, + }, + ], + }, + { + name: 'atlassianmcp_createconfluenceinlinecomment', + description: `Add an inline comment anchored to selected text on a Confluence page.`, + params: [ + { + name: 'body', + type: 'string', + required: true, + description: `The body content of the Confluence page or comment, in the format specified by contentFormat.`, + }, + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'contentType', + type: 'string', + required: false, + description: `Type of Confluence content: page, blogpost, or custom.`, + }, + { + name: 'inlineCommentProperties', + type: 'object', + required: false, + description: `Inline comment anchor as JSON: {"textSelection": "", "textSelectionMatchCount": N, "textSelectionMatchIndex": N}.`, + }, + { + name: 'pageId', + type: 'string', + required: false, + description: `The numeric ID of the Confluence page. Use getConfluenceSpaces or search to find page IDs.`, + }, + { + name: 'parentCommentId', + type: 'string', + required: false, + description: `Optional ID of the parent comment, for creating a reply.`, + }, + ], + }, + { + name: 'atlassianmcp_createconfluencepage', + description: `Create a new Confluence page in a space, optionally nested under a parent page.`, + params: [ + { + name: 'body', + type: 'string', + required: true, + description: `The body content of the Confluence page or comment, in the format specified by contentFormat.`, + }, + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'spaceId', + type: 'string', + required: true, + description: `The numeric ID of the Confluence space. Use getConfluenceSpaces to list available spaces.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'contentType', + type: 'string', + required: false, + description: `Type of Confluence content: page, blogpost, or custom.`, + }, + { + name: 'isPrivate', + type: 'boolean', + required: false, + description: `Set to true to create the page as private (only visible to the creator).`, + }, + { + name: 'parentId', + type: 'string', + required: false, + description: `The ID of the parent page under which to create or move this page.`, + }, + { + name: 'status', + type: 'string', + required: false, + description: `Filter by content status (e.g. current, archived, trashed).`, + }, + { + name: 'subtype', + type: 'string', + required: false, + description: `Confluence page subtype (e.g. live for live pages).`, + }, + { + name: 'title', + type: 'string', + required: false, + description: `The title of the Confluence page.`, + }, + ], + }, + { + name: 'atlassianmcp_createissuelink', + description: `Link two Jira issues together with a relationship type (e.g. Relates, Blocks, Duplicate).`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'inwardIssue', + type: 'string', + required: true, + description: `The key of the inward issue in the link (e.g. KAN-1).`, + }, + { + name: 'outwardIssue', + type: 'string', + required: true, + description: `The key of the outward issue in the link (e.g. KAN-2).`, + }, + { + name: 'type', + type: 'string', + required: true, + description: `Space type filter (e.g. global or personal).`, + }, + { + name: 'comment', + type: 'string', + required: false, + description: `An optional comment to attach to the issue link.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + ], + }, + { + name: 'atlassianmcp_createjiraissue', + description: `Create a new Jira issue in a project with the specified summary, type, and optional fields.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'issueTypeName', + type: 'string', + required: true, + description: `The name of the Jira issue type (e.g. Task, Story, Bug, Epic).`, + }, + { + name: 'projectKey', + type: 'string', + required: true, + description: `The Jira project key (e.g. KAN). Use getVisibleJiraProjects to list available projects.`, + }, + { + name: 'summary', + type: 'string', + required: true, + description: `A short summary of the Jira issue (the issue title).`, + }, + { + name: 'additional_fields', + type: 'object', + required: false, + description: `Additional Jira fields to set on creation, as a JSON object (e.g. priority, labels).`, + }, + { + name: 'assignee_account_id', + type: 'string', + required: false, + description: `Atlassian account ID of the user to assign. Use lookupJiraAccountId to find account IDs.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'description', + type: 'string', + required: false, + description: `The full description of the Jira issue.`, + }, + { + name: 'parent', + type: 'string', + required: false, + description: `The parent issue key (e.g. KAN-1) for creating subtasks or child issues.`, + }, + { + name: 'responseContentFormat', + type: 'string', + required: false, + description: `Format to return content in — markdown (default) or adf.`, + }, + { + name: 'transition', + type: 'object', + required: false, + description: `The transition to perform, as JSON: {"id": ""}. Use getTransitionsForJiraIssue to list valid transitions.`, + }, + ], + }, + { + name: 'atlassianmcp_editjiraissue', + description: `Update fields on an existing Jira issue, such as summary, priority, or description.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'fields', + type: 'object', + required: true, + description: `Fields to update as a JSON object, e.g. {"summary": "New title", "priority": {"name": "High"}}.`, + }, + { + name: 'issueIdOrKey', + type: 'string', + required: true, + description: `The Jira issue ID (e.g. 10001) or key (e.g. KAN-1).`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'responseContentFormat', + type: 'string', + required: false, + description: `Format to return content in — markdown (default) or adf.`, + }, + ], + }, + { + name: 'atlassianmcp_fetch', + description: `Fetch details about any Atlassian object by its ARI (Atlassian Resource Identifier) or URL.`, + params: [ + { + name: 'id', + type: 'string', + required: true, + description: `An ARI or URL identifying the object (e.g. ari:cloud:jira:...:issue/10059 or https://site.atlassian.net/browse/KAN-1).`, + }, + { + name: 'cloudId', + type: 'string', + required: false, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + ], + }, + { + name: 'atlassianmcp_getaccessibleatlassianresources', + description: `List all Atlassian cloud sites accessible to the authenticated user, including their cloud IDs.`, + params: [], + }, + { + name: 'atlassianmcp_getcompasscomponent', + description: `Retrieve details of a specific Compass component by its ID.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'componentId', + type: 'string', + required: true, + description: `The ID of the component to get`, + }, + { + name: 'includeCustomFieldsInResponse', + type: 'boolean', + required: false, + description: `Set to true to include custom field values in the component response.`, + }, + { + name: 'includeRelatedComponentsAndDependenciesInResponse', + type: 'boolean', + required: false, + description: `Set to true to include related components and dependencies.`, + }, + { + name: 'includeRelatedLinksInResponse', + type: 'boolean', + required: false, + description: `Set to true to include related links in the component response.`, + }, + ], + }, + { + name: 'atlassianmcp_getcompasscomponents', + description: `Search and list Compass components in a workspace, with optional filters.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'after', + type: 'string', + required: false, + description: `Cursor for fetching the next page of results.`, + }, + { + name: 'filters', + type: 'object', + required: false, + description: `Filter criteria for Compass components as JSON (e.g. {"typeIds": ["SERVICE"]}).`, + }, + { + name: 'maxResults', + type: 'number', + required: false, + description: `Maximum number of results to return per page.`, + }, + { + name: 'query', + type: 'string', + required: false, + description: `Search query to find Atlassian content across Jira and Confluence.`, + }, + ], + }, + { + name: 'atlassianmcp_getcompasscustomfielddefinitions', + description: `List all custom field definitions configured in a Compass workspace.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + ], + }, + { + name: 'atlassianmcp_getconfluencecommentchildren', + description: `Retrieve replies to a specific Confluence comment.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'commentId', + type: 'string', + required: true, + description: `The ID of the Confluence comment to retrieve children for.`, + }, + { + name: 'commentType', + type: 'string', + required: true, + description: `Type of comment to retrieve children for: footer or inline.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'cursor', + type: 'string', + required: false, + description: `Cursor string for paginating through results.`, + }, + { + name: 'limit', + type: 'number', + required: false, + description: `Maximum number of items to return.`, + }, + { + name: 'sort', + type: 'string', + required: false, + description: `Sort order for results (e.g. created-date, -modified, title).`, + }, + ], + }, + { + name: 'atlassianmcp_getconfluencepage', + description: `Retrieve the content and metadata of a specific Confluence page by its ID.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'pageId', + type: 'string', + required: true, + description: `The numeric ID of the Confluence page. Use getConfluenceSpaces or search to find page IDs.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'contentType', + type: 'string', + required: false, + description: `Type of Confluence content: page, blogpost, or custom.`, + }, + ], + }, + { + name: 'atlassianmcp_getconfluencepagedescendants', + description: `List all pages nested under a Confluence page, up to a specified depth.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'pageId', + type: 'string', + required: true, + description: `The numeric ID of the Confluence page. Use getConfluenceSpaces or search to find page IDs.`, + }, + { + name: 'cursor', + type: 'string', + required: false, + description: `Cursor string for paginating through results.`, + }, + { + name: 'depth', + type: 'number', + required: false, + description: `How deep to fetch descendants — all for the full tree or 1 for direct children only.`, + }, + { + name: 'limit', + type: 'number', + required: false, + description: `Maximum number of items to return.`, + }, + ], + }, + { + name: 'atlassianmcp_getconfluencepagefootercomments', + description: `List footer comments on a Confluence page, optionally including replies.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'pageId', + type: 'string', + required: true, + description: `The numeric ID of the Confluence page. Use getConfluenceSpaces or search to find page IDs.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'contentType', + type: 'string', + required: false, + description: `Type of Confluence content: page, blogpost, or custom.`, + }, + { + name: 'cursor', + type: 'string', + required: false, + description: `Cursor string for paginating through results.`, + }, + { + name: 'includeReplies', + type: 'boolean', + required: false, + description: `Whether to include comment replies in the response (true or false).`, + }, + { + name: 'limit', + type: 'number', + required: false, + description: `Maximum number of items to return.`, + }, + { + name: 'repliesPerComment', + type: 'integer', + required: false, + description: `Maximum number of replies to include per comment.`, + }, + { + name: 'sort', + type: 'string', + required: false, + description: `Sort order for results (e.g. created-date, -modified, title).`, + }, + { + name: 'status', + type: 'string', + required: false, + description: `Filter by content status (e.g. current, archived, trashed).`, + }, + ], + }, + { + name: 'atlassianmcp_getconfluencepageinlinecomments', + description: `List inline comments on a Confluence page, optionally filtered by resolution status.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'pageId', + type: 'string', + required: true, + description: `The numeric ID of the Confluence page. Use getConfluenceSpaces or search to find page IDs.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'contentType', + type: 'string', + required: false, + description: `Type of Confluence content: page, blogpost, or custom.`, + }, + { + name: 'cursor', + type: 'string', + required: false, + description: `Cursor string for paginating through results.`, + }, + { + name: 'includeReplies', + type: 'boolean', + required: false, + description: `Whether to include comment replies in the response (true or false).`, + }, + { + name: 'limit', + type: 'number', + required: false, + description: `Maximum number of items to return.`, + }, + { + name: 'repliesPerComment', + type: 'integer', + required: false, + description: `Maximum number of replies to include per comment.`, + }, + { + name: 'resolutionStatus', + type: 'string', + required: false, + description: `Filter inline comments by resolution status (open or resolved).`, + }, + { + name: 'sort', + type: 'string', + required: false, + description: `Sort order for results (e.g. created-date, -modified, title).`, + }, + { + name: 'status', + type: 'string', + required: false, + description: `Filter by content status (e.g. current, archived, trashed).`, + }, + ], + }, + { + name: 'atlassianmcp_getconfluencespaces', + description: `List Confluence spaces accessible to the authenticated user, with optional filters.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'expand', + type: 'string', + required: false, + description: `Comma-separated list of fields to expand in the response.`, + }, + { + name: 'favoritedBy', + type: 'string', + required: false, + description: `Return spaces favourited by this user account ID.`, + }, + { + name: 'favourite', + type: 'boolean', + required: false, + description: `Set to true to return only spaces marked as favourite.`, + }, + { + name: 'ids', + type: 'string', + required: false, + description: `List of space IDs to filter by.`, + }, + { + name: 'keys', + type: 'string', + required: false, + description: `List of space keys to filter by.`, + }, + { + name: 'labels', + type: 'array', + required: false, + description: `List of space labels to filter by.`, + }, + { + name: 'limit', + type: 'number', + required: false, + description: `Maximum number of items to return.`, + }, + { + name: 'start', + type: 'number', + required: false, + description: `Index of the first result for pagination (defaults to 0).`, + }, + { + name: 'status', + type: 'string', + required: false, + description: `Filter by content status (e.g. current, archived, trashed).`, + }, + { + name: 'type', + type: 'string', + required: false, + description: `Space type filter (e.g. global or personal).`, + }, + ], + }, + { + name: 'atlassianmcp_getissuelinktypes', + description: `List all available issue link types in a Jira instance (e.g. Blocks, Relates, Duplicate).`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + ], + }, + { + name: 'atlassianmcp_getjiraissue', + description: `Retrieve the details of a specific Jira issue by its ID or key.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'issueIdOrKey', + type: 'string', + required: true, + description: `The Jira issue ID (e.g. 10001) or key (e.g. KAN-1).`, + }, + { + name: 'expand', + type: 'string', + required: false, + description: `Comma-separated list of fields to expand in the response.`, + }, + { + name: 'failFast', + type: 'boolean', + required: false, + description: `Set to true to fail fast if any fields cannot be found.`, + }, + { + name: 'fields', + type: 'array', + required: false, + description: `Fields to update as a JSON object, e.g. {"summary": "New title", "priority": {"name": "High"}}.`, + }, + { + name: 'fieldsByKeys', + type: 'boolean', + required: false, + description: `Set to true to reference custom fields by their keys instead of IDs.`, + }, + { + name: 'properties', + type: 'array', + required: false, + description: `List of issue properties to include in the response.`, + }, + { + name: 'responseContentFormat', + type: 'string', + required: false, + description: `Format to return content in — markdown (default) or adf.`, + }, + { + name: 'updateHistory', + type: 'boolean', + required: false, + description: `Set to true to record that the issue was viewed in the user's history.`, + }, + ], + }, + { + name: 'atlassianmcp_getjiraissueremoteissuelinks', + description: `List remote links (external resources) attached to a Jira issue.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'issueIdOrKey', + type: 'string', + required: true, + description: `The Jira issue ID (e.g. 10001) or key (e.g. KAN-1).`, + }, + { + name: 'globalId', + type: 'string', + required: false, + description: `Optional global ID to filter remote issue links.`, + }, + ], + }, + { + name: 'atlassianmcp_getjiraissuetypemetawithfields', + description: `Retrieve field metadata for a specific Jira issue type in a project.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'issueTypeId', + type: 'string', + required: true, + description: `The ID of the Jira issue type. Use getJiraProjectIssueTypesMetadata to list available types.`, + }, + { + name: 'projectIdOrKey', + type: 'string', + required: true, + description: `The Jira project ID or key (e.g. KAN or 10000). Use getVisibleJiraProjects to find it.`, + }, + { + name: 'maxResults', + type: 'number', + required: false, + description: `Maximum number of results to return per page.`, + }, + { + name: 'startAt', + type: 'number', + required: false, + description: `Index of the first result to return (for pagination, defaults to 0).`, + }, + ], + }, + { + name: 'atlassianmcp_getjiraprojectissuetypesmetadata', + description: `List all issue types and their field metadata for a Jira project.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'projectIdOrKey', + type: 'string', + required: true, + description: `The Jira project ID or key (e.g. KAN or 10000). Use getVisibleJiraProjects to find it.`, + }, + { + name: 'maxResults', + type: 'number', + required: false, + description: `Maximum number of results to return per page.`, + }, + { + name: 'startAt', + type: 'number', + required: false, + description: `Index of the first result to return (for pagination, defaults to 0).`, + }, + ], + }, + { + name: 'atlassianmcp_getpagesinconfluencespace', + description: `List all pages in a Confluence space, optionally filtered by title or status.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'spaceId', + type: 'string', + required: true, + description: `The numeric ID of the Confluence space. Use getConfluenceSpaces to list available spaces.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'contentType', + type: 'string', + required: false, + description: `Type of Confluence content: page, blogpost, or custom.`, + }, + { + name: 'cursor', + type: 'string', + required: false, + description: `Cursor string for paginating through results.`, + }, + { + name: 'limit', + type: 'number', + required: false, + description: `Maximum number of items to return.`, + }, + { + name: 'sort', + type: 'string', + required: false, + description: `Sort order for results (e.g. created-date, -modified, title).`, + }, + { + name: 'status', + type: 'string', + required: false, + description: `Filter by content status (e.g. current, archived, trashed).`, + }, + { + name: 'title', + type: 'string', + required: false, + description: `The title of the Confluence page.`, + }, + ], + }, + { + name: 'atlassianmcp_getteamworkgraphcontext', + description: `Retrieve the teamwork graph context for an Atlassian object, showing related work across Jira, Confluence, and Compass.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'objectIdentifier', + type: 'string', + required: true, + description: `Identifier for the object — an issue key (e.g. KAN-4), ARI, or URL.`, + }, + { + name: 'objectType', + type: 'string', + required: true, + description: `Type of the Atlassian object (e.g. JiraWorkItem, ConfluencePage, ConfluenceSpace, AtlassianUser, CompassComponent).`, + }, + { + name: 'after', + type: 'string', + required: false, + description: `Cursor for fetching the next page of results.`, + }, + { + name: 'detailLevel', + type: 'string', + required: false, + description: `Level of detail to return for related objects (FULL or MINIMAL).`, + }, + { + name: 'first', + type: 'integer', + required: false, + description: `Number of items to return in this page.`, + }, + { + name: 'relationshipTypes', + type: 'array', + required: false, + description: `Filter by specific relationship types (e.g. DEPENDS_ON, BLOCKED_BY).`, + }, + { + name: 'targetObjectTypes', + type: 'array', + required: false, + description: `Filter related objects by type (e.g. JiraWorkItem, ConfluencePage).`, + }, + { + name: 'timeRange', + type: 'object', + required: false, + description: `Optional time range filter as JSON: {"from": "", "to": ""}.`, + }, + ], + }, + { + name: 'atlassianmcp_getteamworkgraphobject', + description: `Hydrate one or more Atlassian objects from their URLs or ARIs to get their current state.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'objects', + type: 'array', + required: true, + description: `List of object URLs or ARIs to hydrate (e.g. https://site.atlassian.net/browse/KAN-1).`, + }, + ], + }, + { + name: 'atlassianmcp_gettransitionsforjiraissue', + description: `List all available workflow transitions for a Jira issue, used before calling transitionJiraIssue.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'issueIdOrKey', + type: 'string', + required: true, + description: `The Jira issue ID (e.g. 10001) or key (e.g. KAN-1).`, + }, + { + name: 'expand', + type: 'string', + required: false, + description: `Comma-separated list of fields to expand in the response.`, + }, + { + name: 'includeUnavailableTransitions', + type: 'boolean', + required: false, + description: `Set to true to include transitions that are not currently available.`, + }, + { + name: 'skipRemoteOnlyCondition', + type: 'boolean', + required: false, + description: `Set to true to skip conditions that only apply to remote calls.`, + }, + { + name: 'sortByOpsBarAndStatus', + type: 'boolean', + required: false, + description: `Set to true to sort transitions by the ops bar and status.`, + }, + { + name: 'transitionId', + type: 'string', + required: false, + description: `The ID of a specific transition to retrieve. Use getTransitionsForJiraIssue to list transitions.`, + }, + ], + }, + { + name: 'atlassianmcp_getvisiblejiraprojects', + description: `List Jira projects visible to the authenticated user, with optional search filtering.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'action', + type: 'string', + required: false, + description: `The action to filter projects by (e.g. browse, create).`, + }, + { + name: 'expandIssueTypes', + type: 'boolean', + required: false, + description: `Set to true to include issue type details in the project list response.`, + }, + { + name: 'maxResults', + type: 'number', + required: false, + description: `Maximum number of results to return per page.`, + }, + { + name: 'searchString', + type: 'string', + required: false, + description: `Text to search for when looking up Jira users.`, + }, + { + name: 'startAt', + type: 'number', + required: false, + description: `Index of the first result to return (for pagination, defaults to 0).`, + }, + ], + }, + { + name: 'atlassianmcp_lookupjiraaccountid', + description: `Search for Atlassian user accounts by name or email to find their account IDs.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'searchString', + type: 'string', + required: true, + description: `Text to search for when looking up Jira users.`, + }, + ], + }, + { + name: 'atlassianmcp_search', + description: `Search across all Atlassian products (Jira and Confluence) using a keyword query.`, + params: [ + { + name: 'query', + type: 'string', + required: true, + description: `Search query to find Atlassian content across Jira and Confluence.`, + }, + { + name: 'cloudId', + type: 'string', + required: false, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + ], + }, + { + name: 'atlassianmcp_searchconfluenceusingcql', + description: `Search Confluence content using Confluence Query Language (CQL).`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'cql', + type: 'string', + required: true, + description: `Confluence Query Language string (e.g. type = page AND space = SD AND title ~ "meeting").`, + }, + { + name: 'cqlcontext', + type: 'string', + required: false, + description: `Optional JSON object to restrict CQL scope (e.g. {"spaceKey": "SD"}).`, + }, + { + name: 'cursor', + type: 'string', + required: false, + description: `Cursor string for paginating through results.`, + }, + { + name: 'expand', + type: 'string', + required: false, + description: `Comma-separated list of fields to expand in the response.`, + }, + { + name: 'limit', + type: 'number', + required: false, + description: `Maximum number of items to return.`, + }, + { name: 'next', type: 'boolean', required: false, description: `Include next page link` }, + { name: 'prev', type: 'boolean', required: false, description: `Include previous page link` }, + ], + }, + { + name: 'atlassianmcp_searchjiraissuesusingjql', + description: `Search for Jira issues using Jira Query Language (JQL).`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'jql', + type: 'string', + required: true, + description: `Jira Query Language string to filter issues (e.g. project = KAN AND status = "In Progress").`, + }, + { + name: 'fields', + type: 'array', + required: false, + description: `Fields to update as a JSON object, e.g. {"summary": "New title", "priority": {"name": "High"}}.`, + }, + { + name: 'maxResults', + type: 'number', + required: false, + description: `Maximum number of results to return per page.`, + }, + { + name: 'nextPageToken', + type: 'string', + required: false, + description: `Token for fetching the next page of results.`, + }, + { + name: 'responseContentFormat', + type: 'string', + required: false, + description: `Format to return content in — markdown (default) or adf.`, + }, + ], + }, + { + name: 'atlassianmcp_transitionjiraissue', + description: `Move a Jira issue to a new workflow status using a transition ID.`, + params: [ + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'issueIdOrKey', + type: 'string', + required: true, + description: `The Jira issue ID (e.g. 10001) or key (e.g. KAN-1).`, + }, + { + name: 'transition', + type: 'object', + required: true, + description: `The transition to perform, as JSON: {"id": ""}. Use getTransitionsForJiraIssue to list valid transitions.`, + }, + { + name: 'fields', + type: 'object', + required: false, + description: `Fields to update as a JSON object, e.g. {"summary": "New title", "priority": {"name": "High"}}.`, + }, + { + name: 'historyMetadata', + type: 'object', + required: false, + description: `Optional metadata to record in the issue history (e.g. {"activityDescription": "Updated via API"}).`, + }, + { + name: 'update', + type: 'object', + required: false, + description: `Issue update operations as a JSON object (e.g. adding comment).`, + }, + ], + }, + { + name: 'atlassianmcp_updateconfluencepage', + description: `Update the title, body, or other properties of an existing Confluence page.`, + params: [ + { + name: 'body', + type: 'string', + required: true, + description: `The body content of the Confluence page or comment, in the format specified by contentFormat.`, + }, + { + name: 'cloudId', + type: 'string', + required: true, + description: `The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.`, + }, + { + name: 'pageId', + type: 'string', + required: true, + description: `The numeric ID of the Confluence page. Use getConfluenceSpaces or search to find page IDs.`, + }, + { + name: 'contentFormat', + type: 'string', + required: false, + description: `Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).`, + }, + { + name: 'contentType', + type: 'string', + required: false, + description: `Type of Confluence content: page, blogpost, or custom.`, + }, + { + name: 'includeBody', + type: 'boolean', + required: false, + description: `Set to true to include the page body in the update response.`, + }, + { + name: 'parentId', + type: 'string', + required: false, + description: `The ID of the parent page under which to create or move this page.`, + }, + { + name: 'spaceId', + type: 'string', + required: false, + description: `The numeric ID of the Confluence space. Use getConfluenceSpaces to list available spaces.`, + }, + { + name: 'status', + type: 'string', + required: false, + description: `Filter by content status (e.g. current, archived, trashed).`, + }, + { + name: 'title', + type: 'string', + required: false, + description: `The title of the Confluence page.`, + }, + { + name: 'versionMessage', + type: 'string', + required: false, + description: `Optional message describing what changed in this version of the page.`, + }, + ], + }, +] diff --git a/src/data/agent-connectors/capabilities.json b/src/data/agent-connectors/capabilities.json index ae2f26a76..fa69f6845 100644 --- a/src/data/agent-connectors/capabilities.json +++ b/src/data/agent-connectors/capabilities.json @@ -1,5 +1,13 @@ { "_comment": "Hand-curated 'What you can do' bullets per connector. Key = provider slug (matches src/data/agent-connectors/.ts). The sync script uses these instead of auto-generating from tool names. Add up to 6 bullets per connector. Omit a connector to fall back to auto-generation.", + "atlassianmcp": [ + "**Manage Jira issues** — create, edit, transition, comment on, and link issues; add worklogs", + "**Search with JQL** — query issues using Jira Query Language with full field and filter support", + "**Work with Confluence** — create, update, and retrieve pages; add footer and inline comments", + "**Manage Compass components** — create, get, and search services, libraries, and applications; define custom fields and relationships", + "**Look up users and resources** — resolve Atlassian account IDs, list accessible cloud sites, and find project metadata", + "**Fetch Atlassian content** — retrieve any Atlassian object by its ARI or URL (e.g. a Jira issue or Confluence page URL)" + ], "salesforce": [ "**Read CRM records** \u2014 retrieve accounts, contacts, leads, opportunities, and cases by ID or search query", "**Create and update records** \u2014 open leads, close opportunities, update deal stages, and edit contacts",