Skip to main content
Glama

Bitrise MCP Server

Official
by bitrise-io
belt.go3.36 kB
package tool import ( "slices" "github.com/bitrise-io/bitrise-mcp/v2/internal/bitrise" "github.com/bitrise-io/bitrise-mcp/v2/internal/tool/apps" "github.com/bitrise-io/bitrise-mcp/v2/internal/tool/artifacts" "github.com/bitrise-io/bitrise-mcp/v2/internal/tool/builds" "github.com/bitrise-io/bitrise-mcp/v2/internal/tool/cache" "github.com/bitrise-io/bitrise-mcp/v2/internal/tool/grouproles" "github.com/bitrise-io/bitrise-mcp/v2/internal/tool/pipelines" "github.com/bitrise-io/bitrise-mcp/v2/internal/tool/releasemanagement" "github.com/bitrise-io/bitrise-mcp/v2/internal/tool/user" "github.com/bitrise-io/bitrise-mcp/v2/internal/tool/webhooks" "github.com/bitrise-io/bitrise-mcp/v2/internal/tool/workspaces" "github.com/mark3labs/mcp-go/server" ) type Belt struct { tools map[string]bitrise.Tool } func NewBelt() *Belt { var toolList = []bitrise.Tool{ // User user.Me, // Apps apps.List, apps.Register, apps.Finish, apps.Get, apps.Delete, apps.Update, apps.GetBitriseYML, apps.UpdateBitriseYML, apps.ListBranches, apps.RegisterSSHKey, apps.RegisterWebhook, // Builds builds.Trigger, builds.List, builds.Get, builds.GetSteps, builds.Abort, builds.GetBuildLog, builds.GetBuildBitriseYML, builds.ListBuildWorkflows, // Artifacts artifacts.List, artifacts.Get, artifacts.Delete, artifacts.Update, // Workspaces workspaces.List, workspaces.Get, workspaces.GetWorkspaceGroups, workspaces.CreateWorkspaceGroup, workspaces.GetWorkspaceMembers, workspaces.InviteMemberToWorkspace, workspaces.AddMemberToGroup, // Webhooks webhooks.ListOutgoing, webhooks.DeleteOutgoing, webhooks.CreateOutgoing, webhooks.UpdateOutgoing, // Cache cache.ListItems, cache.DeleteAllItems, cache.DeleteItem, cache.GetItemDownloadURL, // Pipelines pipelines.List, pipelines.Get, pipelines.Abort, pipelines.Rebuild, // Group Roles grouproles.List, grouproles.Replace, // Release Management releasemanagement.CreateConnectedApp, releasemanagement.UpdateConnectedApp, releasemanagement.ListConnectedApps, releasemanagement.GetConnectedApp, releasemanagement.ListInstallableArtifacts, releasemanagement.GenerateInstallableArtifactUploadURL, releasemanagement.GetInstallableArtifactUploadAndProcessingStatus, releasemanagement.SetInstallableArtifactPublicInstallPage, releasemanagement.ListBuildDistributionVersions, releasemanagement.ListBuildDistributionVersionTestBuilds, releasemanagement.CreateTesterGroup, releasemanagement.NotifyTesterGroup, releasemanagement.AddTestersToTesterGroup, releasemanagement.UpdateTesterGroup, releasemanagement.ListTesterGroups, releasemanagement.GetTesterGroup, releasemanagement.GetPotentialTesters, releasemanagement.GetTesters, } belt := &Belt{tools: make(map[string]bitrise.Tool)} for _, tool := range toolList { belt.tools[tool.Definition.Name] = tool } return belt } func (b *Belt) RegisterAll(server *server.MCPServer) { for _, tool := range b.tools { server.AddTool(tool.Definition, tool.Handler) } } func (b *Belt) ToolEnabled(name string, enabledGroups []string) bool { tool, ok := b.tools[name] if !ok { return false } for _, enabledGroup := range enabledGroups { if slices.Contains(tool.APIGroups, enabledGroup) { return true } } return false }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bitrise-io/bitrise-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server