Bitrise
official
devtools
Chat with your builds, CI, and [more](https://bitrise.io/blog/post/chat-with-your-builds-ci-and-more-introducing-the-bitrise-mcp-server).
Bitrise MCP Server
MCP Server for the Bitrise API, enabling app management, build operations, artifact management and more.
Features
- Comprehensive API Access: Access to Bitrise APIs including apps, builds, artifacts, and more.
- Authentication Support: Secure API token-based access to Bitrise resources.
- Detailed Documentation: Well-documented tools with parameter descriptions.
Setup
Environment Setup
Example setting up the environment
Please read the official documentation for uv and pylint for more options.
# Install pyenv and python 3.12.6 curl -fsSL https://pyenv.run | bash pyenv install 3.12.6 # Install uv curl -LsSf https://astral.sh/uv/install.sh | sh
Bitrise API Token
- Go to your Bitrise Account Settings/Security.
- Navigate to the "Personal access tokens" section.
- Copy the generated token.
Use with Claude Desktop
This guide uses Claude Desktop as the MCP client, but you can use any other MCP-compatible client and adapt the following config options to your preferred client.
Open Claude settings, then navigate to the Developer tab.
Click Edit config. This creates a config file called
claude_desktop_config.json
. Open this file with your preferred editor and add the Bitrise MCP server:{ "mcpServers": { "bitrise": { "command": "uvx", "env": { "BITRISE_TOKEN": "<YOUR_TOKEN>" }, "args": [ "--from", "git+https://github.com/bitrise-io/bitrise-mcp@v1.1.0", "bitrise-mcp" ] } } }
Save the config file and restart Claude Desktop. If everything is set up correctly, you should see a hammer icon next to the message composer.
You can limit the number of tools exposed to the MCP client. This is useful if you want to optimize token usage or your MCP client has a limit on the number of tools.
Tools are grouped by their "API group", and you can pass the groups you want to expose as tools. Possible values:
apps, builds, workspaces, webhooks, build-artifacts, group-roles, cache-items, pipelines, account, read-only, release-management
.We recommend using the
release-management
API group separately to avoid any confusion with the apps
API group.Example configuration:
{ "mcpServers": { "bitrise": { "command": "<ABSOLUTE_PATH_TO>/uvx", "env": { "BITRISE_TOKEN": "<YOUR_PAT>" }, "args": [ "--from", "git+https://github.com/bitrise-io/bitrise-mcp@v1.1.0", "bitrise-mcp", "--enabled-api-groups", "cache-items,pipelines" ] } } }
Tools
Apps
-
list_apps
- List all the apps available for the authenticated account
- Arguments:
(optional): Order of the apps: last_build_at (default) or created_atsort_by
(optional): Slug of the first app in the responsenext
(optional): Max number of elements per page (default: 50)limit
-
register_app
- Add a new app to Bitrise
- Arguments:
: Repository URLrepo_url
: Whether the app's builds visibility is "public"is_public
: The organization (aka workspace) the app to add toorganization_slug
(optional): Type of project (ios, android, etc.)project_type
(optional): githubprovider
-
finish_bitrise_app
- Finish the setup of a Bitrise app
- Arguments:
: The slug of the Bitrise app to finish setup forapp_slug
(optional): The type of project (e.g., android, ios, flutter, etc.)project_type
(optional): The stack ID to use for the appstack_id
(optional): The mode of setupmode
(optional): The configuration to use for the appconfig
-
get_app
- Get the details of a specific app
- Arguments:
: Identifier of the Bitrise appapp_slug
-
delete_app
- Delete an app from Bitrise
- Arguments:
: Identifier of the Bitrise appapp_slug
-
update_app
- Update an app
- Arguments:
: Identifier of the Bitrise appapp_slug
: Whether the app's builds visibility is "public"is_public
: Type of projectproject_type
: Repository providerprovider
: Repository URLrepo_url
-
get_bitrise_yml
- Get the current Bitrise YML config file of a specified Bitrise app
- Arguments:
: Identifier of the Bitrise appapp_slug
-
update_bitrise_yml
- Update the Bitrise YML config file of a specified Bitrise app
- Arguments:
: Identifier of the Bitrise appapp_slug
: The new Bitrise YML config file contentbitrise_yml_as_json
-
list_branches
- List the branches with existing builds of an app's repository
- Arguments:
: Identifier of the Bitrise appapp_slug
-
register_ssh_key
- Add an SSH-key to a specific app
- Arguments:
: Identifier of the Bitrise appapp_slug
: Private SSH keyauth_ssh_private_key
: Public SSH keyauth_ssh_public_key
: Register the key in the provider serviceis_register_key_into_provider_service
-
register_webhook
- Register an incoming webhook for a specific application
- Arguments:
: Identifier of the Bitrise appapp_slug
Builds
-
list_builds
- List all the builds of a specified Bitrise app or all accessible builds
- Arguments:
(optional): Identifier of the Bitrise appapp_slug
(optional): Order of builds: created_at (default), running_firstsort_by
(optional): Filter builds by branchbranch
(optional): Filter builds by workflowworkflow
(optional): Filter builds by status (0: not finished, 1: successful, 2: failed, 3: aborted, 4: in-progress)status
(optional): Slug of the first build in the responsenext
(optional): Max number of elements per page (default: 50)limit
-
trigger_bitrise_build
- Trigger a new build/pipeline for a specified Bitrise app
- Arguments:
: Identifier of the Bitrise appapp_slug
(optional): The branch to build (default: main)branch
(optional): The workflow to buildworkflow_id
(optional): The commit message for the buildcommit_message
(optional): The commit hash for the buildcommit_hash
-
get_build
- Get a specific build of a given app
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the buildbuild_slug
-
abort_build
- Abort a specific build
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the buildbuild_slug
(optional): Reason for aborting the buildreason
-
get_build_log
- Get the build log of a specified build of a Bitrise app
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the Bitrise buildbuild_slug
-
get_build_bitrise_yml
- Get the bitrise.yml of a build
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the buildbuild_slug
-
list_build_workflows
- List the workflows of an app
- Arguments:
: Identifier of the Bitrise appapp_slug
Build Artifacts
-
list_artifacts
- Get a list of all build artifacts
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the buildbuild_slug
(optional): Slug of the first artifact in the responsenext
(optional): Max number of elements per page (default: 50)limit
-
get_artifact
- Get a specific build artifact
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the buildbuild_slug
: Identifier of the artifactartifact_slug
-
delete_artifact
- Delete a build artifact
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the buildbuild_slug
: Identifier of the artifactartifact_slug
-
update_artifact
- Update a build artifact
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the buildbuild_slug
: Identifier of the artifactartifact_slug
: Enable public page for the artifactis_public_page_enabled
Webhooks
-
list_outgoing_webhooks
- List the outgoing webhooks of an app
- Arguments:
: Identifier of the Bitrise appapp_slug
-
delete_outgoing_webhook
- Delete the outgoing webhook of an app
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the webhookwebhook_slug
-
update_outgoing_webhook
- Update an outgoing webhook for an app
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the webhookwebhook_slug
: List of events to trigger the webhookevents
: URL of the webhookurl
(optional): Headers to be sent with the webhookheaders
-
create_outgoing_webhook
- Create an outgoing webhook for an app
- Arguments:
: Identifier of the Bitrise appapp_slug
: List of events to trigger the webhookevents
: URL of the webhookurl
(optional): Headers to be sent with the webhookheaders
Cache Items
-
list_cache_items
- List the key-value cache items belonging to an app
- Arguments:
: Identifier of the Bitrise appapp_slug
-
delete_all_cache_items
- Delete all key-value cache items belonging to an app
- Arguments:
: Identifier of the Bitrise appapp_slug
-
delete_cache_item
- Delete a key-value cache item
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the cache itemcache_item_id
-
get_cache_item_download_url
- Get the download URL of a key-value cache item
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the cache itemcache_item_id
Pipelines
-
list_pipelines
- List all pipelines and standalone builds of an app
- Arguments:
: Identifier of the Bitrise appapp_slug
-
get_pipeline
- Get a pipeline of a given app
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the pipelinepipeline_id
-
abort_pipeline
- Abort a pipeline
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the pipelinepipeline_id
(optional): Reason for aborting the pipelinereason
-
rebuild_pipeline
- Rebuild a pipeline
- Arguments:
: Identifier of the Bitrise appapp_slug
: Identifier of the pipelinepipeline_id
Group Roles
-
list_group_roles
- List group roles for an app
- Arguments:
: Identifier of the Bitrise appapp_slug
: Name of the rolerole_name
-
replace_group_roles
- Replace group roles for an app
- Arguments:
: Identifier of the Bitrise appapp_slug
: Name of the rolerole_name
: List of group slugsgroup_slugs
Workspaces
-
list_workspaces
- List the workspaces the user has access to
-
get_workspace
- Get details for one workspace
- Arguments:
: Slug of the Bitrise workspaceworkspace_slug
-
get_workspace_groups
- Get the groups in a workspace
- Arguments:
: Slug of the Bitrise workspaceworkspace_slug
-
create_workspace_group
- Create a group in a workspace
- Arguments:
: Slug of the Bitrise workspaceworkspace_slug
: Name of the groupgroup_name
-
get_workspace_members
- Get the members in a workspace
- Arguments:
: Slug of the Bitrise workspaceworkspace_slug
-
invite_member_to_workspace
- Invite a member to a workspace
- Arguments:
: Slug of the Bitrise workspaceworkspace_slug
: Email address of the useremail
-
add_member_to_group
- Add a member to a group
- Arguments:
: Slug of the groupgroup_slug
: Slug of the useruser_slug
Account
me
- Get info from the currently authenticated user account
Release Management
MCP Tools
create_connected_app
- Add a new Release Management connected app to Bitrise.
- Arguments:
: The mobile platform for the connected app (ios/android).platform
: The app store identifier for the connected app.store_app_id
: Identifier of the Bitrise workspace.workspace_slug
: (Optional) An uuidV4 identifier for your new connected app.id
: (Optional) Indicates a manual connection.manual_connection
: (Optional) Specifies which Bitrise Project to associate with.project_id
: (Optional) App name for manual connections.store_app_name
: (Optional) Selection of credentials added on Bitrise.store_credential_id
list_connected_apps
- List Release Management connected apps available for the authenticated account within a workspace.
- Arguments:
: Identifier of the Bitrise workspace.workspace_slug
: (Optional) Maximum number of connected apps per page.items_per_page
: (Optional) Page number to return.page
: (Optional) Filter for a specific mobile platform.platform
: (Optional) Filter for a specific Bitrise Project.project_id
: (Optional) Search by bundle ID, package name, or app title.search
get_connected_app
- Gives back a Release Management connected app for the authenticated account.
- Arguments:
: Identifier of the Release Management connected app.id
update_connected_app
- Updates a connected app.
- Arguments:
: The uuidV4 identifier for your connected app.connected_app_id
: The store identifier for your app.store_app_id
: (Optional) Check validity against the App Store or Google Play.connect_to_store
: (Optional) Selection of credentials added on Bitrise.store_credential_id
list_installable_artifacts
- List Release Management installable artifacts of a connected app.
- Arguments:
: Identifier of the Release Management connected app.connected_app_id
: (Optional) Start of the interval for artifact creation/upload.after_date
: (Optional) Filter for a specific artifact type.artifact_type
: (Optional) End of the interval for artifact creation/upload.before_date
: (Optional) Filter for the Bitrise CI branch.branch
: (Optional) Filter for distribution ready artifacts.distribution_ready
: (Optional) Maximum number of artifacts per page.items_per_page
: (Optional) Page number to return.page
: (Optional) Filter for a specific mobile platform.platform
: (Optional) Search by version, filename or build number.search
: (Optional) Filter for the source of installable artifacts.source
: (Optional) Filter for store ready installable artifacts.store_signed
: (Optional) Filter for a specific version.version
: (Optional) Filter for a specific Bitrise CI workflow.workflow
generate_installable_artifact_upload_url
- Generates a signed upload URL for an installable artifact to be uploaded to Bitrise.
- Arguments:
: Identifier of the Release Management connected app.connected_app_id
: An uuidv4 identifier for the installable artifact.installable_artifact_id
: The name of the installable artifact file.file_name
: The byte size of the installable artifact file.file_size_bytes
: (Optional) Name of the CI branch.branch
: (Optional) Enable public install page.with_public_page
: (Optional) Name of the CI workflow.workflow
get_installable_artifact_upload_and_processing_status
- Gets the processing and upload status of an installable artifact.
- Arguments:
: Identifier of the Release Management connected app.connected_app_id
: The uuidv4 identifier for the installable artifact.installable_artifact_id
set_installable_artifact_public_install_page
- Changes whether public install page should be available for the installable artifact.
- Arguments:
: Identifier of the Release Management connected app.connected_app_id
: The uuidv4 identifier for the installable artifact.installable_artifact_id
: Boolean flag for enabling/disabling public install page.with_public_page
list_build_distribution_versions
- Lists Build Distribution versions available for testers.
- Arguments:
: The uuidV4 identifier of the connected app.connected_app_id
: (Optional) Maximum number of versions per page.items_per_page
: (Optional) Page number to return.page
list_build_distribution_version_test_builds
- Gives back a list of test builds for the given build distribution version.
- Arguments:
: The uuidV4 identifier of the connected app.connected_app_id
: The version of the build distribution.version
: (Optional) Maximum number of test builds per page.items_per_page
: (Optional) Page number to return.page
create_tester_group
- Creates a tester group for a Release Management connected app.
- Arguments:
: The uuidV4 identifier of the connected app.connected_app_id
: The name for the new tester group.name
: (Optional) Indicates automatic notifications for the group.auto_notify
notify_tester_group
- Notifies a tester group about a new test build.
- Arguments:
: The uuidV4 identifier of the connected app.connected_app_id
: The uuidV4 identifier of the tester group.id
: The unique identifier of the test build.test_build_id
add_testers_to_tester_group
- Adds testers to a tester group of a connected app.
- Arguments:
: The uuidV4 identifier of the connected app.connected_app_id
: The uuidV4 identifier of the tester group.id
: The list of users identified by slugs to be added.user_slugs
update_tester_group
- Updates the given tester group settings.
- Arguments:
: The uuidV4 identifier of the connected app.connected_app_id
: The uuidV4 identifier of the tester group.id
: (Optional) Setting for automatic email notifications.auto_notify
: (Optional) The new name for the tester group.name
list_tester_groups
- Gives back a list of tester groups related to a specific connected app.
- Arguments:
: The uuidV4 identifier of the connected app.connected_app_id
: (Optional) Maximum number of tester groups per page.items_per_page
: (Optional) Page number to return.page
get_tester_group
- Gives back the details of the selected tester group.
- Arguments:
: The uuidV4 identifier of the connected app.connected_app_id
: The uuidV4 identifier of the tester group.id
get_potential_testers
- Gets a list of potential testers who can be added to a specific tester group.
- Arguments:
: The uuidV4 identifier of the connected app.connected_app_id
: The uuidV4 identifier of the tester group.id
: (Optional) Maximum number of potential testers per page.items_per_page
: (Optional) Page number to return.page
: (Optional) Search for testers by email or username.search
API Groups
The Bitrise MCP server organizes tools into API groups that can be enabled or disabled via command-line arguments. The table below shows which API groups each tool belongs to:
Tool | apps | builds | workspaces | webhooks | build-artifacts | group-roles | cache-items | pipelines | account | read-only | release-management |
---|---|---|---|---|---|---|---|---|---|---|---|
list_apps | ✅ | ✅ | |||||||||
register_app | ✅ | ||||||||||
finish_bitrise_app | ✅ | ||||||||||
get_app | ✅ | ✅ | |||||||||
delete_app | ✅ | ||||||||||
update_app | ✅ | ||||||||||
get_bitrise_yml | ✅ | ✅ | |||||||||
update_bitrise_yml | ✅ | ||||||||||
list_branches | ✅ | ✅ | |||||||||
register_ssh_key | ✅ | ||||||||||
register_webhook | ✅ | ||||||||||
list_builds | ✅ | ✅ | |||||||||
trigger_bitrise_build | ✅ | ||||||||||
get_build | ✅ | ✅ | |||||||||
abort_build | ✅ | ||||||||||
get_build_log | ✅ | ✅ | |||||||||
get_build_bitrise_yml | ✅ | ✅ | |||||||||
list_build_workflows | ✅ | ✅ | |||||||||
list_artifacts | ✅ | ✅ | |||||||||
get_artifact | ✅ | ✅ | |||||||||
delete_artifact | ✅ | ||||||||||
update_artifact | ✅ | ||||||||||
list_outgoing_webhooks | ✅ | ✅ | |||||||||
delete_outgoing_webhook | ✅ | ||||||||||
update_outgoing_webhook | ✅ | ||||||||||
create_outgoing_webhook | ✅ | ||||||||||
list_cache_items | ✅ | ✅ | |||||||||
delete_all_cache_items | ✅ | ||||||||||
delete_cache_item | ✅ | ||||||||||
get_cache_item_download_url | ✅ | ✅ | |||||||||
list_pipelines | ✅ | ✅ | |||||||||
get_pipeline | ✅ | ✅ | |||||||||
abort_pipeline | ✅ | ||||||||||
rebuild_pipeline | ✅ | ||||||||||
list_group_roles | ✅ | ✅ | |||||||||
replace_group_roles | ✅ | ||||||||||
list_workspaces | ✅ | ✅ | |||||||||
get_workspace | ✅ | ✅ | |||||||||
get_workspace_groups | ✅ | ✅ | |||||||||
create_workspace_group | ✅ | ||||||||||
get_workspace_members | ✅ | ✅ | |||||||||
invite_member_to_workspace | ✅ | ||||||||||
add_member_to_group | ✅ | ||||||||||
me | ✅ | ✅ | |||||||||
create_connected_app | ✅ | ||||||||||
list_connected_apps | ✅ | ||||||||||
get_connected_app | ✅ | ||||||||||
update_connected_app | ✅ | ||||||||||
list_installable_artifacts | ✅ | ||||||||||
generate_installable_artifact_upload_url | ✅ | ||||||||||
get_installable_artifact_upload_and_processing_status | ✅ | ||||||||||
set_installable_artifact_public_install_page | ✅ | ||||||||||
list_build_distribution_versions | ✅ | ||||||||||
list_build_distribution_version_test_builds | ✅ | ||||||||||
create_tester_group | ✅ | ||||||||||
notify_tester_group | ✅ | ||||||||||
add_testers_to_tester_group | ✅ | ||||||||||
update_tester_group | ✅ | ||||||||||
list_tester_groups | ✅ | ||||||||||
get_tester_group | ✅ | ||||||||||
get_potential_testers | ✅ |
By default, all API groups are enabled. You can specify which groups to enable using the
--enabled-api-groups
command-line argument with a comma-separated list of group names.Related Servers
Adfin
official
The only platform you need to get paid - all payments in one place, invoicing and accounting reconciliations with [Adfin](https://www.adfin.com/).
View Details
APIMatic MCP
official
APIMatic MCP Server is used to validate OpenAPI specifications using [APIMatic](https://www.apimatic.io/). The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.
View Details