Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Atlassian Rovo MCP server

Vendor MCP
Open markdown

The Atlassian Rovo MCP connector routes your AI agent's tool calls to Atlassian Rovo's own MCP server through Scalekit. Each user signs in to Atlassian Rovo once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 39 tools.

Tools
39
What they doRead · write · destructive
26 · 13 · 026 read13 write0 destructive
Users sign in with
OAuth app
Scalekit's or your own

What you can do

  • 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)

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Atlassian Rovo MCP connection

    In AgentKit > Connections, create an Atlassian Rovo MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Atlassian Rovo MCP server, so you don't need to register an OAuth app. To show your own app on the consent screen, use your own credentials instead.

    Use your own OAuth app

    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, go to AgentKit > Connections > Create Connection. Find Atlassian Rovo MCP and click Create. Copy the redirect URI — it looks like https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.

      Copy redirect URI from Scalekit dashboard for Atlassian Rovo MCP

    2. Open the Rovo MCP server settings in Atlassian

      • Go to 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

      • 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

      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.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'atlassianmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Atlassian Rovo MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'atlassianmcp_atlassianuserinfo',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • atlassianmcp_atlassianuserinfoRetrieve the profile information for the currently authenticated Atlassian user.Read-only

    AtlassianUserInfo

    Retrieve the profile information for the currently authenticated Atlassian user.

    Inputs

    This tool takes no inputs.

  • atlassianmcp_fetchFetch details about any Atlassian object by its ARI (Atlassian Resource Identifier) or URL.Read-only

    Fetch

    Fetch details about any Atlassian object by its ARI (Atlassian Resource Identifier) or URL.

    Inputs

    idstringrequired
    An ARI or URL identifying the object (e.g. ari:cloud:jira:...:issue/10059 or https://site.atlassian.net/browse/KAN-1).
    cloudIdstring
    The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.
  • atlassianmcp_getaccessibleatlassianresourcesList all Atlassian cloud sites accessible to the authenticated user, including their cloud IDs.Read-only

    GetAccessibleAtlassianResources

    List all Atlassian cloud sites accessible to the authenticated user, including their cloud IDs.

    Inputs

    This tool takes no inputs.

  • atlassianmcp_getcompasscomponentRetrieve details of a specific Compass component by its ID.Read-only

    GetCompassComponent

    Retrieve details of a specific Compass component by its ID.

    Inputs

    cloudIdstringrequired
    The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.
    componentIdstringrequired
    The ID of the component to get
    includeCustomFieldsInResponseboolean
    Set to true to include custom field values in the component response.default true
    includeRelatedComponentsAndDependenciesInResponseboolean
    Set to true to include related components and dependencies.default false
    includeRelatedLinksInResponseboolean
    Set to true to include related links in the component response.default true
  • atlassianmcp_getcompasscomponentsSearch and list Compass components in a workspace, with optional filters.Read-only

    GetCompassComponents

    Search and list Compass components in a workspace, with optional filters.

    Inputs

    cloudIdstringrequired
    The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.
    afterstring
    Cursor for fetching the next page of results.
    filtersobject
    Filter criteria for Compass components as JSON (e.g. {"typeIds": ["SERVICE"]}).
    maxResultsnumber
    Maximum number of results to return per page.default 10
    querystring
    Search query to find Atlassian content across Jira and Confluence.
  • atlassianmcp_getcompasscustomfielddefinitionsList all custom field definitions configured in a Compass workspace.Read-only

    GetCompassCustomFieldDefinitions

    List all custom field definitions configured in a Compass workspace.

    Inputs

    cloudIdstringrequired
    The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.
  • atlassianmcp_getconfluencecommentchildrenRetrieve replies to a specific Confluence comment.Read-only

    GetConfluenceCommentChildren

    Retrieve replies to a specific Confluence comment.

    Inputs

    cloudIdstringrequired
    The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.
    commentIdstringrequired
    The ID of the Confluence comment to retrieve children for.
    commentTypestringrequired
    Type of comment to retrieve children for: footer or inline.one of footerinline
    contentFormatstring
    Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).one of markdownadf
    cursorstring
    Cursor string for paginating through results.
    limitnumber
    Maximum number of items to return.
    sortstring
    Sort order for results (e.g. created-date, -modified, title).one of id-idcreated-date-created-date
  • atlassianmcp_getconfluencepageRetrieve the content and metadata of a specific Confluence page by its ID.Read-only

    GetConfluencePage

    Retrieve the content and metadata of a specific Confluence page by its ID.

    Inputs

    cloudIdstringrequired
    The cloud site ID (UUID) of your Atlassian instance. Use getAccessibleAtlassianResources to retrieve it.
    pageIdstringrequired
    The numeric ID of the Confluence page. Use getConfluenceSpaces or search to find page IDs.
    contentFormatstring
    Format of the content body — use markdown for plain text or adf for Atlassian Document Format (JSON).one of htmlmarkdownadf
    contentTypestring
    Type of Confluence content: page, blogpost, or custom.one of pageblogdefault page

Workflows

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.

// Step 1 — get the cloud ID
const resources = await actions.executeTool({
connector: '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({
connector: 'atlassianmcp',
identifier: 'user_123',
toolName: 'atlassianmcp_getjiraissue',
toolInput: {
cloudId,
issueIdOrKey: 'KAN-1',
},
});
console.log(issue);

The atlassianmcp_getaccessibleatlassianresources response looks like this:

[
{
"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.