GitHub Enterprise MCP サーバー
GitHub API 用の MCP サーバー。ファイル操作、リポジトリ管理、検索機能などを有効にします。
特徴
自動ブランチ作成: ファイルを作成/更新したり変更をプッシュしたりするときに、ブランチが存在しない場合は自動的に作成されます。
包括的なエラー処理: 一般的な問題に対する明確なエラーメッセージ
Git 履歴の保存: 強制プッシュなしで適切な Git 履歴を維持する操作
バッチ操作: 単一ファイルと複数ファイルの操作の両方をサポート
高度な検索: コード、問題/PR、ユーザーの検索をサポート
Related MCP server: PyGithub MCP Server
Cline インストールガイド
このガイドは、Cline で GitHub Enterprise MCP サーバーをインストールして構成し、Cline から直接 GitHub API 機能を使用できるようにするのに役立ちます。
前提条件
システムにNode.jsがインストールされている
適切な権限を持つGitHub個人アクセストークン
システムにClineがインストールされています
インストール手順
1. リポジトリのクローンを作成する
git clone https://github.com/yourusername/github-enterprise-mcp.git
cd github-enterprise-mcp2. 依存関係をインストールしてビルドする
npm install
npm run buildこれにより、コンパイルされた JavaScript ファイルを含むdistディレクトリが作成されます。
3. GitHub個人アクセストークンを作成する
GitHub 個人アクセストークンに移動します(GitHub 設定 > 開発者設定)
「新しいトークンを生成」をクリックします
このトークンでアクセスするリポジトリを選択します(パブリック、すべて、または選択)
repoスコープ(「プライベートリポジトリのフルコントロール」)を持つトークンを作成しますあるいは、パブリックリポジトリのみで作業する場合は、
public_repoスコープのみを選択します。
生成されたトークンをコピーする
4. Cline MCP設定を構成する
Cline VS Code拡張機能
VSコードを開く
Cline MCP 設定ファイルを次の場所に移動します。
Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.jsonmacOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonLinux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
GitHub Enterprise MCP サーバー構成を
mcpServersオブジェクトに追加します。
{
"mcpServers": {
"github-enterprise": {
"command": "node",
"args": [
"/absolute/path/to/github-enterprise-mcp/dist/index.js"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your-personal-access-token",
"GITHUB_API_URL": "https://api.github.com" // For GitHub.com
// For GitHub Enterprise, use your instance URL, e.g., "https://github.yourdomain.com/api/v3"
},
"disabled": false,
"autoApprove": []
}
}
}/absolute/path/to/github-enterprise-mcp/dist/index.jsを、構築された index.js ファイルへの絶対パスに置き換えます。
Claudeデスクトップアプリ用
Claude Desktop 構成ファイルを次の場所に移動します。
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
GitHub Enterprise MCP サーバー構成を
mcpServersオブジェクトに追加します。
{
"mcpServers": {
"github-enterprise": {
"command": "node",
"args": [
"/absolute/path/to/github-enterprise-mcp/dist/index.js"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your-personal-access-token",
"GITHUB_API_URL": "https://api.github.com" // For GitHub.com
// For GitHub Enterprise, use your instance URL, e.g., "https://github.yourdomain.com/api/v3"
},
"disabled": false,
"autoApprove": []
}
}
}5. クラインを再起動する
MCP 設定を構成した後、変更を適用するには Cline (VS Code または Claude Desktop) を再起動します。
検証
GitHub Enterprise MCP サーバーが適切にインストールされ、構成されていることを確認するには、Cline に次のいずれかの GitHub ツールを使用するように依頼します。
Can you search for repositories with the keyword "react" using the GitHub Enterprise MCP server?Cline はsearch_repositoriesツールを使用して、キーワード「react」を含むリポジトリを検索できるはずです。
Clineによるインタラクティブインスタレーション
対話型のインストール エクスペリエンスを実現するには、次のテキストをコピーして Cline に貼り付けると、インストール プロセスがガイドされます。
I want you to help me install the GitHub Enterprise MCP server. Here's what I need you to do:
1. First, explain what the GitHub Enterprise MCP server is and what capabilities it will give you.
2. Guide me through the installation process:
- Help me clone the repository (if I haven't already)
- Help me install dependencies and build the project
- Guide me through creating a GitHub Personal Access Token if I don't have one
- Help me configure the MCP settings in either VS Code or Claude Desktop
- Verify the installation is working
3. Show me some examples of how I can use the GitHub Enterprise MCP server once it's installed.
Please start by explaining what the GitHub Enterprise MCP server is and what it will allow you to do for me.使用例
インストール後、次のような GitHub 操作を Cline に直接実行するように要求できます。
「「my-project」という新しいリポジトリを作成する」
「機械学習に関連するリポジトリを検索する」
「私の機能ブランチからメインにプルリクエストを作成する」
「リポジトリXのREADME.mdファイルの内容を取得する」
「リポジトリ内の未解決の問題を一覧表示する」
トラブルシューティング
GitHub Enterprise MCP サーバーで問題が発生した場合:
MCP設定でindex.jsファイルへのパスが正しいことを確認してください
GitHub個人アクセストークンに必要な権限があることを確認する
GitHub インスタンスの GitHub API URL が正しいことを確認します。
ログにエラーメッセージがないか確認してください
追加の構成オプション
GitHub APIバージョン
GITHUB_API_VERSION環境変数を追加することで、GitHub API のバージョンを指定できます。
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your-personal-access-token",
"GITHUB_API_URL": "https://api.github.com",
"GITHUB_API_VERSION": "2022-11-28"
}エンタープライズ認証
異なる認証方法を使用するGitHub Enterpriseインスタンスの場合は、追加の設定が必要になる場合があります。詳細については、 Octokitのドキュメントを参照してください。
ツール
create_or_update_fileリポジトリ内の単一のファイルを作成または更新する
入力:
owner(文字列): リポジトリの所有者(ユーザー名または組織)repo(文字列): リポジトリ名path(文字列): ファイルを作成/更新するパスcontent(文字列): ファイルの内容message(文字列): コミットメッセージbranch(文字列): ファイルを作成/更新するブランチsha(オプションの文字列): 置き換えられるファイルのSHA (更新用)
戻り値: ファイルの内容とコミットの詳細
push_files1回のコミットで複数のファイルをプッシュする
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名branch(文字列): プッシュ先のブランチfiles(配列): プッシュするファイル。pathとcontentがそれぞれ指定されます。message(文字列): コミットメッセージ
戻り値: 更新されたブランチ参照
search_repositoriesGitHubリポジトリを検索する
入力:
query(文字列): 検索クエリpage(オプションの数値):ページ番号perPage(オプションの数値):1ページあたりの結果数(最大100件)
戻り値: リポジトリ検索結果
create_repository新しいGitHubリポジトリを作成する
入力:
name(文字列): リポジトリ名description(オプションの文字列): リポジトリの説明private(オプションのブール値): リポジトリを非公開にするかどうかautoInit(オプションのブール値): READMEで初期化する
戻り値: 作成されたリポジトリの詳細
get_file_contentsファイルまたはディレクトリの内容を取得する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名path(文字列): ファイル/ディレクトリへのパスbranch(オプションの文字列):コンテンツを取得するブランチ
戻り値: ファイル/ディレクトリの内容
create_issue新しい問題を作成する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名title(文字列): 問題のタイトルbody(オプションの文字列): 問題の説明assignees(オプションの文字列[]):割り当てるユーザー名labels(オプションの文字列[]):追加するラベルmilestone(オプションの番号):マイルストーン番号
返品: 作成された問題の詳細
create_pull_request新しいプルリクエストを作成する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名title(文字列): PRのタイトルbody(オプションの文字列): PRの説明head(文字列): 変更を含むブランチbase(文字列): マージ先のブランチdraft(オプションのブール値): ドラフト PR として作成maintainer_can_modify(オプションのブール値): メンテナーによる編集を許可する
戻り値: 作成されたプルリクエストの詳細
fork_repositoryリポジトリをフォークする
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名organization(オプションの文字列):フォーク先の組織
戻り値: フォークされたリポジトリの詳細
create_branch新しいブランチを作成する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名branch(文字列): 新しいブランチの名前from_branch(オプションの文字列): ソースブランチ (デフォルトはリポジトリのデフォルト)
戻り値: 作成されたブランチ参照
list_issues
リポジトリの問題の一覧表示とフィルタリング
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名state(オプションの文字列):状態(「open」、「closed」、「all」)でフィルタリングlabels(オプションの文字列[]):ラベルでフィルタリングsort(オプションの文字列): ('created'、'updated'、'comments') で並べ替えdirection(オプションの文字列):並べ替えの方向('asc'、'desc')since(オプションの文字列): 日付でフィルタリング (ISO 8601 タイムスタンプ)page(オプションの数字): ページ番号per_page(オプションの数値):1ページあたりの結果数
戻り値: 問題の詳細の配列
update_issue
既存の問題を更新する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名issue_number(数値): 更新する問題番号title(オプションの文字列):新しいタイトルbody(オプションの文字列): 新しい説明state(オプションの文字列):新しい状態(「open」または「closed」)labels(オプションの文字列[]):新しいラベルassignees(オプションの文字列[]): 新しい担当者milestone(オプションの番号):新しいマイルストーン番号
返品: 問題の詳細を更新しました
add_issue_comment
問題にコメントを追加する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名issue_number(数値): コメントする問題番号body(文字列): コメントテキスト
戻り値: 作成されたコメントの詳細
search_code
GitHubリポジトリ全体でコードを検索する
入力:
q(文字列): GitHubコード検索構文を使用した検索クエリsort(オプションの文字列): ソートフィールド ('indexed' のみ)order(オプションの文字列): ソート順 ('asc' または 'desc')per_page(オプションの数値):1ページあたりの結果数(最大100件)page(オプションの数字): ページ番号
戻り値: リポジトリコンテキストを含むコード検索結果
search_issues
問題とプルリクエストを検索する
入力:
q(文字列): GitHub の問題検索構文を使用した検索クエリsort(オプションの文字列): 並べ替えフィールド (コメント、反応、作成など)order(オプションの文字列): ソート順 ('asc' または 'desc')per_page(オプションの数値):1ページあたりの結果数(最大100件)page(オプションの数字): ページ番号
戻り値: 問題とプルリクエストの検索結果
search_users
GitHubユーザーを検索
入力:
q(文字列): GitHubユーザーの検索構文を使用した検索クエリsort(オプションの文字列): 並べ替えフィールド (フォロワー、リポジトリ、参加)order(オプションの文字列): ソート順 ('asc' または 'desc')per_page(オプションの数値):1ページあたりの結果数(最大100件)page(オプションの数字): ページ番号
返されるもの: ユーザー検索結果
list_commits
リポジトリ内のブランチのコミットを取得します
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名page(オプションの文字列):ページ番号per_page(オプションの文字列):ページあたりのレコード数sha(オプションの文字列): ブランチ名
戻り値: コミットのリスト
get_issue
リポジトリ内の問題の内容を取得します
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名issue_number(数値): 取得する問題番号
戻り値: Github Issueオブジェクトと詳細
get_pull_request
特定のプルリクエストの詳細を取得する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号
戻り値: 差分とレビューステータスを含むプルリクエストの詳細
list_pull_requests
リポジトリのプルリクエストの一覧表示とフィルタリング
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名state(オプションの文字列):状態(「open」、「closed」、「all」)でフィルタリングhead(オプションの文字列): ヘッドユーザー/組織とブランチでフィルタリングbase(オプションの文字列): ベースブランチでフィルタリングsort(オプションの文字列): ('created'、'updated'、'popularity'、'long-running') で並べ替えdirection(オプションの文字列):並べ替えの方向('asc'、'desc')per_page(オプションの数値):1ページあたりの結果数(最大100件)page(オプションの数字):ページ番号
戻り値: プルリクエストの詳細の配列
create_pull_request_review
プルリクエストのレビューを作成する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号body(文字列): レビューコメントのテキストevent(文字列):レビューアクション('APPROVE'、'REQUEST_CHANGES'、'COMMENT')commit_id(オプションの文字列): レビューするコミットのSHAcomments(オプションの配列): 行固有のコメント。それぞれ次の内容が含まれます。path(文字列): ファイルパスposition(数値):diff内の行位置body(文字列): コメントテキスト
返品: 作成されたレビューの詳細
merge_pull_request
プルリクエストをマージする
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号commit_title(オプションの文字列): マージコミットのタイトルcommit_message(オプションの文字列):マージコミットの詳細merge_method(オプションの文字列): マージ方法 ('merge'、'squash'、'rebase')
戻り値: マージ結果の詳細
get_pull_request_files
プルリクエストで変更されたファイルのリストを取得する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号
戻り値: パッチとステータスの詳細を含む変更されたファイルの配列
get_pull_request_status
プルリクエストのすべてのステータスチェックを組み合わせたステータスを取得します
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号
戻り値: ステータスチェックの結果と個々のチェックの詳細を組み合わせたもの
update_pull_request_branch
ベースブランチからの最新の変更でプルリクエストブランチを更新します(GitHub の「ブランチを更新」ボタンに相当)
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号expected_head_sha(オプションの文字列): プルリクエストのHEAD参照の予想されるSHA
戻り値: ブランチが更新されたときの成功メッセージ
get_pull_request_comments
プルリクエストのレビューコメントを取得する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号
戻り値: コメントテキスト、作成者、差分内の場所などの詳細を含むプルリクエストレビューコメントの配列
get_pull_request_reviews
プルリクエストのレビューを取得する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号
戻り値: レビュー状態 (APPROVED、CHANGES_REQUESTED など)、レビュー担当者、レビュー本文などの詳細を含むプル リクエスト レビューの配列
検索クエリ構文
コード検索
language:javascript: プログラミング言語で検索repo:owner/name: 特定のリポジトリを検索path:app/src: 特定のパスで検索extension:js: ファイル拡張子で検索例:
q: "import express" language:typescript path:src/
問題検索
is:issueまたはis:pr: タイプでフィルタリングis:openまたはis:closed: 状態でフィルタリングlabel:bug: ラベルで検索author:username:著者で検索例:
q: "memory leak" is:issue is:open label:bug
ユーザー検索
type:userまたはtype:org: アカウントの種類でフィルタリングfollowers:>1000: フォロワー数でフィルタリングlocation:London: 場所で検索例:
q: "fullstack developer" location:London followers:>100
詳細な検索構文については、 GitHub の検索ドキュメントを参照してください。
設定
個人アクセストークン
適切な権限を持つGitHub 個人アクセス トークンを作成します。
個人アクセストークンに移動します(GitHubの設定>開発者設定)
このトークンでアクセスするリポジトリを選択します(パブリック、すべて、または選択)
repoスコープ(「プライベートリポジトリのフルコントロール」)を持つトークンを作成しますあるいは、パブリックリポジトリのみで作業する場合は、
public_repoスコープのみを選択します。
生成されたトークンをコピーする
Claude Desktopでの使用
これを Claude Desktop で使用するには、 claude_desktop_config.jsonに以下を追加します。
{
"mcpServers": {
"github": {
"command": "node",
"args": [
"/path/to/github-enterprise-mcp/dist/index.js"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}建てる
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm startライセンス
このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。