1. Conduid
  2. Developer Tools
  3. io.github.Ray0907/git-mcp-server
MCP server · Developer Tools

io.github.Ray0907/git-mcp-server

MCP server for GitLab and GitHub

Unclaimed last commit 10 months ago devtools
37Low

Scored 7 months ago · breakdown

About io.github.Ray0907/git-mcp-server

io.github.Ray0907/git-mcp-server is an MCP server published by Ray0907 in the Developer Tools category: mCP server for GitLab and GitHub.

Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

Claude Code
claude mcp add io-github-ray0907-git-mcp-server -- npx -y @raytien/git-mcp-server
npx
npx -y @raytien/git-mcp-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (7)

create_branchCreate a new branch

Parameters not published.

get_file_contentsRead file content from repository

Parameters not published.

get_repository_treeList directory structure

Parameters not published.

list_branchesList repository branches

Parameters not published.

list_commitsList commit history

Parameters not published.

push_filesPush file changes in a single commit

Parameters not published.

search_codeSearch for code in repository

Parameters not published.

Ask AI

✦

Ask AI about io.github.Ray0907/git-mcp-server

Powered by Claude · Grounded in docs

I know everything about io.github.Ray0907/git-mcp-server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

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

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About io.github.Ray0907/git-mcp-server

How do I install io.github.Ray0907/git-mcp-server?

Run claude mcp add io-github-ray0907-git-mcp-server -- npx -y @raytien/git-mcp-server, then add the server to your MCP client's configuration.

Is io.github.Ray0907/git-mcp-server safe to use with an AI agent?

Its trust score is 37 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is io.github.Ray0907/git-mcp-server still maintained?

The last commit was 10 months ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.