VS Code Extensions
Rovo Tools for Copilot

Rovo Tools for Copilot

by manulife-internal

Atlassian Rovo semantic search and fetch as native VS Code language model tools for GitHub Copilot agent mode.

Downloads

97

Rating

5.0 / 5 (1)

Version

0.1.1

Last updated

Jul 31, 2026

Exposes Atlassian Rovo semantic search to GitHub Copilot agent mode in VS Code as native language model tools, and bundles the rovo-copilot skill that tells the agent how to research with them. Installing the VSIX is the whole setup: tools via languageModelTools, instructions via chatSkills.

Install

code --install-extension rovo-copilot-tools-0.1.1.vsix

Reload the window, then check the Copilot tool picker. The first tool call opens the browser consent screen; no sign-in command is needed first.

Requires VS Code 1.108+ (chatSkills was added in that release).

Build

npm install
npm run compile
npm run package

Requires Node.js 18+ (uses global fetch).

npm run package runs scripts/bundle-skill.js first, which copies ../SKILL.md and ../references/ into skills/rovo-copilot/ and fails the build if the result would not load — wrong frontmatter key, name/folder mismatch, missing description, or a Markdown link pointing at a file that was not packaged. skills/ is generated and gitignored; edit the skill folder one level up instead.

Tools

Tool Reference Backing Rovo tool
rovo_search #rovoSearch search
rovo_fetch #rovoFetch fetch
rovo_jql #rovoJql searchJiraIssuesUsingJql

All read-only: read-only OAuth scopes, no mutating tool exposed.

Commands

Command Purpose
Rovo: Sign in to Atlassian Register a client and complete OAuth
Rovo: Show connection status Report token validity without printing secrets
Rovo: Sign out Clear stored tokens

Settings

Setting Default
rovoTools.serverUrl https://mcp.atlassian.com/v1/mcp/authv2
rovoTools.callbackPort 3118
rovoTools.cloudId (auto-resolved)

Source layout

File Responsibility
src/extension.ts Tool registration, result shaping, context caps
src/auth.ts DCR, PKCE, token storage and refresh
src/mcpClient.ts MCP streamable-HTTP transport and SSE parsing
scripts/bundle-skill.js Stages and validates the bundled skill

Context caps live at the top of src/extension.ts (MAX_RESULTS, MAX_SNIPPET, MAX_BODY). Raise them only if a workflow genuinely needs more; large tool results crowd out code context.

Design notes

Dynamic client registration. The extension registers its own OAuth client rather than shipping a fixed client_id, because Atlassian validates redirect_uri against the client's allowlist before rendering consent — a fixed client rejects whichever loopback port the machine uses. Registration is per user and per machine; nothing is shared.

Token storage. Tokens go to VS Code SecretStorage (OS keychain), never to settings or the workspace. A returned client_secret is unused (token_endpoint_auth_method: none) and not stored.

Curated tool set. The endpoint exposes 23 tools; this surfaces 3. Teamwork Graph is excluded at both layers — no TWG tool and no read:all:twg scope — so the consent screen stays as narrow as what the tools can actually use. TWG is beta and can surface connected third-party data.

Error shaping. Failures return as text the model can act on rather than exceptions. Jira's unbounded-JQL rejection is detected specifically and turned into an instruction to add a restriction.

See setup-and-troubleshooting.md for verified endpoint behaviour and the symptom matrix.

Related extensions