mcpField
E
Easy MCP GitHub Tools Application

Easy MCP GitHub Tools Application

ローカル
github.com/ground-creativeバージョン管理081 週間前に更新

Easy MCP GitHub Tools Application について

Easy MCP GitHub Tools Applicationは、GitHubのリポジトリ、イシュー、ファイル、コミット、プルリクエスト、リリースを管理するMCPツールを提供します。easy-mcp-pythonの利用者向けで、GitHub OAuthで認証します。

主な機能

  1. 01ブランチの作成と管理
  2. 02イシューとコメントの追跡・編集
  3. 03リポジトリファイルの読み取りと変更
  4. 04コミット履歴と差分の確認
  5. 05プルリクエストの作成・確認・マージ
  6. 06GitHub検索とリリース管理

活用シーン

  1. 01リポジトリのブランチとファイルを管理
  2. 02イシューとコメントを追跡
  3. 03コミット履歴とファイル変更を確認
  4. 04プルリクエストを作成またはマージ

MCP 対応

easy-mcp-pythonを通じて、GitHub操作をツールとして提供します。GitHub OAuthで認証し、リクエストヘッダーにアクセストークンを指定します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

簡単に使える MCP GitHub ツールアプリケーション

これは、easy mcp サーバーと併用する GitHub 用のツールセットです。
https://github.com/ground-creative/easy-mcp-python

主な機能

  • ブランチ管理:GitHub リポジトリでブランチを簡単に作成、削除できます。
  • Issue の追跡:Issue の作成、更新、削除に加え、Issue のコメントを管理できます。
  • コミット履歴:リポジトリ内の任意のブランチについて、詳細なコミット情報とコミット履歴を取得できます。
  • ファイル管理:GitHub リポジトリ内のファイルの作成、更新、削除に加え、ファイルの内容や差分を取得できます。
  • プルリクエスト:プルリクエストを作成、管理し、対象ブランチにマージできます。
  • グローバル検索:GitHub 全体からリポジトリ、Issue、コードを検索できます。
  • リリース管理:GitHub リポジトリ内のリリースを取得、管理できます。
  • OAuth 認証:GitHub の OAuth サービスを使用して、ユーザーを安全に認証します。

認証

このアプリケーションは、GitHub の OAuth サービスを使用してユーザーを認証します。
このアプリを使用するには、GitHub で OAuth アプリケーションを作成する必要があります。

認証方法:

  1. auth/login にアクセスして認証します

  2. サーバーにリクエストを送信する際、リクエストヘッダーでパラメーター X-ACCESS-TOKEN を使用します。

GitHub アプリケーションの作成手順

