mcpField
G
GitHub MCP Server in Go

GitHub MCP Server in Go

ローカル
github.com/metoro-ioバージョン管理568 週間前に更新

GitHub MCP Server in Go について

Goで実装された非公式のGitHub MCPサーバーです。GitHub APIを通じて、AIアシスタントがリポジトリ、ブランチ、ファイル、Issue、コードを操作できます。検索、読み取り、書き込みのツールを備え、環境変数またはHTTPヘッダーで認証します。

主な機能

  1. 01リポジトリ、コード、Issue、ユーザーの検索
  2. 02リポジトリ、フォーク、ブランチの作成
  3. 03ファイルの読み取り、作成、更新
  4. 04複数ファイルを1つのコミットとしてプッシュ
  5. 05Issueの作成、確認、更新

活用シーン

  1. 01GitHubのリポジトリやコードを検索
  2. 02ブランチを作成してリポジトリのファイルを更新
  3. 03Issueやコメントの確認と管理

MCP 対応

GitHub APIの操作をMCPツールとしてAIアシスタントに公開します。GitHubトークンは環境変数またはHTTPリクエストヘッダーで渡せます。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Go 製 GitHub MCP サーバー

GitHub Model Context Protocol(MCP)サーバーの Go 実装です。この実装により、AI アシスタントは GitHub API を利用して、リポジトリの作成、ブランチの管理、ファイルの操作などを行えます。

前提条件

  • Go 1.21 以降
  • 適切な権限を持つ GitHub パーソナルアクセストークン

インストール

go get github.com/metoro-io/github-mcp-server-go

認証

サーバーは、次の 2 つの認証方法に対応しています。

環境変数による認証

GitHub パーソナルアクセストークンを環境変数として設定します。

export GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token
HTTP ヘッダーによる認証

サーバーは、HTTP リクエストから認証トークンを抽出することもできます。Authorization ヘッダーを使って GitHub トークンを渡せます。

Authorization: Bearer your_github_token

または、次のように指定します。

Authorization: your_github_token
コンテキストの受け渡し

HTTP ハンドラーでは、サーバーは次の両方に対応しています。

  1. HTTP リクエストの標準 http_request コンテキスト値。
  2. Gin フレームワークを使用する場合の ginContext 値。

これにより、一貫した認証メカニズムを維持しながら、さまざまな Web フレームワークとシームレスに統合できます。

使い方

  1. GitHub パーソナルアクセストークンを設定します(「認証」セクションを参照)。

  2. サーバーを実行します。

go run main.go

利用可能なツール

サーバーは次のツールを提供します。

  • search_repositories:GitHub リポジトリを検索します
  • create_repository:アカウントに新しい GitHub リポジトリを作成します
  • fork_repository:GitHub リポジトリをアカウントまたは指定した組織にフォークします
  • create_branch:GitHub リポジトリに新しいブランチを作成します
  • get_file_contents:GitHub リポジトリからファイルまたはディレクトリの内容を取得します
  • create_or_update_file:GitHub リポジトリの単一ファイルを作成または更新します
  • push_files:複数のファイルを 1 つのコミットで GitHub リポジトリにプッシュします
  • create_issue:GitHub リポジトリに新しい Issue を作成します
  • get_issue:GitHub リポジトリの特定の Issue の詳細を取得します
  • list_issues:フィルタリングオプションを指定して、GitHub リポジトリの Issue を一覧表示します
  • update_issue:GitHub リポジトリの既存の Issue を更新します
  • add_issue_comment:既存の Issue にコメントを追加します
  • list_commits:GitHub リポジトリのブランチのコミット一覧を取得します
  • search_code:GitHub リポジトリ全体からコードを検索します
  • search_issues:GitHub リポジトリ全体から Issue とプルリクエストを検索します
  • search_users:GitHub のユーザーを検索します

開発

プロジェクト構成
  • main.go:アプリケーションのエントリーポイント
  • common/:共通ユーティリティとエラー処理
  • operations/:GitHub API 操作の実装
  • tools/:MCP ツールの定義とハンドラー
ソースからのビルド
go build -o github-mcp-server
テストの実行
go test ./...

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。

コメント

MCP は初めてですか?

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

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