JSPM

  • Created
  • Published
  • Downloads 89017
  • Score
    100M100P100Q181035F
  • License MIT

MCP server for using the GitLab API

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@zereight/mcp-gitlab) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    Better GitLab MCP Server

    @zereight/mcp-gitlab

    smithery badge

    GitLab MCP(Model Context Protocol) Server. Includes bug fixes and improvements over the original GitLab MCP server.

    gitlab mcp MCP server

    Usage

    Using with Claude App, Cline, Roo Code

    When using with the Claude App, you need to set up your API key and URLs directly.

    {
      "mcpServers": {
        "GitLab communication server": {
          "command": "npx",
          "args": ["-y", "@zereight/mcp-gitlab"],
          "env": {
            "GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
            "GITLAB_API_URL": "your_gitlab_api_url"
          }
        }
      }
    }

    Using with Cursor

    When using with Cursor, you can set up environment variables and run the server as follows:

    env GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token GITLAB_API_URL=your_gitlab_api_url npx @zereight/mcp-gitlab
    • GITLAB_PERSONAL_ACCESS_TOKEN: Your GitLab personal access token.
    • GITLAB_API_URL: Your GitLab API URL. (Default: https://gitlab.com/api/v4)

    Tools Reference 🛠️

    Tool Description Parameters Returns
    create_or_update_file Create or update a single file in a GitLab project 📝 project_id (string): Project ID or path
    file_path (string): Path to create/update
    content (string): File content
    commit_message (string): Commit message
    branch (string): Target branch
    previous_path (optional): Previous path when renaming
    File content and commit details
    push_files Push multiple files in a single commit 📤 (internally creates a tree and commit) project_id (string): Project ID or path
    branch (string): Target branch
    files (array): Array of files with file_path and content
    commit_message (string): Commit message
    Updated branch reference
    search_repositories Search for GitLab projects 🔍 search (string): Search query
    page (optional): Page number (default: 1)
    per_page (optional): Results per page (default: 20)
    Project search results
    create_repository Create a new GitLab project ➕ name (string): Project name
    description (optional): Project description
    visibility (optional): Visibility level
    initialize_with_readme (optional): Initialize with README
    Created project details
    get_file_contents Get the contents of a file or directory 📂 project_id (string): Project ID or path
    file_path (string): Path to file/directory
    ref (optional): Branch, tag, or commit SHA
    File/directory content
    create_issue Create a new issue 🐛 project_id (string): Project ID or path
    title (string): Issue title
    description (string): Issue description
    assignee_ids (optional): Array of assignee IDs
    milestone_id (optional): Milestone ID
    labels (optional): Array of labels
    Created issue details
    list_issues List issues in a project with comprehensive filtering options 📋 project_id (string): Project ID or path
    • Optional filters: assignee_id, assignee_username, author_id, author_username, confidential, created_after/before, due_date, label_name, milestone, scope, search, state, updated_after/before
    • Pagination: page, per_page
    Array of issues
    get_issue Get details of a specific issue project_id (string): Project ID or path
    issue_iid (number): Issue IID
    Issue details
    update_issue Update an existing issue ✏️ project_id (string): Project ID or path
    issue_iid (number): Issue IID
    • Editable fields: title, description, assignee_ids, labels, milestone_id, state_event (close/reopen), confidential, discussion_locked, due_date, weight
    Updated issue details
    delete_issue Delete an issue project_id (string): Project ID or path
    issue_iid (number): Issue IID
    Success message
    list_issue_links List all links for a specific issue project_id (string): Project ID or path
    issue_iid (number): Issue IID
    Array of linked issues
    get_issue_link Get details of a specific issue link project_id (string): Project ID or path
    issue_iid (number): Issue IID
    issue_link_id (number): Link ID
    Issue link details
    create_issue_link Create a link between two issues project_id (string): Project ID or path
    issue_iid (number): Source issue IID
    target_project_id (string): Target project ID
    target_issue_iid (number): Target issue IID
    link_type (optional): Relationship type
    Created link details
    delete_issue_link Delete an issue link project_id (string): Project ID or path
    issue_iid (number): Issue IID
    issue_link_id (number): Link ID
    Success message
    create_merge_request Create a new merge request 🚀 project_id (string): Project ID or path
    title (string): MR title
    description (string): MR description
    source_branch (string): Branch with changes
    target_branch (string): Branch to merge into
    allow_collaboration (optional): Allow collaborators
    draft (optional): Create as draft
    Created merge request details
    fork_repository Fork a project 🍴 project_id (string): Project ID or path to fork
    namespace (optional): Namespace to fork into
    Forked project details
    create_branch Create a new branch 🌿 project_id (string): Project ID or path
    branch (string): New branch name
    ref (optional): Reference to create from
    Created branch reference
    get_merge_request Get details of a merge request ℹ️ project_id (string): Project ID or path
    merge_request_iid (number): MR IID
    Merge request details
    get_merge_request_diffs Get changes of a merge request project_id (string): Project ID or path
    merge_request_iid (number): MR IID
    view (optional): Diff view type
    Array of merge request diffs
    update_merge_request Update a merge request 🔄 project_id (string): Project ID or path
    merge_request_iid (number): MR IID
    • Editable fields: title, description, target_branch, assignee_ids, labels, state_event (close/reopen), remove_source_branch, squash, draft
    Updated merge request details
    create_note Create a comment on an issue or MR 💬 project_id (string): Project ID or path
    noteable_type (string): "issue" or "merge_request"
    noteable_iid (number): IID of the issue or MR
    body (string): Comment content
    Created note details
    list_namespaces List available namespaces search (optional): Search term
    page (optional): Page number
    per_page (optional): Results per page
    owned (optional): Filter by ownership
    Array of namespaces
    get_namespace Get details of a namespace namespace_id (string): Namespace ID or path Namespace details
    verify_namespace Check if a namespace exists path (string): Namespace path to verify Verification result
    get_project Get details of a specific project project_id (string): Project ID or path Project details
    list_projects List accessible projects with rich filtering options 📊 • Search/filtering: search, owned, membership, archived, visibility
    • Features filtering: with_issues_enabled, with_merge_requests_enabled
    • Sorting: order_by, sort
    • Access control: min_access_level
    • Pagination: page, per_page, simple
    Array of projects

    Environment Variable Configuration

    Before running the server, you need to set the following environment variables:

    GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token
    GITLAB_API_URL=your_gitlab_api_url  # Default: https://gitlab.com/api/v4

    License

    MIT License