- Home
- MCP servers
- GitLab Jira
GitLab Jira
- typescript
9
GitHub Stars
typescript
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"hainanzhao-mcp-gitlab-jira": {
"command": "docker",
"args": [
"exec",
"-i",
"mcp-gitlab-jira-container",
"npm",
"start"
],
"env": {
"GITLAB_URL": "YOUR_GITLAB_URL",
"ATLASSIAN_API_TOKEN": "YOUR_API_TOKEN",
"ATLASSIAN_SITE_NAME": "YOUR_SITE_NAME",
"GITLAB_ACCESS_TOKEN": "YOUR_GITLAB_TOKEN",
"ATLASSIAN_USER_EMAIL": "YOUR_EMAIL"
}
}
}
}This MCP server enables AI agents to interact with GitLab and Jira instances, letting you list projects and issues, manage merge requests, pipelines, branches, issues, and Jira tickets, and perform project and ticket operations through a single, convenient interface.
How to use
You run the MCP server and connect your MCP client, such as gemini-cli, to gain access to GitLab and Jira capabilities. Start the server, then configure your MCP client with the server’s command and environment settings. Use the client’s tool calls to fetch data, create or update items, and automate workflows across GitLab and Jira without leaving your chat or automation session.
How to install
Prerequisites: you need Node.js 18 or newer, and access tokens for GitLab and Jira.
Install the MCP package globally.
npm i -g mcp-gitlab-jira
Extra setup and configuration
Set up environment variables for GitLab and Jira access.
# GitLab
export GITLAB_URL="https://your-gitlab-instance.com"
export GITLAB_ACCESS_TOKEN="your-personal-access-token"
# Jira
export ATLASSIAN_SITE_NAME="your-atlassian-site-name"
export ATLASSIAN_USER_EMAIL="your-email@example.com"
export ATLASSIAN_API_TOKEN="your-jira-api-token"
Running with Docker
You can run the MCP server in a Docker container. Use the following example to start a persistent container and pass the required environment variables.
docker run -d --name mcp-gitlab-jira-container \
-e GITLAB_URL="https://your-gitlab-instance.com" \
-e GITLAB_ACCESS_TOKEN="your-personal-access-token" \
-e ATLASSIAN_SITE_NAME="your-atlassian-site-name" \
-e ATLASSIAN_USER_EMAIL="your-email@example.com" \
-e ATLASSIAN_API_TOKEN="your-jira-api-token" \
hainanzhao/mcp-gitlab-jira:latest
Using with MCP clients via Docker (config examples)
If you prefer to run a persistent container and control the MCP process from your client, you can configure a session that executes the start command inside the running container.
{
"mcpServers": {
"gitlab_jira_mcp": {
"command": "docker",
"args": ["exec", "-i", "mcp-gitlab-jira-container", "npm", "start"],
"env": {}
}
}
}
Alternate one-time container run (session per use)
If you want to run a fresh container for each MCP session, configure as shown.
{
"mcpServers": {
"gitlab_jira_mcp": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "GITLAB_URL=https://your-gitlab-instance.com",
"-e", "GITLAB_ACCESS_TOKEN=your-personal-access-token",
"-e", "ATLASSIAN_SITE_NAME=your-atlassian-site-name",
"-e", "ATLASSIAN_USER_EMAIL=your-email@example.com",
"-e", "ATLASSIAN_API_TOKEN=your-jira-api-token",
"hainanzhao/mcp-gitlab-jira:latest"
],
"env": {}
}
}
}
Available tools
gitlab_get_merge_request_details
Fetches detailed information about a GitLab Merge Request, including file diffs.
gitlab_get_file_content
Fetches the content of a specific file at a given SHA in a GitLab project.
gitlab_add_comment_to_merge_request
Adds a comment to a GitLab Merge Request, including inline comments and replies.
gitlab_list_merge_requests
Lists merge requests for a given GitLab project.
gitlab_assign_reviewers_to_merge_request
Assigns reviewers to a GitLab Merge Request.
gitlab_list_project_members
Lists all members of a GitLab project.
gitlab_list_project_members_by_project_name
Lists all members of a GitLab project by project name.
gitlab_list_projects_by_name
Filters GitLab projects by name using fuzzy matching.
gitlab_list_all_projects
Lists all accessible GitLab projects.
gitlab_list_all_releases
Fetches releases for a GitLab project.
gitlab_list_releases_since_version
Filters releases for a GitLab project since a specific version.
gitlab_get_user_id_by_username
Retrieves a GitLab user ID by username.
gitlab_get_user_activities
Fetches activities for a GitLab user.
gitlab_get_project_pipelines
Gets pipelines for a GitLab project.
gitlab_get_merge_request_pipelines
Gets pipelines for a specific Merge Request.
gitlab_get_pipeline_details
Gets detailed information about a pipeline.
gitlab_get_pipeline_jobs
Gets jobs for a specific pipeline.
gitlab_get_job_logs
Gets logs for a specific job.
gitlab_trigger_pipeline
Triggers a new pipeline for a specific branch.
gitlab_retry_pipeline
Retries a failed pipeline.
gitlab_cancel_pipeline
Cancels a running pipeline.
gitlab_list_branches
Lists all branches in a GitLab project.
gitlab_create_branch
Creates a new branch in a GitLab project.
gitlab_delete_branch
Deletes a branch from a GitLab project.
gitlab_get_branch_details
Gets details about a specific branch.
gitlab_list_project_issues
Lists issues in a GitLab project.
gitlab_get_issue_details
Gets detailed information about a GitLab issue.
gitlab_create_issue
Creates a new issue in a GitLab project.
gitlab_update_issue
Updates an existing GitLab issue.
gitlab_close_issue
Closes a GitLab issue.
gitlab_add_comment_to_issue
Adds a comment to a GitLab issue.
gitlab_get_issue_comments
Gets comments for a GitLab issue.
jira_get_ticket_details
Fetches detailed Jira ticket information with flattened fields.
jira_get_ticket_comments
Fetches comments for a Jira ticket.
jira_add_comment_to_ticket
Adds a comment to a Jira ticket.
jira_search_tickets_by_jql
Searches Jira tickets using a JQL string.
jira_create_ticket
Creates a new Jira ticket.
jira_get_available_transitions
Fetches available transitions for a Jira ticket.
jira_update_ticket
Updates a Jira ticket summary, description, and labels.
jira_update_custom_fields
Updates custom fields on a Jira ticket.
jira_update_ticket_priority
Updates the Jira ticket priority with fuzzy matching for allowed values.
jira_update_ticket_sprint
Updates the Jira ticket sprint with fuzzy matching for active/future sprints.
jira_transition_ticket
Transitions a Jira ticket to a new status.
jira_get_all_fields
Fetches all fields from Jira.
jira_get_all_projects
Gets all accessible Jira projects.
jira_get_project_details
Gets detailed information about a Jira project.
jira_get_project_components
Gets components for a Jira project.
jira_get_project_versions
Gets versions for a Jira project.