このアプリを使用するには、まず GitHub で OAuth アプリケーションを作成する必要があります。次の手順に従ってください。

  1. GitHub アカウントの設定に移動します。
  2. Developer settings > OAuth Apps に移動します。
  3. New OAuth App をクリックします。
  4. 必要な項目を入力します:
    • Application Name:アプリケーションの名前を選択します。
    • Homepage URL:アプリケーションのメイン URL を入力します(例:https://mcp.yourdomain.com)。
    • Authorization callback URL:http://{Your Host}:{Your Port}/auth/callback に設定します。
  5. アプリケーションを作成すると、Client ID と Client Secret が発行されます。これらの認証情報は、client_credentials.json ファイルに追加する必要があるため、安全に保管してください。

インストール

  1. easy mcp のインストールルートフォルダーからリポジトリをクローンします:
git clone https://github.com/ground-creative/easy-mcp-github-tools-python.git app
  1. 必要なパッケージをインストールします:
pip install -r app/requirements.txt
  1. 暗号化キーを生成します:
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
  1. env ファイルにパラメーターを追加します:
APP_HOST=Application Host ex: `https://mcp.yourdomain.com`
DB_PATH=storage/sqlite_credentials.db
CYPHER=Your Encryption Key Here

# Optional
SITE_URL=Main Application Site URL
SITE_NAME=MAin Application Site Name
  1. storage フォルダーに GitHub OAuth 認証情報を記載した json ファイル client_credentials.json を作成します:
# Follow instructions of section "Create GitHub Application instructions" to create credentials

{
    "client_id": "XXXXX",
    "client_secret": "XXXXXXX"
}
  1. サーバーを起動します:
# Run via fastapi wrapper
python3 run.py -s fastapi

利用可能な MCP ツール

この MCP サーバーでは、次のツールを利用できます:

ツール名説明必須パラメーター
ブランチを作成既存のブランチを基に、指定した GitHub リポジトリに新しいブランチを作成します。new_branch (str), base_branch (Optional[str]), repo (str)
ブランチを削除GitHub リポジトリ内の指定したブランチを削除します。branch (str), repo (str), confirmation_token (Optional[str])
Issue のコメントを削除GitHub リポジトリ内の Issue にある指定したコメントを削除します。comment_id (int), repo (str), confirmation_token (Optional[str])
コミットの詳細を取得GitHub リポジトリから特定のコミットの詳細情報を取得します。sha (str), repo (str)
コミットを取得GitHub リポジトリからコミット履歴を取得します。branch (Optional[str]), repo (str), path (Optional[str]), per_page (Optional[int]), since (Optional[str]), until (Optional[str])
ファイルを作成指定したブランチ上の GitHub リポジトリに新しいファイルを追加します。file_path (str), content (str), repo (str), commit_message (Optional[str]), branch (Optional[str])
ファイルを削除指定したブランチの GitHub リポジトリから指定したファイルを削除します。file_paths (List[str]), repo (str), branch (Optional[str]), confirmation_token (Optional[str])
ファイルの差分を取得GitHub リポジトリから特定のコミットのファイル差分を取得します。sha (str), files (List[str]), repo (str)
コミット前のファイルを取得指定したコミット SHA より前の複数ファイルの内容を取得します。sha (str), files (List[str]), repo (str)
ファイルの内容を取得GitHub リポジトリから複数ファイルの内容を取得します。file_paths (List[str]), repo (str), branch (Optional[str])
ファイルの詳細を取得GitHub リポジトリから複数ファイルの内容を除く詳細情報を取得します。files (List[str]), repo (str), branch (Optional[str])
ファイル一覧git tree API を使用して、GitHub リポジトリのファイルパス一覧を取得します。folders (Optional[List[str]]), repo (str), branch (Optional[str])
ファイルを検索GitHub リポジトリのファイル内で指定した文字列を検索します。search_string (str), repo (str), folders (Optional[List[str]]), sort (Optional[str]), order (Optional[str]), page (Optional[int]), per_page (Optional[int])
グローバル検索指定した検索タイプとクエリー文字列を基に、GitHub 全体を検索します。search_type (str), query (str), page (int), per_page (int)
ファイルを更新指定したブランチ上の GitHub リポジトリにある既存のファイルを更新します。file_path (str), new_content (str), repo (str), commit_message (Optional[str]), branch (Optional[str])
Issue のコメントを作成GitHub リポジトリ内の指定した Issue にコメントを追加します。issue_number (int), comment (str), repo (str)
Issue を作成GitHub リポジトリ内に新しい Issue を作成します。title (str), body (Optional[str]), repo (str), labels (Optional[list])
Issue のコメントを取得GitHub リポジトリ内の特定の Issue のメッセージ(詳細とコメント)をすべて取得します。issue_number (int), repo (str), page (Optional[int]), per_page (Optional[int]), sort (Optional[str]), order (Optional[str])
Issue の詳細を取得GitHub リポジトリ内の特定の Issue の詳細を取得します。issue_number (int), repo (str)
Issue を取得任意のフィルターを指定して、指定した GitHub リポジトリから Issue を取得します。repo (str), state (Optional[str]), labels (Optional[str]), assignee (Optional[str]), milestone (Optional[str]), sort (Optional[str]), order (Optional[str]), per_page (Optional[int]), page (Optional[int])
Issue を検索任意のフィルターを指定して、指定した GitHub リポジトリの Issue を検索します。repo (str), state (Optional[str]), labels (Optional[str]), assignee (Optional[str]), milestone (Optional[str]), sort (Optional[str]), order (Optional[str]), per_page (Optional[int]), page (Optional[int]), search_comments (Optional[bool]), query (Optional[str])
Issue のコメントを更新GitHub リポジトリ内の指定した Issue にある既存のコメントを更新します。comment_id (int), new_comment (str), repo (str)
Issue を更新GitHub リポジトリ内の既存の Issue を更新します。issue_number (int), title (Optional[str]), body (Optional[str]), state (Optional[str]), labels (Optional[list]), repo (str)
プルリクエストを作成指定した GitHub リポジトリにプルリクエストを作成します。target_branch (str), base_branch (Optional[str]), repo (str), title (Optional[str]), body (Optional[str])
プルリクエストの詳細を取得GitHub リポジトリから特定のプルリクエストの詳細情報を取得します。pull_number (int), repo (str)
プルリクエストを取得指定した GitHub リポジトリからプルリクエストを取得します。repo (str), state (Optional[str]), sort (Optional[str]), order (Optional[str]), per_page (Optional[int]), page (Optional[int])
プルリクエストをマージGitHub リポジトリ内の特定のプルリクエストをマージします。pull_number (int), repo (str), commit_message (Optional[str])
リポジトリを作成GitHub に新しいリポジトリを作成します。name (str), description (Optional[str]), private (Optional[bool]), auto_init (Optional[bool])
リポジトリを削除指定した GitHub リポジトリを削除します。repo (str), confirmation_token (Optional[str])
名前でリポジトリを検索指定したクエリー文字列を含む、特定のユーザーが所有するリポジトリを検索します。query (str), username (str)
リリースを取得GitHub リポジトリ内のリリースを取得します。per_page (Optional[int]), page (Optional[int]), repo (str), sort (Optional[str]), order (Optional[str])
リポジトリを取得特定の GitHub ユーザーのリポジトリをすべて取得します。username (str), type (Optional[str]), sort (Optional[str]), direction (Optional[str]), page (Optional[int]), per_page (Optional[int])
リポジトリの詳細を取得GitHub から単一のリポジトリの詳細を取得します。repo (str)
タグまたはブランチを取得GitHub リポジトリ内のタグまたはブランチを一覧表示します。type (str), repo (str), per_page (Optional[int]), page (Optional[int])

サーバー情報ページ

ツール仕様 URL が記載されたサーバー情報ページは、.env ファイルで設定された {APP_HOST} パラメーターです。

スクリーンショット

サーバー情報ページ: サーバー情報ページ

GitHub アプリケーションの OAuth ページ GitHub OAuth ページ

ユーザー認証済みページ ユーザー認証済みページ

コメント

MCP は初めてですか?

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

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