This section describes a Forge preview feature. Preview features are deemed stable; however, they remain under active development and may be subject to shorter deprecation windows. Preview features are suitable for early adopters in production environments.
We release preview features so partners and developers can study, test, and integrate them prior to General Availability (GA). For more information, see Forge release phases: EAP, Preview, and GA.
The rovo:agentConnector module allows you to integrate remote AI agents hosted on external infrastructure into Jira. Once a remote agent is registered, users can interact with them in a similar manner to other users and Rovo agents: assigning them work items, @mentioning them in comments, and chatting with them via the Rovo Chat panel.
Use this module to integrate Jira with AI agents residing outside of the Atlassian platform (such as GitHub Copilot, Cursor Background Agents, or Box AI Agents). New integrations should target A2A 1.0. For implementation guidance, see Integrate remote agents with Jira.
Remote agents must implement an Agent2Agent (A2A) protocol server to communicate with Jira. The A2A protocol is an open standard that enables AI agents to communicate with each other, regardless of the underlying framework or vendor.
Atlassian supports both the synchronous and the streaming implementation of the A2A protocol. To enable streaming, set the streaming property to true in your manifest. Streaming in A2A 1.0 uses the A2A 1.0 JSON-RPC method set and event payload model.
For more information, see Getting Started.
Jira communicates with remote agents via the JSON-RPC 2.0 protocol. Your remote service must expose an endpoint that accepts JSON-RPC requests from Jira and returns responses according to the A2A protocol specification.
| Transport Type | Timeout |
|---|---|
streaming=false (sync invocation) | 55s |
streaming=true (SSE stream) | 900s (15min) |
Note that in case of timeouts during the streaming requests, Jira will attempt to reconnect automatically to the remote agent.
Adding a rovo:agentConnector to a Forge app leads to modifying the behavior of the system user associated with the Forge app:
The app system user will no longer be mentionable.
This means that users won't be able to @-mention the app in comments or fields. This change affects all app versions in the current environment.
Instead, the agent connector user is available for @-mention.
The Forge CLI warns about this behavior change at deployment time and asks you to approve before proceeding.
This warning feature requires the Forge CLI version 13.3 or higher. For more details about the deployment approval flow, refer to deploy.
Non-production apps might fail during the invocation if the user triggering the agent is not a contributor to the app.
This would reflect in the following error message:
1 2I counldn't finish working because of a technical problem on my end. Try again in a few moments.
If this is the case, you can fix it by adding the current user as an app contributor.
See also: more details about Forge app environments.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29modules {} └─ rovo:agentConnector [] ├─ key (string) [Mandatory] ├─ name (string) [Mandatory] ├─ description (string) [Optional] ├─ icon (string) [Optional] ├─ conversationStarters [] [Optional] │ └─ conversationStarter (string) ├─ productContexts [] [Mandatory] │ └─ product (string) └─ protocols [] [Mandatory] └─ agent2Agent ├─ version (string) [Mandatory] └─ jsonRpcTransport ├─ streaming (boolean) └─ endpoint (string) [Mandatory] remotes [] └─ key (string) [Mandatory] └─ baseUrl (string) [Mandatory] resources [] └─ key (string) [Mandatory] └─ path (string) [Mandatory] permissions [] └─ scopes [] └─ scope (string) [Mandatory]
In this structure:
rovo:agentConnector module defines a remote agent with metadata and communication protocols.endpoint property references a separately defined endpoint module, which specifies the route Jira uses to communicate with your remote agent via JSON-RPC.remotes configuration identifies the domain of your remote service and enables authentication tokens to be passed to your service.resources module provides static assets like the agent icon.productContexts property specifies which Atlassian products the agent operates in. Only jira is supported during the Preview.permissions.scopes array declares the OAuth scopes your app requires. The read:jira-work scope is required for the agent to function correctly.| Property | Type | Required | Description |
|---|---|---|---|
key | string | Yes | A key for the module, which other modules can refer to. Must be unique within the manifest. Regex: ^[a-zA-Z0-9_-]+$ |
name | string | Yes | The name of your Agent. Must not exceed 30 characters. |
description | string | The description of your Agent. This is used to describe what your Agent can do to users. | |
icon | string | The icon displayed as the Agent’s avatar. The icon property accepts a relative path from a declared resource. Alternatively, you can also use an absolute URL to a self-hosted icon.If no icon is provided, or if there's an issue preventing the icon from loading, a generic avatar will be displayed. | |
conversationStarters | string[] | Conversation starters that will be suggested to the user when they engage with your Agent. | |
productContexts | string[] | Yes | The Atlassian apps within which the agent should operate. Only jira can be used during the Preview. |
protocols | object | Yes | Defines the protocols and transport mechanisms your remote agent uses to communicate with Jira. See A2A Protocols for more configuration details |
For new integrations, set agent2Agent.version to 1.0. Use 0.3 only for deprecated A2A 0.3-era integrations or temporary migration scenarios.
| Property | Type | Required | Description |
|---|---|---|---|
agent2Agent | object | Yes | Configures communication using the Agent2Agent (A2A) protocol. Currently, only jsonRpcTransport is supported. |
agent2Agent.version | string | Yes | The version of the A2A protocol to use. Valid values are 1.0 and 0.3. Use 1.0 for new integrations. Use 0.3 only to preserve compatibility with existing A2A 0.3-era implementations during migration.See A2A protocol versioning for more details. |
agent2Agent.jsonRpcTransport | object | Yes | Enables Agent2Agent protocol over JSON-RPC 2.0 transport. See Transport properties for more configuration details |
| Property | Type | Required | Description |
|---|---|---|---|
endpoint | string | Yes | The key of the endpoint that should be invoked for JSON-RPC communication with your remote agent. |
streaming | boolean | Whether responses from the remote agent are streamed back to Jira incrementally using Server-Sent Events (SSE). Defaults to false. |
The rovo:agentConnector module works together with other manifest configurations to enable remote agent integration:
The following example manifest file defines an rovo:agentConnector that connects to your remotely hosted agent:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33modules: rovo:agentConnector: - key: your-awesome-agent name: Your Awesome Agent description: An awesome agent that you built icon: resource:agent-resources;icons/your-agent.svg productContexts: - jira protocols: agent2Agent: version: '1.0' jsonRpcTransport: endpoint: a2a-json-rpc-endpoint streaming: true endpoint: - key: a2a-json-rpc-endpoint remote: agent-remote route: path: /a2a/json-rpc remotes: - key: agent-remote baseUrl: https://youragent.com operations: - fetch - compute - other resources: - key: agent-resources path: static/hello-world/build permissions: scopes: - read:jira-work
Rate this page: