Skip to main content
Glama

GitHub MCP サーバー

タイプスクリプト モデルコンテキストプロトコルバージョンライセンス状態 GitHub

GitHub APIと連携するためのツールを提供するModel Context Protocol(MCP)サーバー。このサーバーにより、LLMエージェントは標準化されたインターフェースを通じてGitHubリポジトリ、課題、プルリクエスト、ブランチ、ファイル、リリースを管理できます。

目次

概要

github-mcp-server はモデルコンテキストプロトコル (MCP) を実装し、以下を通じて LLM と外部システム間の標準化された通信を可能にします。

  • クライアント: Claude Desktop、IDE、およびその他の MCP 互換クライアント

  • サーバー: プロジェクト管理とコラボレーションのためのツールとリソース

  • LLM エージェント: GitHub 操作をプログラムで実行する機能を活用する AI モデル。

これは AI モデルと GitHub API 間のブリッジとして機能し、一貫したパターンに従い、認証、検証、エラー処理、レート制限を処理する、明確に定義された一連のツールを提供します。

主な機能:

  • GitHub API 統合: GitHub の REST API との安全でシームレスな統合

  • 包括的な GitHub 機能: リポジトリ、ブランチ、問題、PR などを完全に管理

  • アトミック機能アーキテクチャ: 保守性を考慮した整理されたモジュールコード構造

  • 入力検証: すべての操作に対して Zod スキーマによる堅牢な検証

  • エラー処理: 一貫したエラー分類とレポート

  • レート制限:GitHub API レート制限処理を組み込み

  • パフォーマンス重視: 最適化された操作と応答フォーマット

アーキテクチャとコンポーネント

コアシステムアーキテクチャ:

flowchart TB subgraph API["API Layer"] direction LR MCP["MCP Protocol"] Val["Validation"] Rate["Rate Limiting"] MCP --> Val --> Rate end subgraph Features["Feature Modules"] direction LR Repo["Repository Management"] Branch["Branch Management"] Issue["Issue Management"] PR["Pull Request Management"] File["File Management"] Release["Release Management"] Repo <--> Branch Repo <--> Issue Repo <--> PR Repo <--> File Branch <--> PR end subgraph Services["Services Layer"] direction LR GitHub["GitHub Service"] Mapper["Response Mapper"] RateLimiter["Rate Limiter"] GitHub <--> RateLimiter GitHub <--> Mapper end Rate --> Repo Rate --> Branch Rate --> Issue Rate --> PR Rate --> File Rate --> Release Repo --> GitHub Branch --> GitHub Issue --> GitHub PR --> GitHub File --> GitHub Release --> GitHub classDef layer fill:#2d3748,stroke:#4299e1,stroke-width:3px,rx:5,color:#fff classDef component fill:#1a202c,stroke:#a0aec0,stroke-width:2px,rx:3,color:#fff classDef api fill:#3182ce,stroke:#90cdf4,stroke-width:2px,rx:3,color:#fff classDef features fill:#319795,stroke:#81e6d9,stroke-width:2px,rx:3,color:#fff classDef services fill:#2f855a,stroke:#9ae6b4,stroke-width:2px,rx:3,color:#fff class API,Features,Services layer class MCP,Val,Rate api class Repo,Branch,Issue,PR,File,Release features class GitHub,Mapper,RateLimiter services

コアコンポーネント:

  • MCPプロトコル層:AIアシスタントとの通信を処理する

  • 検証層: スキーマ検証を通じてデータの整合性を保証する

  • GitHub サービス: GitHub REST API とのコア統合

  • レートリミッター: APIレート制限の枯渇を防ぐ

  • 機能モジュール: ドメイン固有のGitHub操作

  • エラー処理: 包括的なエラー処理およびログ記録システム

特徴

リポジトリ管理

  • 作成、一覧表示、取得: 新しいリポジトリを作成し、ユーザーのリポジトリを一覧表示し、詳細なリポジトリ情報を取得します。

  • 検証と構成: リポジトリ設定を検証し、構成オプションを管理します

支店管理

  • 作成、削除、リスト: 安全な検証による完全なブランチライフサイクル管理

  • 保護されたブランチのサポート: 保護されたブランチのフィルタリングと操作

