A minimal, runnable reference implementation of the Forge
rovo:agentConnector
module for Jira.
It registers a remote agent,
forwards Jira's A2A 1.0 JSON-RPC requests
to an independently hosted service,
and validates Forge Invocation Tokens (FITs) at that service.
The included Agent Simulator is deliberately scenario-driven. It lets you exercise task completion, streaming progress, input and authentication pauses, artifacts, cancellation, and Markdown without building an AI agent first.
Use this repository when you want to:
- try a Jira remote agent connector end to end;
- understand the boundary between Jira, Forge, and an A2A remote; or
- adapt a small, tested starting point for your own remote agent.
If you are new to Forge and deciding between
a Rovo agent with actions (rovo:agent)
and a remote agent (rovo:agentConnector),
read Rovo Agents vs Remote Agent Connectors first.
In short,
choose this connector when your agent runs on your own infrastructure
and its work can outlast a single Forge invocation.
It is a reference implementation, not a production agent platform. The sample uses a Cloudflare Quick Tunnel for local development and an in-memory task store, so task continuity across a remote restart, tunnel loss, redeployment, or reinstallation is not provided.
You will need:
- Node.js 24 (see
.nvmrc) - npm 11.17.0 or compatible
- the Forge CLI with a completed
forge login cloudflaredsecretspecyq- and a Jira Cloud site on which you can install Forge apps.
npm install
npm run tools:check
npm run build
npm testThen follow Run the Sample End-to-End. It registers this clone as a Forge app, starts the local remote, opens a Quick Tunnel, deploys the app, and installs it in Jira.
For the complete contributor loop, configuration reference, and troubleshooting, see DEVELOPMENT.md.
Jira
│ A2A 1.0 JSON-RPC
▼
Forge app (`rovo:agentConnector`)
│ Forge remote endpoint + FIT
▼
Remote A2A service
│
▼
Scenario runner or your agent runtime
The Forge manifest selects Jira and the A2A 1.0 JSON-RPC endpoint. The remote service validates the FIT before it dispatches an A2A request. The bundled simulator then selects a YAML scenario from the incoming task context.
- Develop the reference implementation: DEVELOPMENT.md
- Start here: Run the Sample End-to-End
- Use the simulator: Edit a Simulation Scenario and scenario format reference
- Choose a module: Rovo Agents vs Remote Agent Connectors
- Understand the architecture: How a Jira Remote Agent Connector Works
- Choose task delivery: Polling vs Streaming
- Troubleshoot FIT validation: Diagnose a FIT Auth Failure
- Run live streaming checks: Jira streaming lifecycle smoke suite
- Look up behavior: A2A compatibility and Markdown in agent messages
See CONTRIBUTING.md before opening a pull request. This project is licensed under the Apache License 2.0.