Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
Ray0907 avatar

Git Mcp Server

  • Updated December 8, 2025
  • Ray0907/git-mcp-server

git-mcp-server is a MCP server that exposes GitHub and GitLab repository operations to your coding agent over MCP.

About

The Ray0907 git-mcp-server is an MCP integration that connects Claude Code, Cursor, and similar agents to GitHub or GitLab using a personal access token. developers use it when they want the agent to list repositories, inspect issues, or perform permitted write actions without copying URLs and clicking through the web UI. Configuration centers on GIT_PROVIDER (github or gitlab), required GIT_TOKEN, optional API base URL for self-hosted instances, and read-only mode when you only want safe lookups. It fits workflows where one person owns the repo, CI, and releases: the agent can ground answers in live remote state instead of stale context. Complexity is moderate because you must create tokens with the right scopes and decide whether writes are acceptable. It is a protocol bridge to Git hosts, not a replacement for local git CLI or full CI orchestration.

  • Single MCP server for both GitHub and GitLab via GIT_PROVIDER
  • Personal access token auth with optional self-hosted GIT_API_URL
  • GIT_READ_ONLY mode to block write operations for safer audits
  • stdio transport via npm package @raytien/git-mcp-server v0.2.3

Git Mcp Server by the numbers

  • Data as of Jul 7, 2026 (Skillselion catalog sync)
terminal
claude mcp add --env GIT_PROVIDER=YOUR_GIT_PROVIDER --env GIT_TOKEN=YOUR_GIT_TOKEN --env GIT_API_URL=YOUR_GIT_API_URL --env GIT_READ_ONLY=YOUR_GIT_READ_ONLY git-mcp-server -- npx -y @raytien/git-mcp-server

Add your badge

Show developers this MCP server is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Package@raytien/git-mcp-server
TransportSTDIO
AuthRequired
Last updatedDecember 8, 2025
RepositoryRay0907/git-mcp-server

What it does

Let your coding agent open issues, read repos, and manage GitHub or GitLab from chat without leaving the editor.

Who is it for?

Best when you live in GitHub or GitLab and want the agent to triage issues, check PRs, or draft release notes from live API data.

Skip if: Skip if you need deep local git graph operations only on disk without remote API access, or and refuse to grant PAT scopes to an agent.

What you get

After you register the server with GIT_TOKEN and provider settings, your agent can query and optionally mutate repos and issues through standardized MCP tools.

  • Agent-callable tools against your chosen Git provider
  • Optional read-only guardrail for exploration and audits
  • Support for self-hosted GitLab or custom API URLs

By the numbers

  • Package version 0.2.3 on npm as @raytien/git-mcp-server
  • Supports two providers: github and gitlab via GIT_PROVIDER
  • Four documented environment variables including secret GIT_TOKEN
README.md

Git MCP Server

A clean, modular Git MCP server supporting both GitHub and GitLab.

Quick Start

Claude Desktop Configuration

Add to your claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