問題管理

  • 作成とリスト: ラベルを使用して詳細な問題を作成し、フィルタリングオプションを使用して問題をリストします

  • ステータス追跡: 問題の状態 (オープン、クローズ、すべて) でフィルタリング

プルリクエスト管理

  • 作成、更新、マージ、リスト: 完全なプルリクエストライフサイクル管理

  • レビューとコメントの統合: プルリクエストにレビューとコメントを追加する

  • マージオプション: さまざまなマージ戦略 (マージ、スカッシュ、リベース) のサポート

ファイル管理

  • ファイルの作成と更新: コミットメッセージを使用してリポジトリのコンテンツを追加および変更します

  • Base64エンコードのサポート: テキストとバイナリファイルの両方のコンテンツを処理します

リリース管理

  • リリースの作成: カスタマイズ可能なオプションでタグ付きリリースを作成します

  • ドラフトとプレリリースのサポート: ドラフトとプレリリースのワークフローのサポート

インストール

前提条件

  • Node.js (v16以降)

  • 適切な権限を持つGitHub個人アクセストークン

設定

  1. リポジトリをクローンします。

    git clone https://github.com/cyanheads/github-mcp-server.git cd github-mcp-server
  2. 依存関係をインストールします:

    npm install
  3. GitHub トークンを使用して、プロジェクト ルートに.envファイルを作成します。

    GITHUB_TOKEN=your_github_personal_access_token LOG_LEVEL=info SERVER_NAME=github-mcp-server
  4. プロジェクトをビルドします。

    npm run build
  5. サーバーを起動します。

    node build/index.js

構成

サーバーは環境変数を通じて設定できます:

環境変数

説明

デフォルト

GITHUB_TOKEN

GitHub 個人アクセス トークン (必須)

-

LOG_LEVEL

ログレベル(デバッグ、情報、警告、エラー、致命的)

情報

SERVER_NAME

MCPサーバー名

github-mcp-server

SERVER_VERSION

MCP サーバーバージョン

0.1.0

API_TIMEOUT_MS

API 呼び出しのタイムアウト(ミリ秒)

10000

RATE_LIMITING_ENABLED

レート制限が有効かどうか

真実

RATE_LIMITING_MIN_REMAINING

スロットル前の残りのリクエストの最小数

100

RATE_LIMITING_RESET_BUFFER_MS

レート制限リセット時間に追加する時間バッファ

5000

MCPクライアント設定

MCP クライアント設定に追加:

{ "mcpServers": { "github": { "command": "node", "args": ["/path/to/github-mcp-server/build/index.js"], "env": { "GITHUB_TOKEN": "your_github_personal_access_token", "LOG_LEVEL": "info", "SERVER_NAME": "github-mcp-server" } } } }

プロジェクト構造

このプロジェクトは、アトミックな機能指向のアーキテクチャ パターンに従います。

/src /configuration // Application configuration /dependencyInjection // Tool registry and DI container /features // Feature modules organized by domain /repositoryManagement /resources // Read operations /modifications // Write operations /branchManagement /issueManagement /pullRequestManagement /fileManagement /releaseManagement /services // External service integrations /githubAccess // GitHub API client and utilities /types // Core type definitions /utilities // Helper functions and utilities

各機能ドメインは次のように分割されます。

  • リソース: データを変更しない読み取り操作

  • 変更: データを作成、更新、または削除する書き込み操作

各操作は次の独自のディレクトリに含まれています。

  • 操作実装ファイル

  • 型定義ファイル

  • インデックスファイルをエクスポートする

ツール

GitHub MCP Server は、GitHub と対話するための包括的なツール スイートを提供します。

リポジトリ管理ツール

道具

説明

get_repository

特定のリポジトリに関する詳細情報を取得します。パラメータ:

owner

repo

list_repositories

認証されたユーザーのリポジトリを一覧表示しますパラメータ:

type

(オプション)、

sort

(オプション)

create_repository

新しい GitHub リポジトリを作成するパラメータ:

name

description

(オプション)、

private

(オプション)

ブランチ管理ツール

道具

説明

list_branches

リポジトリ内のブランチを一覧表示します。パラメータ:

owner

repo

protected

(オプション)、

per_page

(オプション)

create_branch

