GitLab for AI agents
GitLab is a DevOps platform combining Git repository hosting with issues, merge requests, and CI/CD pipelines in one product. Engineering teams pull it into internal tools and scripts rather than building the same capability themselves. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.
What agents do in GitLab.
Create a merge request
Push a branch and open a merge request with a description, leaving approval and merge to a reviewer.
Comment on an issue
Add a note to a project issue to log progress or ask a clarifying question.
Cancel a running pipeline
Cancel a CI pipeline that is running against the wrong branch, after confirming with the requester.
123 GitLab actions, graded by risk.
Every GitLab action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.
read
56Look things up. Allowed by default.
- gitlab.get_fileGet Repository File
- gitlab.get_userGet User
- gitlab.get_groupGet Group Details
- gitlab.get_issueGet Issue
- gitlab.get_labelGet Project Label
- gitlab.get_usersGet Users
- gitlab.get_groupsGet Groups
- gitlab.get_projectGet Project
- gitlab.get_webhookGet Webhook
- gitlab.list_labelsList Labels
- gitlab.get_projectsGet Projects
- gitlab.get_raw_fileGet Raw File
- gitlab.get_job_traceGet Job Trace
- gitlab.get_milestoneGet Milestone
- gitlab.list_webhooksList Webhooks
- gitlab.get_issue_noteGet Issue Note
write
36Create and change things. Allow, or ask the user first.
- gitlab.create_fileCreate Repository File
- gitlab.create_groupCreate GitLab Group
- gitlab.create_labelCreate Label
- gitlab.update_groupUpdate GitLab Group
- gitlab.update_labelUpdate Label
- gitlab.create_commitCreate Commit
- gitlab.add_spent_timeAdd Spent Time
- gitlab.create_projectCreate Project
- gitlab.create_webhookCreate Project Webhook
- gitlab.update_webhookUpdate Webhook
- gitlab.create_pipelineCreate Pipeline
- gitlab.create_milestoneCreate Milestone
- gitlab.update_milestoneUpdate Milestone
- gitlab.create_issue_noteCreate Issue Note
- gitlab.update_issue_noteUpdate Issue Note
- gitlab.create_project_issueCreate Project Issue
destructive
31Delete, cancel or archive. Ask first, or deny outright.
- gitlab.cancel_jobCancel Job
- gitlab.delete_groupDelete Group
- gitlab.delete_labelDelete Label
- gitlab.delete_projectDelete Project
- gitlab.delete_webhookDelete Webhook
- gitlab.archive_projectArchive Project
- gitlab.cancel_pipelineCancel Pipeline
- gitlab.delete_pipelineDelete Pipeline
- gitlab.delete_milestoneDelete Milestone
- gitlab.delete_issue_noteDelete Issue Note
- gitlab.delete_merge_requestDelete Merge Request
- gitlab.delete_repository_fileDelete Repository File
- gitlab.delete_repository_branchDelete Repository Branch
- gitlab.reset_spent_timeReset Spent Time
- gitlab.list_merge_requestsList Merge Requests
- gitlab.merge_merge_requestMerge Merge Request
GitLab in three steps.
- 01Your users connect GitLabThey sign in to GitLab on Arc0 Connect, under your brand, and approve the access you ask for.
- 02You set the rulesReads run, writes like “create Repository File” can wait for the user, and “delete Group” can be denied outright.
- 03Any agent can actYour agent calls GitLab through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
await arc0.policies.set('gitlab', { read: 'allow', write: 'ask', // create_file destructive: 'deny', // delete_group }) # Claude Code: the same connection, one URL $ claude mcp add --transport http arc0 \ https://mcp.arc0.ai/u/u_8f2
How GitLab connects.
Users sign in to GitLab on Arc0 Connect and approve the scopes you request. Build with Arc0’s GitLab OAuth app, or bring your own so the GitLab consent screen names you. Tokens refresh automatically, and you can export them whenever you want.
The same GitLab connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →
- AUTH
- OAuth 2.0
- CREDENTIALS
- Per-tenant encrypted vault
- MODEL SEES
- Results only, never credentials
- AUDIT LOG
- Every call, on every plan
Use GitLab from any agent.
GitLab and Arc0, answered.
Can I use GitLab with Claude, ChatGPT or Cursor?
Yes. Connect GitLab to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the GitLab actions you allow.
How do users connect GitLab?
Users sign in to GitLab on Arc0 Connect and approve the scopes you request. Build with Arc0’s GitLab OAuth app, or bring your own so the GitLab consent screen names you. Tokens refresh automatically, and you can export them whenever you want.
Which GitLab actions can my agent take?
123 in total: 56 read, 36 write and 31 destructive, such as “create Repository File”. Your policies decide which of them each agent may call.
Can I stop my agent from deleting things in GitLab?
Yes. Actions like “delete Group” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.
Can my own backend call GitLab too?
Yes. The same GitLab connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.
Plug GitLab into your agent.
Your users connect GitLab once, under your brand. Your agent gets 123 actions behind your policies, with every call on the record.
Free to build · MCP + REST · Audit log on every plan