RFCs are a way for Atlassian to share what we’re working on with our valued developer community.
It’s a document for building shared understanding of a topic. It expresses a technical solution, but can also communicate how it should be built or even document standards. The most important aspect of an RFC is that a written specification facilitates feedback and drives consensus. It is not a tool for approving or committing to ideas, but more so a collaborative practice to shape an idea and to find serious flaws early.
Please respect our community guidelines: keep it welcoming and safe by commenting on the idea not the people (especially the author); keep it tidy by keeping on topic; empower the community by keeping comments constructive. Thanks!
Project Summary
Apps built by our developer and marketplace communities are integral to the day-to-day work of our shared customers. As AI continues to change the shape in which these users work, it’s important that we enable apps to keep up.
-
Publish: 13 May 2026
-
Discuss: 27 May 2026
-
Resolve: 16 Jun 2026
Problem
Today Forge apps are only able to define actions which are exposed and selectable by customers when creating agents, but not natively available while interacting with Rovo. This results in additional complexity or limitations to adoption, as customers can only utilise these actions when chatting with Agents, not the core Rovo experience.
Similarly, we are seeing apps exploring pathways to delivering MCP capabilities for their apps. For remote apps which store this data today this is achievable, however apps which store data within the Forge platform inherit additional complexities to exposing such capabilities. As users evolve into differential ways of working, it’s important that apps are able to embed themselves into user’s day to day experiences.
Proposed Solution
How a tool is defined
- Tools are not a new primitive, they will reuse existing Forge actions. An action becomes a tool when it is referenced by a
rovo:mcpmodule in the manifest. This means:- No new runtime concept actions already have defined inputs/outputs, permissions, and execution context
- Existing apps get a path to MCP if they already have actions, wiring them up is a manifest change
Manifest example:
modules:
rovo:mcp:
- key: my-app-mcp
tools:
- summarise-page
action:
- key: summarise-page
function: summarise-page-handler
actionVerb: GET
name: Summarise page
description: >-
Returns a concise summary of a Confluence page
given its page ID. Read-only.
schema: summarise-page
function:
- key: summarise-page-handler
handler: src/handlers/summarise.handler
schemas:
- key: summarise-page
inputSchema:
type: object
properties:
pageId:
type: string
description: The ID of the Confluence page to summarise
required:
- pageId
additionalProperties: false
How tools are exposed
Actions defined by a Forge app become tools when they are referenced by a rovo:mcp module.
- Rovo and MCP (
rovo:mcp): When an action is listed under arovo:mcpmodule, it is exposed as a managed MCP tool on Atlassian MCP infrastructure. Rovo can discover and invoke those tools, and external AI clients such as Claude Desktop, Cursor, or custom agents can connect using the standard MCP protocol. We handle the complexities of running the MCP layer: auth, tool discovery, and protocol negotiation so developers can focus on building actions that help customers get work done.
Note: this does not initialise an independent MCP server per app, it exposes the referenced actions as tools on the existing Atlassian MCP infrastructure.
Each app with externally exposed tools inherits a unique URL that end-users can use to configure their client. This URL will take the form of https://mcp.atlassian.com/v1/forge/<installationId> or https://mcp.atlassian.com/v1/forge/<appId>.
Auth is backed by Atlassian’s OAuth service. The authenticated user’s identity is passed through to the invocation context, so asUser() requests respect the end-user’s access permissions, the same trust model as Rovo. asApp() will be actively prevented for MCP-invoked actions to preserve the permissions model.
Similar to Atlassian’s own Rovo MCP, end-users will be able to select which tools are enabled or disabled and whether new tools are automatically discovered.
Apps expose actions as tools by referencing them from rovo:mcp. Admins retain control over which tools are enabled on their site, consistent with existing Forge governance.
What’s gonna happen to actions?
Existing core:action and automation-action modules will continue to work. We are not deprecating actions as part of this RFC.
There is no new tool module in this proposal. Actions remain the executable capability, and rovo:mcp is the module that determines which actions are exposed as tools.
For apps with existing actions, there is no migration to a new tool primitive. Developers can expose existing actions as tools by referencing them from rovo:mcp, while keeping the same action handlers, permissions, and invocation context.
Admin Experience
Similar to Atlassian Rovo MCP and Forge REST APIs, it is important that we provide opportunities for admins to control which tools are exposed and available both within Rovo and on their site to external MCPs.
We are proposing that admins will have toggles similar to the Forge REST API service, enabling a pathway to support Rovo MCP on apps which are Runs on Atlassian.
Example use case
A Forge app defines a summarise-page tool that takes a pageId and returns a plain-text summary.
A user asks Rovo: “Summarise the design review page.” Rovo discovers the tool, invokes it with the user’s identity, and returns a permission-scoped summary, no custom agent required.
The same tool is also available via the app’s remote MCP endpoint. A user connects their preferred AI client, asks the same question, and gets the same result.
Asks
We are open to all feedback exploring alternatives, constraints, opportunities and agreement with the proposed solution. In particular, we’d be keen to learn:
-
Does the proposed solution meet your needs for exposing tooling to users utilising AI tools?
-
Can you think of any use cases which may not be achievable through this approach?
-
Do you have an interest in exposing tools to either Rovo or remote MCP clients?