GitHub
{
  "mcpServers": {
    "git": {
      "command": "npx",
      "args": ["-y", "@raytien/git-mcp-server"],
      "env": {
        "GIT_PROVIDER": "github",
        "GIT_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}
GitHub Enterprise
{
  "mcpServers": {
    "git": {
      "command": "npx",
      "args": ["-y", "@raytien/git-mcp-server"],
      "env": {
        "GIT_PROVIDER": "github",
        "GIT_API_URL": "https://github.your-company.com/api/v3",
        "GIT_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}
GitLab.com (SaaS)
{
  "mcpServers": {
    "git": {
      "command": "npx",
      "args": ["-y", "@raytien/git-mcp-server"],
      "env": {
        "GIT_PROVIDER": "gitlab",
        "GIT_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}
Self-Hosted GitLab
{
  "mcpServers": {
    "git": {
      "command": "npx",
      "args": ["-y", "@raytien/git-mcp-server"],
      "env": {
        "GIT_PROVIDER": "gitlab",
        "GIT_API_URL": "https://gitlab.your-company.com/api/v4",
        "GIT_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}
Read-Only Mode
{
  "mcpServers": {
    "git": {
      "command": "npx",
      "args": ["-y", "@raytien/git-mcp-server"],
      "env": {
        "GIT_PROVIDER": "github",
        "GIT_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx",
        "GIT_READ_ONLY": "true"
      }
    }
  }
}

Get Your Token

GitHub
  1. Go to GitHub > Settings > Developer settings > Personal access tokens > Tokens (classic)
  2. Generate new token with scopes: repo, read:org, workflow
  3. Copy the token (starts with ghp_)
GitLab
  1. Go to GitLab > Settings > Access Tokens
  2. Create a new token with scopes: api, read_api, read_repository, write_repository
  3. Copy the token (starts with glpat-)

Available Tools

Repository

Tool Description
get_file_contents Read file content from repository
get_repository_tree List directory structure
push_files Push file changes in a single commit
create_branch Create a new branch
list_branches List repository branches
list_commits List commit history
search_code Search for code in repository

Issues

Tool Description
get_issue Get a single issue
list_issues List issues
create_issue Create a new issue
update_issue Update an issue

Pull/Merge Requests

Tool Description
get_pull_request Get a merge request
list_pull_requests List merge requests
create_pull_request Create a merge request
get_pull_request_diffs Get merge request changes
merge_pull_request Merge a merge request

CI/CD (Pipelines / Workflow Runs)

Tool Description
get_pipeline Get pipeline/workflow run status
list_pipelines List pipelines/workflow runs
list_pipeline_jobs List pipeline jobs/workflow jobs
get_job_log Get job log output

Note: GitHub Actions workflow runs map to GitLab pipelines. The same tools work for both platforms.

Comments

Tool Description
create_comment Add comment to issue/MR
list_comments List comments

Users

Tool Description
get_me Get current authenticated user

Configuration

Environment Variable Required Default Description
GIT_PROVIDER No gitlab Provider type: gitlab or github
GIT_TOKEN Yes - Personal Access Token
GIT_API_URL No Provider default API URL (auto-detected from provider)
GIT_AUTH_TYPE No bearer Auth type: bearer or private-token
GIT_READ_ONLY No false Disable write operations
LOG_LEVEL No info Log level: debug, info, warn, error

Architecture

src/
├── index.ts              # Entry point
├── server.ts             # MCP server (provider-agnostic)
├── config.ts             # Configuration (multi-provider)
├── providers/            # Platform abstraction
│   ├── interface.ts      # GitProvider interface
│   ├── types.ts          # Platform-agnostic types
│   ├── config.ts         # Provider configuration
│   ├── factory.ts        # Provider Factory (creates GitLab/GitHub)
│   ├── gitlab/           # GitLab implementation
│   └── github/           # GitHub implementation
├── tools/                # Tool definitions
│   ├── define.ts         # defineTool helper
│   ├── registry.ts       # Tool registry
│   ├── repository/       # Repository tools
│   ├── issues/           # Issue tools
│   ├── merge-requests/   # PR/MR tools
│   ├── pipelines/        # CI/CD tools
│   ├── notes/            # Comment tools
│   └── users/            # User tools
├── gitlab/               # GitLab API client
│   ├── client.ts         # HTTP client
│   └── types.ts          # GitLab API types
├── github/               # GitHub API client
│   ├── client.ts         # HTTP client
│   └── types.ts          # GitHub API types
├── auth/                 # Authentication
└── lib/                  # Utilities

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Run locally
npm start

# Development mode (watch)
npm run dev

Adding a New Tool

  1. Create file: src/tools/{category}/{action}.ts
import { z } from 'zod';
import { defineTool, repoParam } from '../define.js';

const schema = z.object({
    repo: repoParam,
    // ... your params
});

export const myTool = defineTool({
    name: 'my_tool',
    description: 'What this tool does',
    schema,
    category: 'my-category',
    read_only: true,
    handler: async (input, ctx) => {
        return ctx.provider.repository.someMethod(input.repo, ...);
    },
});
  1. Export from category index: src/tools/{category}/index.ts
  2. Add to allTools: src/tools/index.ts

Inspired By

License

MIT

Recommended MCP Servers

How it compares

Git host API MCP bridge, not a local git porcelain skill or hosted CI runner.

FAQ

Who is git-mcp-server for?

It is for developers and small teams using AI coding agents who want direct GitHub or GitLab access from the IDE chat.

When should I use git-mcp-server?

Use it when you are building or shipping and need the agent to read issues, repos, or merge requests—or controlled writes—without switching to the browser.

How do I add git-mcp-server to my agent?

Install @raytien/git-mcp-server from npm, add a stdio MCP entry in Claude Code or Cursor, and set GIT_PROVIDER, GIT_TOKEN, and optional GIT_API_URL and GIT_READ_ONLY.

Developer Toolsgitintegrationsbackend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.