mcpField
G
git-mcp-server

git-mcp-server

ローカル
github.com/Ray0907バージョン管理046 週間前に更新

git-mcp-server について

git-mcp-serverは、ホスト型またはセルフホスト型リポジトリを扱うチーム向けに、GitHubとGitLabの操作を提供します。プロバイダーに依存しないツールで読み書きを行え、書き込みを無効にする設定もあります。

主な機能

  1. 01GitHubとGitLabに対応
  2. 02リポジトリの参照と編集
  3. 03イシューとマージリクエストの操作
  4. 04CI/CDパイプラインとジョブの確認
  5. 05読み取り専用モード

活用シーン

  1. 01リポジトリのファイルと履歴の確認
  2. 02イシューやマージリクエストの作成・更新
  3. 03パイプライン状態とジョブログの確認
  4. 04接続先サーバーを読み取り専用に制限

MCP 対応

MCPサーバーとして、GitHubとGitLabのリポジトリ、イシュー、マージリクエスト、コメント、ユーザー、CI/CD用ツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ray0907-git": {
"command": "npx",
"args": [
"-y",
"@raytien/git-mcp-server"
],
"env": {
"GIT_PROVIDER": "<GIT_PROVIDER>",
"GIT_TOKEN": "<GIT_TOKEN>",
"GIT_API_URL": "<GIT_API_URL>",
"GIT_READ_ONLY": "<GIT_READ_ONLY>"
}
}
}
}
起動コマンドnpx -y @raytien/git-mcp-server
設定が必要な環境変数
GIT_PROVIDERProvider type: gitlab or github
GIT_TOKENシークレットPersonal Access Token for GitHub or GitLab
GIT_API_URLAPI URL for self-hosted instances
GIT_READ_ONLYDisable write operations (true/false)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@raytien/git-mcp-server0.2.3

ツール

23

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
refstringいいえブランチ名、タグ、またはコミット SHA(デフォルト:デフォルトブランチ)
pathstringはいリポジトリ内のファイルまたはディレクトリのパス
repostringはいリポジトリ識別子(GitLab:"group/project" または ID、GitHub:"owner/repo")

詳細

Git MCP サーバー

GitHub と GitLab の両方に対応した、シンプルでモジュール式の Git MCP サーバーです。

クイックスタート

Claude Desktop の設定

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"
      }
    }
  }
}
セルフホスト 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"
      }
    }
  }
}
読み取り専用モード
{
  "mcpServers": {
    "git": {
      "command": "npx",
      "args": ["-y", "@raytien/git-mcp-server"],
      "env": {
        "GIT_PROVIDER": "github",
        "GIT_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx",
        "GIT_READ_ONLY": "true"
      }
    }
  }
}
トークンの取得
GitHub
  1. GitHub > Settings > Developer settings > Personal access tokens > Tokens (classic) に移動します
  2. スコープに repo、read:org、workflow を指定して、新しいトークンを生成します
  3. トークンをコピーします(ghp_ で始まります)
GitLab
  1. GitLab > Settings > Access Tokens に移動します
  2. スコープに api、read_api、read_repository、write_repository を指定して、新しいトークンを作成します
  3. トークンをコピーします(glpat- で始まります)

利用可能なツール

リポジトリ
ツール説明
get_file_contentsリポジトリ内のファイル内容を読み取る
get_repository_treeディレクトリ構造を一覧表示する
push_filesファイルの変更を単一のコミットでプッシュする
create_branch新しいブランチを作成する
list_branchesリポジトリのブランチを一覧表示する
list_commitsコミット履歴を一覧表示する
search_codeリポジトリ内のコードを検索する
イシュー
ツール説明
get_issue単一のイシューを取得する
list_issuesイシューを一覧表示する
create_issue新しいイシューを作成する
update_issueイシューを更新する
プルリクエスト/マージリクエスト
ツール説明
get_pull_requestマージリクエストを取得する
list_pull_requestsマージリクエストを一覧表示する
create_pull_requestマージリクエストを作成する
get_pull_request_diffsマージリクエストの変更内容を取得する
merge_pull_requestマージリクエストをマージする
CI/CD(パイプライン/ワークフロー実行)
ツール説明
get_pipelineパイプライン/ワークフロー実行のステータスを取得する
list_pipelinesパイプライン/ワークフロー実行を一覧表示する
list_pipeline_jobsパイプラインのジョブ/ワークフローのジョブを一覧表示する
get_job_logジョブのログ出力を取得する

注:GitHub Actions のワークフロー実行は、GitLab のパイプラインに対応します。同じツールを両方のプラットフォームで利用できます。

コメント
ツール説明
create_commentイシュー/MR にコメントを追加する
list_commentsコメントを一覧表示する
ユーザー
ツール説明
get_me現在認証されているユーザーを取得する

設定

環境変数必須デフォルト説明
GIT_PROVIDERいいえgitlabプロバイダーの種類:gitlab または github
GIT_TOKENはい-パーソナルアクセストークン
GIT_API_URLいいえプロバイダーのデフォルトAPI URL(プロバイダーから自動検出)
GIT_AUTH_TYPEいいえbearer認証タイプ:bearer または private-token
GIT_READ_ONLYいいえfalse書き込み操作を無効にする
LOG_LEVELいいえinfoログレベル:debug、info、warn、error

アーキテクチャ

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

開発

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Run locally
npm start

# Development mode (watch)
npm run dev

新しいツールの追加

  1. ファイルを作成します: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. カテゴリーのインデックスからエクスポートします:src/tools/{category}/index.ts
  2. allTools に追加します:src/tools/index.ts

参考にしたプロジェクト

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。