Kiwi

Kiwi for GitLab

Have the agent on a Kiwi step open a GitLab merge request for its change and follow its pipeline, through GitLab's MCP server.

  • Your agent works in GitLab through its own connection. Kiwi does not call GitLab and never holds its credentials.
  • A workflow skill can list GitLab among the tools it requires. When you supply your agent's available tools to a skill check and GitLab is not among them, the check reports SK15-UNSUPPORTED-TOOL.
  • A project Admin can add links to GitLab, with notes, under Connections and bind them to the steps that use them. The agent reads them with list_connections.
  • The agent can report the tools and plugins it ran with, including its GitLab connection, with report_configuration.
  • The agent submits links to its work in GitLab as the step's outputs. People review them, and sign-off stays with the people your workflow names.

What your agent can do in GitLab

  • Read a project's repository tree and files, list its branches and create a branch for the change.
  • Commit changes to a branch, then open or update a merge request.
  • Read a merge request's diffs, commits, discussions and approvals, and comment on the merge request or an issue.
  • List the pipelines of a merge request to see whether its CI jobs pass.
  • Create an issue for follow-up work found during the step, or read an existing issue.

Set up

  1. Connect your agent to Kiwi

    Add Kiwi's hosted MCP server, https://kiwiflow.io/mcp, to your coding agent.

  2. Connect your agent to GitLab

    Add the GitLab MCP server to your agent with this URL. The credentials stay with your agent.

    https://gitlab.com/api/v4/mcp
  3. Example skill

    Publish instructions like these as a workflow skill that lists GitLab among its required tools.

    Read the assignment for the GitLab project, target branch and issue number.
    Create a branch, commit the change and open a merge request for the issue.
    Check the merge request's pipeline and include its status in the outputs.
    Submit the merge request URL with submit_result.
    Do not merge it; the reviewer named in the assignment decides.
    If the pipeline cannot start, call report_blocker with the pipeline URL.