新しいブランチを作成するパラメータ:

owner

repo

branch

sha

delete_branch

ブランチを削除するパラメータ:

owner

repo

branch

問題管理ツール

道具

説明

create_issue

リポジトリに新しい問題を作成しますパラメータ:

owner

repo

title

body

(オプション)、

labels

(オプション)

list_issues

リポジトリ内の問題を一覧表示するパラメータ:

owner

repo

state

(オプション)、

labels

(オプション)

プルリクエスト管理ツール

道具

説明

create_pull_request

新しいプルリクエストを作成するパラメータ:

owner

repo

title

head

base

body

(オプション)

merge_pull_request

プルリクエストをマージするパラメータ:

owner

repo

pull_number

commit_title

(オプション)、

commit_message

(オプション)、

merge_method

(オプション)

update_pull_request

既存のプルリクエストを更新するパラメータ:

owner

repo

pull_number

title

(オプション)、

body

(オプション)、

state

(オプション)、

base

(オプション)、

maintainer_can_modify

(オプション)

list_pull_requests

リポジトリ内のプルリクエストを一覧表示します。パラメータ:

owner

repo

state

(オプション)、

head

(オプション)、

base

(オプション)、

sort

(オプション)、

direction

(オプション)

ファイル管理ツール

道具

説明

update_file

リポジトリ内のファイルを作成または更新します。パラメータ:

owner

repo

path

message

content

sha

(オプション)、

branch

(オプション)

リリース管理ツール

道具

説明

create_release

新しいリリースを作成しますパラメータ:

owner

repo

tag_name

name

(オプション)、

body

(オプション)、

draft

(オプション)、

prerelease

(オプション)

発達

プロジェクト構造

このプロジェクトは、厳密な命名規則とディレクトリ構造に従います。

  • ファイル名: action.entity.type.ts (例: create.repository.operation.ts )

  • 各モジュールには明確に定義された目的がある

  • 型は実装と同じ場所に配置されます

  • すべてのエクスポートはインデックスファイルを通じて一元管理されます

スクリプト

  • npm run build - プロジェクトをビルドする

  • npm run watch - 変更を監視して再構築する

  • npm run inspector - MCPインスペクターツールを実行する

  • npm run clean - ビルド成果物をクリーンアップする

  • npm run rebuild - プロジェクトをクリーンアップして再構築する

  • npm run tree - ディレクトリツリー表現を生成する

エラー処理

サーバーは包括的なエラー処理戦略を実装します。

  • 標準化されたエラーオブジェクト: 分類された一貫したエラー形式

  • 入力検証: Zodスキーマを使用した事前検証

  • レート制限保護:GitHub API レート制限の自動処理

  • エラーカテゴリ:

    • ネットワーク エラー (接続の問題)

    • 認証エラー(トークンの問題)

    • 検証エラー(無効な入力)

    • GitHub API エラー (API 固有の問題)

    • システムエラー(予期しない障害)

  • 詳細なログ記録: すべての操作とエラーの構造化されたログ記録

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

  1. リポジトリをフォークする

  2. 機能ブランチを作成します( git checkout -b feature/amazing-feature

  3. 変更をコミットします ( git commit -m 'Add some amazing feature' )

  4. ブランチにプッシュする ( git push origin feature/amazing-feature )

  5. プルリクエストを開く

ライセンス

Apacheライセンス2.0


-
security - not tested
-
license - not tested
-
quality - not tested

Related MCP Servers

  • A
    security
    -
    license
    A
    quality
    A Model Context Protocol server that enables AI models to interact with GitHub's API, allowing for repository creation and management with descriptions, topics, and website URLs through natural language commands.
    Last updated -
  • -
    security
    -
    license
    -
    quality
    A Model Context Protocol server that enables AI assistants to perform GitHub operations including repository management, file operations, issue tracking, and pull request creation.
    Last updated -
    1
  • -
    security
    -
    license
    -
    quality
    Model Context Protocol server that enables interaction with GitHub repositories, issues, pull requests, and search functionality through natural language.
    Last updated -
    1
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables LLMs to interact with Git repositories, providing tools to read, search, and manipulate Git repositories through commands like status, diff, commit, and branch management.
    Last updated -
    12
    MIT License

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/github-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server