AWS Setup: Cascading v2: Figma, Jira, Github

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).

image-20250914-221933.png

We suggest making this work incrementally in the following order:

  1. Github Cloud Coding Agent is able to connect to mcp_atlassian

  2. Github Cloud Coding Agent is able to connect to figma-mcp-proxy

  3. Jira Automation is able to trigger the Github Cloud Coding Agent

  4. 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.

  1. Follow the deployment guide in the mcp-atlassian repo.

    1. Terraform state is managed by an AWS S3 bucket, ensure you update the provider.tf

    2. The value of API_KEY is 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:

https://start.1password.com/open/i?a=GV2FYFKQURG4RCTEGPUDM2ZFFU&v=mecxwd3bzdov2zdnr2g7hqeq64&i=rg6uplygo3j4htkqurmvoabfpi&h=bitovi.1password.com

Update Github Environment Secrets

  1. From within the repo open settings > Environments

  2. Create an environment: copilot

  3. Add the following secrets:

    1. COPILOT_MCP_MCP_ATLASSIAN_AUTH_TOKEN - The value of the API_KEY in the previous step.

    2. COPILOT_MCP_JIRA_API_TOKEN - The value of the PAT token created for the bot user

 

Update Copilot Agent Settings for mcp-atlassian

  1. From within the repo open settings > Copilot > Agent Settings

  2. 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:

  1. Create a simple Jira story that does something minor. For example, a ticket that says:

    > Add “hello there!” to the README.md.

  2. 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.

  3. 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.

  1. Follow the guide within the figma-proxy repo

    1. Terraform state is managed by an AWS S3 bucket, ensure you update the provider.tf with a S3 bucket you own

    2. (Recommendation) Install the Windows App from the Playstore if using MacOS

  2. The value of auth_token is used for authorization checked by the loadbalancer (networking layer). Generate a new key using https://it-tools.tech/token-generator

Update Github Environment Secrets

  1. From within the repo open settings > Environments

  2. Find the environment: copilot

  3. Add the following secrets:

    1. COPILOT_MCP_FIGMA_TOKEN - the auth_token you created in the previous step

Update Copilot Agent Settings for figma

  1. From within the repo open settings > Copilot > Agent Settings

  2. 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.

https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository

Create the Jira Automation

  1. Within Jira open “Project Settings” > Automation

The above Jira automation is available in an exported json below:

To import and use it you’ll need admin access to the Jira instance you’re using. You can only import automations from the global settings menu. Follow the instructions below to import the rule json file:
https://support.atlassian.com/cloud-automation/docs/import-and-export-jira-automation-rules/

Once you’ve imported the rule, you’ll need to modify it in a few places to get it to fit your specific project.

In the first web request block we get the id of the repository you’re using. Replace owner and name above with the name of user/organization that owns the repository, and the repository name itself.

Next you’ll need to add in an authorization token for both web requests. This is a personal access token that should be generated on the Github bot account created earlier.

While logged in to the bot account, navigate to Settings > Developer Settings > Personal access tokens > Tokens (classic), and then generate a new token with “repo” permissions:

 

This token should be added to both web requests in the Headers section with the “Bearer” prefix.

ex: Bearer MY_TOKEN_HERE

You can test that these requests work using the “Validate your web request configuration” dropdown right below the headers section.

The last things to change is the link in the comment that gets posted on the Jira ticket. Update it to match the repository the issue is being created on:

Enable Github Cloud Coding Agent to put the Jira ticket in Review

This process can be handled by Copilot after it’s done working on the ticket via the MCP integration. Simply request to Copilot that it transition the ticket when you’re creating the issue on Github. Note that this can be included in the automation described in the section above.

 

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).

  1. In the menu on the left select “Global automation”, then at the top right click on the “…” icon and select “Import rules”

  1. Import the rule file linked below. Once it’s created, find it in the list of automations and open it up.

  1. The first thing you’ll need to change is the Assignee field. In the “Criteria” dropdown on the right, select your bot user account

    1. Jira Bot User: https://bitovi.atlassian.net/wiki/spaces/AIEnabledDevelopment/pages/1520435253/AWS+Setup+Cascading+v2+Figma+Jira+Github#Create-Jira-bot-user

  1. Next, you’ll need to create a personal access token for your GitHub bot user.

    1. GitHub Bot User: https://bitovi.atlassian.net/wiki/spaces/AIEnabledDevelopment/pages/1520435253/AWS+Setup+Cascading+v2+Figma+Jira+Github#Create-the-Github-bot-account

    2. 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:

    3.  

  2. With your GitHub access token in hand, head back over to the Jira automation and add it to both web request blocks.

    1. The key should be Authorization and the value Bearer <YOUR_GITHUB_TOKEN>

    2.  

       

  3. 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 Progress

    1. The automation will automatically determine what the project’s GitHub repository is by looking in the project’s description section in it’s settings.

    2. In the side menu, select the icon next to the project you want the automation to work with, then click Space settings

    3. From 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.

      1.