Server Configuration
Describes the environment variables required to run the server.
Name | Required | Description | Default |
---|---|---|---|
No arguments |
Schema
Prompts
Interactive templates invoked by user choice
Name | Description |
---|---|
No prompts |
Resources
Contextual data attached and managed by the client
Name | Description |
---|---|
No resources |
Tools
Functions exposed to the LLM to take actions
Name | Description |
---|---|
gitlab_list_projects | List accessible GitLab projects Returns: Array of project summaries with ID, name, description, URL Use when: Browsing projects, finding project IDs Pagination: Yes (default 20 per page) Filtering: By ownership, name search Example response: [{ "id": 12345, "name": "my-project", "path_with_namespace": "group/my-project", "description": "Project description", "web_url": "https://gitlab.com/group/my-project" }] Related tools:
|
gitlab_get_project | Get detailed project information Returns: Complete project metadata, settings, statistics Use when: Need full project details, checking configuration Required: Project ID or path Example response: { "id": 12345, "name": "my-project", "path_with_namespace": "group/my-project", "default_branch": "main", "visibility": "private", "issues_enabled": true, "merge_requests_enabled": true, "wiki_enabled": true, "statistics": { "commit_count": 1024, "repository_size": 15728640 } } Related tools:
|
gitlab_get_current_project | Auto-detect project from git repository Returns: Same as gitlab_get_project Use when: Working in a git repo with GitLab remote No parameters needed: Examines git remotes How it works:
Related tools:
|
gitlab_get_current_user | Get the currently authenticated user's profile Returns comprehensive information about the authenticated user including:
Use cases:
Example response: {'id': 123, 'username': 'johndoe', 'name': 'John Doe', ...} |
gitlab_get_user | Get basic profile information for a specific GitLab user by ID or username. Returns essential user details like name, username, avatar, and public profile info. Use this tool when you have a specific user ID or exact username and need basic profile information. Parameters:
Use either user_id OR username, not both. Examples:
For searching users with partial information, use 'gitlab_search_user' instead. For comprehensive user activity and contributions, use user activity tools instead. |
gitlab_list_groups | List accessible GitLab groups Returns: Array of groups with ID, name, path, description Use when: Browsing groups, finding group IDs, navigating group hierarchy Pagination: Yes (default 50 per page) Filtering: By ownership, name search Example response: [{ "id": 123, "name": "My Group", "path": "my-group", "full_path": "parent-group/my-group", "description": "Group for team projects", "web_url": "https://gitlab.com/groups/my-group", "visibility": "private" }] Related tools:
|
gitlab_get_group | Get detailed group information Returns: Complete group metadata, settings, statistics Use when: Need full group details, checking configuration, counting projects Optional: Include first page of projects with with_projects=true Example response: { "id": 123, "name": "My Group", "full_path": "parent-group/my-group", "description": "Group for team projects", "visibility": "private", "projects_count": 15, "created_at": "2023-01-01T00:00:00Z", "web_url": "https://gitlab.com/groups/my-group" } Related tools:
|
gitlab_list_group_projects | List projects within a group Returns: Array of projects belonging to the specified group Use when: Browsing group projects, finding projects in group hierarchy Pagination: Yes (default 50 per page) Options: Include subgroup projects with include_subgroups=true Example response: [{ "id": 456, "name": "project-one", "path_with_namespace": "my-group/project-one", "description": "First project in group", "web_url": "https://gitlab.com/my-group/project-one" }] Related tools:
|
gitlab_list_issues | List project issues Returns: Array of issues with details Use when: Browsing issues, finding work items Filtering: By state (opened/closed/all) Pagination: Yes (default 20 per page) Example response: [{ "iid": 123, "title": "Fix login bug", "state": "opened", "labels": ["bug", "high-priority"], "assignees": [{"username": "johndoe"}], "web_url": "https://gitlab.com/group/project/-/issues/123" }] Related tools:
|
gitlab_get_issue | Get complete issue details Returns: Full issue data including description, comments count Use when: Need complete issue information Required: Issue IID (e.g., 123 for issue #123) What's IID?: Internal ID - the issue number shown in GitLab Example: For issue #123, use iid=123 Returns: { "iid": 123, "title": "Fix login bug", "description": "Detailed bug description...", "state": "opened", "labels": ["bug"], "milestone": {"title": "v2.0"}, "time_stats": { "time_estimate": 7200, "total_time_spent": 3600 } } Related tools:
|
gitlab_list_merge_requests | List project merge requests Returns: Array of MRs with key information Use when: Reviewing MRs, finding specific MRs Filtering: By state (opened/closed/merged/all) Pagination: Yes (default 20 per page) Example response: [{ "iid": 456, "title": "Add new feature", "state": "opened", "source_branch": "feature/new-feature", "target_branch": "main", "draft": false, "has_conflicts": false, "web_url": "https://gitlab.com/group/project/-/merge_requests/456" }] Related tools:
|
gitlab_get_merge_request | Get complete merge request details Returns: Full MR data with pipelines, approvals, conflicts Use when: Reviewing MR, checking merge status Required: MR IID (e.g., 456 for MR !456) What's IID?: Internal ID - the MR number shown in GitLab Example: For MR !456, use iid=456 Returns: { "iid": 456, "title": "Add new feature", "state": "opened", "merge_status": "can_be_merged", "pipeline": {"status": "success"}, "approvals_required": 2, "approvals_left": 1, "changes_count": "15", "has_conflicts": false, "diff_stats": { "additions": 150, "deletions": 30 } } Related tools:
|
gitlab_get_merge_request_notes | List merge request comments Returns: Array of notes/comments with content Use when: Reading MR discussions, reviews Pagination: Yes (default 10 per page) Sorting: By created_at or updated_at Example response: [{ "id": 789, "body": "Great work! Just one suggestion...", "author": {"username": "reviewer"}, "created_at": "2024-01-15T10:30:00Z", "type": "DiffNote", "resolvable": true, "resolved": false }] Related tools:
|
gitlab_get_file_content | Get file content from repository Returns: Raw file content as string Use when: Reading source code, configs, documentation Optional: Specify branch/tag/commit (defaults to default branch) Example:
Related tools:
|
gitlab_list_repository_tree | Browse repository directory structure Returns: Array of files and directories Use when: Exploring repo structure, listing files Optional: Recursive listing, specific path Example response: [{ "name": "src", "type": "tree", "path": "src", "mode": "040000" }, { "name": "README.md", "type": "blob", "path": "README.md", "mode": "100644" }] Related tools:
|
gitlab_list_snippets | List project snippets Returns: Array of snippets with metadata Use when: Browsing code snippets, finding reusable code Pagination: Yes (default 20 per page) Filtering: By project Example response: [{ "id": 123, "title": "Database Helper", "file_name": "db_helper.py", "description": "Common database operations", "visibility": "private", "author": {"name": "John Doe"}, "created_at": "2023-01-01T00:00:00Z", "web_url": "https://gitlab.com/group/project/snippets/123" }] Related tools:
|
gitlab_get_snippet | Get snippet details and content Returns: Complete snippet information with content Use when: Reading snippet code, reviewing implementations Content: Full text content included Example response: { "id": 123, "title": "API Helper Functions", "file_name": "api_helpers.js", "content": "function fetchData(url) { ... }", "description": "Common API utility functions", "visibility": "internal", "author": {"name": "Jane Smith"}, "created_at": "2023-01-01T00:00:00Z", "web_url": "https://gitlab.com/group/project/snippets/123" } Related tools:
|
gitlab_create_snippet | Create a new code snippet Creates: New snippet with specified content and metadata Use when: Saving reusable code, sharing solutions, documenting examples Required: title, file_name, content Optional: description, visibility Example usage: { "title": "Docker Compose Template", "file_name": "docker-compose.yml", "content": "version: '3.8'\nservices:\n app:\n image: nginx", "description": "Basic Docker Compose setup", "visibility": "internal" } Returns: Created snippet with ID and URLs Related tools:
|
gitlab_update_snippet | Update existing snippet Modifies: Title, content, file name, description, or visibility Use when: Fixing code, updating examples, changing permissions Flexibility: Update any combination of fields Example usage: { "snippet_id": 123, "title": "Updated API Helper", "content": "// Updated with error handling\nfunction fetchData(url) { ... }", "description": "Enhanced with proper error handling" } Returns: Updated snippet information Related tools:
|
gitlab_list_commits | List repository commits Returns: Array of commits with details Use when: Viewing history, finding specific changes Filtering: By date range, file path, branch Pagination: Yes (default 20 per page) Example response: [{ "id": "e83c5163316f89bfbde7d9ab23ca2e25604af290", "short_id": "e83c516", "title": "Fix critical bug", "author_name": "John Doe", "committed_date": "2024-01-15T14:30:00Z", "message": "Fix critical bug\n\nDetailed explanation..." }] Related tools:
|
gitlab_get_commit | Get single commit details Returns: Complete commit information with stats Use when: Examining specific commit Required: Commit SHA (short or full) Example response: { "id": "e83c5163316f89bfbde7d9ab23ca2e25604af290", "title": "Fix critical bug", "message": "Fix critical bug\n\nDetailed explanation...", "author": {"name": "John Doe", "email": "john@example.com"}, "parent_ids": ["ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"], "stats": { "additions": 15, "deletions": 3, "total": 18 } } Related tools:
|
gitlab_get_commit_diff | Get commit diff/changes Returns: Detailed diff of all changed files Use when: Code review, understanding changes Shows: Added/removed lines, file modifications Example response: [{ "old_path": "src/main.py", "new_path": "src/main.py", "diff": "@@ -10,3 +10,5 @@\n def main():\n- print('Hello')\n+ print('Hello, World!')\n+ return 0", "new_file": false, "deleted_file": false }] Related tools:
|
gitlab_search_projects | Search all GitLab projects Returns: Projects matching search query Use when: Finding projects across GitLab Scope: All public projects + your private projects Different from list_projects:
Related tools:
|
gitlab_search_in_project | Search within a project Returns: Results from specified scope Use when: Finding issues, MRs, code, wiki pages Required: Scope (what to search in) Scopes:
Example: Search for "login" in issues Returns matching issues with highlights Related tools:
|
gitlab_list_branches | List repository branches Returns: All branches with latest commit info Use when: Checking branches, finding feature branches Optional: Search filter Example response: [{ "name": "main", "protected": true, "merged": false, "can_push": true, "default": true, "commit": { "id": "abc123...", "short_id": "abc123", "title": "Latest commit" } }] Related tools:
|
gitlab_list_pipelines | List CI/CD pipelines Returns: Pipeline runs with status Use when: Checking CI status, finding failures Filtering: By ref (branch), status Statuses:
Example response: [{ "id": 123456, "status": "success", "ref": "main", "sha": "abc123...", "created_at": "2024-01-15T10:00:00Z", "duration": 300 }] Related tools:
|
gitlab_list_user_events | Get user's activity feed Returns: Array of user activities Use when: Tracking user contributions, audit trail Filtering: By action type, target type, date range Example activities:
Related tools:
|
gitlab_update_merge_request | Update merge request fields Returns: Updated MR object Use when: Modifying MR properties Can update: Title, description, assignees, labels, etc. Examples:
Related tools:
|
gitlab_close_merge_request | Close merge request without merging Returns: Updated MR with closed state Use when: Abandoning changes, deferring work Note: Can be reopened later Related tools:
|
gitlab_merge_merge_request | Merge an approved merge request Returns: Merge result with commit SHA Use when: MR is approved and ready Options: Squash, delete branch, auto-merge Prerequisites:
Related tools:
|
gitlab_add_issue_comment | Add comment to issue Returns: Created comment object Use when: Providing feedback, updates Supports: Markdown, mentions, references Example: "Fixed in PR !456. Please test and confirm." Related tools:
|
gitlab_add_merge_request_comment | Add comment to merge request Returns: Created comment object Use when: Code review feedback, discussions Supports: Markdown, mentions, slash commands Example: "LGTM! 👍 Just one minor suggestion..." Related tools:
|
gitlab_approve_merge_request | Approve a merge request Returns: Approval status Use when: Code review complete, changes approved Note: Cannot approve your own MRs Related tools:
|
gitlab_get_merge_request_approvals | Check MR approval status Returns: Approval requirements and current state Use when: Checking if MR can be merged Shows: Required approvals, who approved Example response: { "approvals_required": 2, "approvals_left": 1, "approved_by": [ {"user": {"username": "johndoe"}} ], "approval_rules": [...] } Related tools:
|
gitlab_list_tags | List repository tags Returns: Tags with commit info Use when: Finding releases, version tags Sorting: By name, date, semver Example response: [{ "name": "v2.0.0", "message": "Version 2.0.0 release", "commit": { "id": "abc123...", "short_id": "abc123", "title": "Prepare 2.0.0 release" }, "release": { "tag_name": "v2.0.0", "description": "Major release with new features..." } }] Related tools:
|
gitlab_create_commit | Create commit with file changes Returns: New commit details Use when: Making changes via API Supports: Multiple file operations in one commit Key features:
Example: Add feature with test { "branch": "feature/new-feature", "commit_message": "Add new feature with tests", "actions": [ {"action": "create", "file_path": "src/feature.py", "content": "..."}, {"action": "create", "file_path": "tests/test_feature.py", "content": "..."} ] } Related tools:
|
gitlab_compare_refs | Compare two git references Returns: Commits and diffs between refs Use when: Reviewing changes before merge Shows: What changed between two points Example: Compare feature branch to main
Related tools:
|
gitlab_list_releases | List project releases Returns: GitLab releases (not just tags) Use when: Finding versions, release notes Includes: Assets, release notes, links Different from tags:
Related tools:
|
gitlab_list_project_members | List project members Returns: Users with access levels Use when: Finding team members, permissions Shows: Direct and inherited members Access levels:
Related tools:
|
gitlab_list_project_hooks | List project webhooks Returns: Configured webhooks Use when: Checking integrations Shows: URLs, events, configuration Example response: [{ "id": 1, "url": "https://example.com/hook", "push_events": true, "issues_events": true, "merge_requests_events": true, "wiki_page_events": false }] Related tools:
|
gitlab_get_merge_request_discussions | Get MR discussion threads Returns: Threaded discussions with replies Use when: Reading code review comments Better than notes: Shows thread structure Example response: [{ "id": "abc123...", "notes": [{ "body": "Should we use a different approach here?", "author": {"username": "reviewer"}, "resolvable": true, "resolved": false }, { "body": "Good point, let me refactor this.", "author": {"username": "author"} }] }] Related tools:
|
gitlab_resolve_discussion | Resolve a discussion thread Returns: Updated discussion Use when: Code review feedback addressed Required: Discussion ID from get_discussions Related tools:
|
gitlab_get_merge_request_changes | Get detailed MR file changes Returns: Complete diffs for all files Use when: Reviewing code changes Shows: Full file diffs with context Similar to commit diff but for entire MR Includes all commits in the MR Related tools:
|
gitlab_rebase_merge_request | Rebase MR onto target branch Returns: Rebase status Use when: MR is behind target branch Fixes: Out-of-date MR status Requirements:
Related tools:
|
gitlab_cherry_pick_commit | Apply commit to another branch Returns: New commit on target branch Use when: Backporting fixes, selective changes Creates: New commit with same changes Example: Backport bug fix to stable
Related tools:
|
gitlab_summarize_merge_request | Generate AI-friendly MR summary Returns: Concise summary for LLM context Use when: Reviewing MRs with AI assistance Includes: Key changes, discussions, status Optimized for:
Related tools:
|
gitlab_summarize_issue | Generate AI-friendly issue summary Returns: Condensed issue information Use when: Processing issues with AI Includes: Title, description, comments, status Smart truncation:
Related tools:
|
gitlab_summarize_pipeline | Summarize CI/CD pipeline for AI Returns: Pipeline status and key findings Use when: Debugging CI failures with AI Focus: Failed jobs, error messages, duration Highlights:
Related tools:
|
gitlab_smart_diff | Get intelligent diff between refs Returns: Structured diff with smart chunking Use when: Need customizable diffs Features: Context control, size limits Advantages over standard diff:
Related tools:
|
gitlab_safe_preview_commit | Preview commit without creating Returns: What would change, validation results Use when: Validating before actual commit Shows: Affected files, potential errors Safety features:
Related tools:
|
gitlab_batch_operations | Execute multiple operations atomically Returns: Results of all operations or rollback Use when: Complex multi-step workflows Feature: Reference previous operation results Key benefits:
Example workflow:
Related tools:
|
gitlab_list_pipeline_jobs | List jobs in a specific pipeline Returns: Array of jobs with status, timing, and artifact information Use when: Debugging pipeline failures, checking job status, finding artifacts Pagination: Yes (default 20 per page) Details: Includes job stage, status, duration, runner info Example response: [{ "id": 12345, "name": "test:unit", "stage": "test", "status": "success", "created_at": "2023-01-01T10:00:00Z", "duration": 120.5, "artifacts": [{"filename": "coverage.xml"}], "web_url": "https://gitlab.com/group/project/-/jobs/12345" }] Related tools:
|
gitlab_download_job_artifact | Get information about job artifacts Returns: Artifact metadata and download information Use when: Checking build outputs, downloading test results, accessing reports Security: Returns artifact info only (no actual file download for security) Content: Lists available artifacts with sizes and expiration Example response: { "job_id": 12345, "job_name": "build:production", "artifacts": [ {"filename": "dist.zip", "size": 1024000}, {"filename": "reports/junit.xml", "size": 5120} ], "artifacts_expire_at": "2023-02-01T00:00:00Z", "download_note": "Use GitLab web interface or CLI for actual downloads" } Related tools:
|
gitlab_list_project_jobs | List all jobs for a project Returns: Array of jobs across all pipelines with filtering options Use when: Monitoring project CI/CD, finding recent failures, browsing job history Pagination: Yes (default 20 per page) Filtering: By job status/scope (failed, success, running, etc.) Example response: [{ "id": 67890, "name": "deploy:staging", "stage": "deploy", "status": "failed", "pipeline": {"id": 123, "ref": "main"}, "commit": {"short_id": "abc1234"}, "created_at": "2023-01-01T15:30:00Z", "user": {"name": "Jane Doe"} }] Related tools:
|
gitlab_search_user | Search for GitLab users based on partial information or search criteria. This tool is useful when you don't have the exact username or ID, but need to find users based on name, email, or other search terms. Use this tool when you need to find users based on partial information or search queries. Examples:
Returns user information including:
For getting specific user details when you have exact ID/username, use 'gitlab_get_user' instead. Parameters:
Example: Find users named "John"
|
gitlab_get_user_details | Get comprehensive activity summary and contributions for a specific user. Returns detailed information about a user's GitLab activity including recent contributions, project involvement, and activity statistics. Use this tool when you need detailed insights into a user's GitLab activity and contributions. Examples:
For basic user profile info, use 'gitlab_get_user' instead. For finding users by search, use 'gitlab_search_user' instead. Returns extended user information:
Use cases:
Parameters:
Example: Get user details by username
|
gitlab_get_my_profile | Get the current authenticated user's complete profile Retrieve your own comprehensive profile information including private settings and detailed statistics not available via public user APIs. Returns complete profile including:
Use cases:
No parameters required - uses authentication token. Example usage:
|
gitlab_get_user_contributions_summary | Summarize user's recent contributions across issues, MRs, and commits Get a comprehensive overview of a user's activity and contributions over a specified time period, aggregating data from multiple sources. Returns contribution summary including:
Use cases:
Parameters:
Example: Get user contributions for last month
|
gitlab_get_user_activity_feed | Retrieve user's complete activity/events timeline Get chronological feed of all user activities including commits, issues, MRs, comments, and other interactions across all accessible projects. Returns activity timeline with:
Use cases:
Parameters:
Example: Get recent issue activities
|
gitlab_get_user_open_mrs | Get all open merge requests authored by a user Retrieve all currently open MRs created by the specified user across all accessible projects, with priority and urgency indicators. Returns MR information including:
Use cases:
Parameters:
Example: Get user's open MRs sorted by update time
|
gitlab_get_user_review_requests | Get MRs where user is assigned as reviewer with pending action Find all merge requests where the specified user has been assigned as a reviewer and their review/approval is still pending. Returns pending review requests with:
Use cases:
Parameters:
Example: Get high priority review requests
|
gitlab_get_user_open_issues | List open issues assigned to or created by a specific user. Use this tool to see what issues a user is currently working on or responsible for. Retrieve all currently open issues assigned to the specified user across all accessible projects, with intelligent priority sorting. Returns prioritized issue list with:
Use cases:
Parameters:
Example: Get overdue issues for user
|
gitlab_get_user_reported_issues | List all issues created/reported by a specific user (including closed ones). Shows issues where the user is the original reporter/creator. Use this tool to see what problems or requests a user has reported. Examples:
Find all issues originally created by the specified user across all accessible projects, with current status and resolution tracking. For issues currently assigned to a user, use 'gitlab_get_user_open_issues' instead. Returns reported issues with:
Use cases:
Parameters:
Example: Get recently reported issues
|
gitlab_get_user_resolved_issues | Get issues closed/resolved by a user Find all issues that were closed or resolved by the specified user, showing their problem-solving contributions and impact. Returns resolved issues with:
Use cases:
Parameters:
Example: Get issues resolved this quarter
|
gitlab_get_user_commits | List all commits authored by a specific user across projects or within a project. Shows commits where the user is the author (wrote the code). Use this tool to see what code changes a user has authored. Examples:
For merge commits specifically, use 'gitlab_get_user_merge_commits' instead. Retrieve all commits authored by the specified user with flexible filtering by time period, branch, or project scope. Returns commit information with:
Use cases:
Parameters:
Example: Get user commits from main branch last month
|
gitlab_get_user_merge_commits | List merge commits where a specific user performed the merge. Shows commits where the user merged branches (not necessarily the code author). Use this tool to see what merges a user has performed, useful for release management. Examples:
For all commits authored by user, use 'gitlab_get_user_commits' instead. Find all commits that originated from merge requests created by the specified user, tracking their integrated contributions. Returns merge-related commits with:
Use cases:
Parameters:
Example: Get merged contributions to main branch
|
gitlab_get_user_code_changes_summary | Get lines added/removed and files changed by user over period Generate comprehensive statistics about a user's code contributions including quantitative metrics and impact analysis. Returns code change summary with:
Use cases:
Parameters:
Example: Get quarterly code change summary
|
gitlab_get_user_snippets | List all personal and project snippets created by a user Find all code snippets created by the specified user across personal and project scopes, with content and metadata. Returns snippet information with:
Use cases:
Parameters:
Example: Get user's public snippets
|
gitlab_get_user_issue_comments | Get all comments authored by a user on issues Retrieve all issue comments and notes created by the specified user across all accessible projects and time periods. Returns comment information with:
Use cases:
Parameters:
Example: Get recent issue comments
|
gitlab_get_user_mr_comments | Get all comments authored by a user on merge requests Find all merge request comments and review feedback provided by the specified user, including code review discussions. Returns MR comment information with:
Use cases:
Parameters:
Example: Get code review comments from last month
|
gitlab_get_user_discussion_threads | Get all discussion threads started by a user Find all discussion threads initiated by the specified user across issues, merge requests, and other collaborative contexts. Returns discussion thread information with:
Use cases:
Parameters:
Example: Get active discussion threads
|
gitlab_get_user_resolved_threads | Get threads resolved by a user in reviews Find all discussion threads that were resolved by the specified user during code reviews and collaborative processes. Returns resolved thread information with:
Use cases:
Parameters:
Example: Get threads resolved in code reviews
|