AWS Setup: Cascading v2: Figma, Jira, Github
Learn how to set up the Cascading v2 workflow in AWS.
Bitovians checkout https://bitovi.atlassian.net/wiki/spaces/AIE/pages/1525219392 for instructions specific to Bitovi environments.
Did you know … you can hire Bitovi to set up your Cascading infrastructure.
Overview
To set up the Cascading v2 workflow in AWS, you will need:
A Jira Automation to create a Github Issue when an AI coding agent is needed.
The Github Cloud Coding Agent to be able to connect to Figma and Atlassian MCP services
The figma-mcp-proxy service that hosts desktop Figma, secures it, and manages opening up the right file on incoming requests.
The mcp_atlassian service that provides access to cloud coding agents (Atlassian’s offiical MCP service only supports PKCE localhost callbacks).
We suggest making this work incrementally in the following order:
Github Cloud Coding Agent is able to connect to mcp_atlassian
Github Cloud Coding Agent is able to connect to figma-mcp-proxy
Jira Automation is able to trigger the Github Cloud Coding Agent
Github Cloud Coding Agent is able to put the Jira ticket in Review when the Agent has completed.
Prereqs
An AWS account
Terraform CLI
Access to Jira Project Automations
Enable Github Cloud Coding Agent to Connect to mcp_atlassian
This setup uses a Jira service account (bot user) to perform actions in Jira and/or Atlassian on behalf of the Coding Agent.
Create Jira bot user
It is recommended that you name the bot user <Company>CodingAI
Create personal access token with bot user
You must be logged in to Jira on the bot user’s account. Click on the account circle on the top right of the page and navigate to Account settings > Security > API tokens > Create and manage API tokens
From there, select “Create API token”, give it a name and click “Create”. Be sure to write this down somewhere secure as you won’t be able to see it again.
Deploy the mcp-atlassian service
The Bitovi mcp-atlassian repo is a fork of sooperset/mcp-atlassian. Our fork allows for headers to be used for Jira auth instead of hard-coded values to enable user agnostic usage.
Follow the deployment guide in the mcp-atlassian repo.
Terraform state is managed by an AWS S3 bucket, ensure you update the provider.tf
The value of
API_KEYis used for authorization at the app layer. Generate a new key using https://it-tools.tech/token-generator
An auth_token value is used by the Application Load Balancer which checks incoming traffic for a matching x-authorization header before passing the traffic to the mcp-atlassian deployment.
Find the current API key here:
Update Github Environment Secrets
From within the repo open settings > Environments
Create an environment:
copilotAdd the following secrets:
COPILOT_MCP_MCP_ATLASSIAN_AUTH_TOKEN- The value of theAPI_KEYin the previous step.COPILOT_MCP_JIRA_API_TOKEN- The value of the PAT token created for the bot user
Update Copilot Agent Settings for mcp-atlassian
From within the repo open settings > Copilot > Agent Settings
Enter the following into the configuration:
{
"mcpServers": {
"mcp-atlassian-service": {
"tools": ["*"],
"url": "https://<mcp-atlassian-url>/mcp/",
"type": "http",
"headers": {
"x-authorization": "Bearer $COPILOT_MCP_ATLASSIAN_AUTH_TOKEN",
"x-jira-api-token": "$COPILOT_MCP_JIRA_API_TOKEN",
"x-jira-url": "https://<company>.atlassian.net",
"x-jira-username": "<jira bot user email>"
}
}
}
}Testing Copilot and mcp-atlassian integration
To test that this works:
Create a simple Jira story that does something minor. For example, a ticket that says:
> Add “hello there!” to the README.md.Make a Github issue that references the Jira story. For example:
> Implement Jira story {TICKET-KEY}. Use mcp-atlassian-service to retrieve the story details.Assign the Github ticket to Github Coding agent.
Enable Github Cloud Coding Agent to connect to figma-mcp-proxy
Deploy a new instance of the Figma infrastucture
The Figma Windows and MacOS apps were recently updated to allow for a localhost mcp service. This API service is still in development and is only available to localhost applications; however, the Bitovi Figma-proxy provides a proxy service to enable external connections.
Follow the guide within the figma-proxy repo
Terraform state is managed by an AWS S3 bucket, ensure you update the provider.tf with a S3 bucket you own
(Recommendation) Install the
Windows Appfrom the Playstore if using MacOS
The value of
auth_tokenis used for authorization checked by the loadbalancer (networking layer). Generate a new key using https://it-tools.tech/token-generator
Update Github Environment Secrets
From within the repo open settings > Environments
Find the environment:
copilotAdd the following secrets:
COPILOT_MCP_FIGMA_TOKEN- theauth_tokenyou created in the previous step
Update Copilot Agent Settings for figma
From within the repo open settings > Copilot > Agent Settings
Enter the following into the configuration for Figma:
{ "mcpServers": { "figma": { "tools": ["*"], "type": "http", "url": "<Use the FQDN output from Figma deployment>", "headers": { "Authorization": "Bearer $COPILOT_MCP_FIGMA_TOKEN" } }, "mcp-atlassian-service": { "tools": ["*"], "url": "https://<mcp-atlassian-url>/mcp/", "type": "http", "headers": { "x-authorization": "Bearer $COPILOT_MCP_MCP_ATLASSIAN_AUTH_TOKEN", "x-jira-api-token": "$COPILOT_MCP_JIRA_API_TOKEN", "x-jira-url": "https://<company>.atlassian.net", "x-jira-username": "<jira bot user email>" } } } }
Testing Copilot and figma integration
Create a Figma design with a frame that has some sample text
Now create a Github issue with a link to that frame requesting that the text be added to the bottom of the README.md file. Assign the issue to Copilot.
A pull request should be created where Copilot will start a work session and integrate with the Figma MCP. Once the session is done, check the commit in the PR to see if the correct text was added.
Enable Jira to trigger Github Cloud Coding Agent
Create the Github bot account
We recommend using the same name format that was used to create a Jira bot user in: https://bitovi.atlassian.net/wiki/spaces/AIEnabledDevelopment/pages/1520435253/AWS+Setup+Cascading+v2+Figma+Jira+Github#Create-Jira-bot-user .
Invite Github bot to org/repo
Invite your github bot to the organization and repository.
Create the Jira Automation
In this section you’ll set up the Jira automation which allows Jira to create a GitHub issue for the ticket you’re working on. This ticket will be automatically assigned to Copilot which will immediately get to work on solving it.
1. Within Jira, click on the “Settings” icon at the top right and select “System” (you may need admin access to the Jira site for this option to show).
In the menu on the left select “Global automation”, then at the top right click on the “…” icon and select “Import rules”
Import the rule file linked below. Once it’s created, find it in the list of automations and open it up.
The first thing you’ll need to change is the Assignee field. In the “Criteria” dropdown on the right, select your bot user account
Next, you’ll need to create a personal access token for your GitHub bot user.
GitHub Bot User: https://bitovi.atlassian.net/wiki/spaces/AIEnabledDevelopment/pages/1520435253/AWS+Setup+Cascading+v2+Figma+Jira+Github#Create-the-Github-bot-account
While logged in to the bot account on GitHub, navigate to Settings > Developer Settings > Personal access tokens > Tokens (classic), and then generate a new token with “repo” permissions:
With your GitHub access token in hand, head back over to the Jira automation and add it to both web request blocks.
The key should be
Authorizationand the valueBearer <YOUR_GITHUB_TOKEN>
This Jira automation will automatically open an issue in your project’s GitHub repository whenever you assign the ticket to your Jira AI bot and the ticket’s status is changed to
In ProgressThe automation will automatically determine what the project’s GitHub repository is by looking in the project’s description section in it’s settings.
In the side menu, select the
…icon next to the project you want the automation to work with, then clickSpace settingsFrom the settings page, find the description section and paste in your GitHub repo’s url (this should be the first GitHub url in the description). The Jira automation will parse this url automatically, jusit be sure to keep everything up to date.