ADK 向け GitHub MCP ツール¶
Supported in ADKPythonTypeScript
GitHub MCP Server は、AI ツールを GitHub プラットフォームに直接接続します。これにより ADK エージェントは リポジトリやコードファイルを読み取り、Issue と PR を管理し、コードを分析し、 自然言語でワークフローを自動化できます。
ユースケース¶
- リポジトリ管理: アクセス可能なあらゆるリポジトリでコードを閲覧・検索し、 ファイルを探し、コミットを分析し、プロジェクト構造を把握します。
- Issue と PR の自動化: Issue とプルリクエストを作成・更新・管理します。 AI がバグのトリアージ、コード変更のレビュー、プロジェクトボードの維持を支援します。
- コード分析: セキュリティ検出結果を調査し、Dependabot アラートを確認し、 コードパターンを理解し、コードベースに対する包括的な洞察を得ます。
前提条件¶
- GitHub で Personal Access Token を作成してください。詳細は ドキュメント を参照してください。
エージェントでの使用¶
from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPServerParams
GITHUB_TOKEN = "YOUR_GITHUB_TOKEN"
root_agent = Agent(
model="gemini-2.5-pro",
name="github_agent",
instruction="ユーザーが GitHub から情報を取得するのを支援します",
tools=[
McpToolset(
connection_params=StreamableHTTPServerParams(
url="https://api.githubcopilot.com/mcp/",
headers={
"Authorization": f"Bearer {GITHUB_TOKEN}",
"X-MCP-Toolsets": "all",
"X-MCP-Readonly": "true"
},
),
)
],
)
import { LlmAgent, MCPToolset } from "@google/adk";
const GITHUB_TOKEN = "YOUR_GITHUB_TOKEN";
const rootAgent = new LlmAgent({
model: "gemini-2.5-pro",
name: "github_agent",
instruction: "Help users get information from GitHub",
tools: [
new MCPToolset({
type: "StreamableHTTPConnectionParams",
url: "https://api.githubcopilot.com/mcp/",
transportOptions: {
requestInit: {
headers: {
Authorization: `Bearer ${GITHUB_TOKEN}`,
"X-MCP-Toolsets": "all",
"X-MCP-Readonly": "true",
},
},
},
}),
],
});
export { rootAgent };
利用可能なツール¶
| Tool | Description |
|---|---|
context |
現在のユーザーと操作中の GitHub コンテキストに関する情報を提供するツール |
copilot |
Copilot 関連ツール(例: Copilot Coding Agent) |
copilot_spaces |
Copilot Spaces 関連ツール |
actions |
GitHub Actions ワークフローと CI/CD 操作 |
code_security |
GitHub Code Scanning などのコードセキュリティ関連ツール |
dependabot |
Dependabot ツール |
discussions |
GitHub Discussions 関連ツール |
experiments |
まだ安定版と見なされていない実験的機能 |
gists |
GitHub Gist 関連ツール |
github_support_docs_search |
GitHub 製品やサポートに関する質問に答えるためのドキュメント検索 |
issues |
GitHub Issues 関連ツール |
labels |
GitHub Labels 関連ツール |
notifications |
GitHub Notifications 関連ツール |
orgs |
GitHub Organization 関連ツール |
projects |
GitHub Projects 関連ツール |
pull_requests |
GitHub Pull Request 関連ツール |
repos |
GitHub Repository 関連ツール |
secret_protection |
GitHub Secret Scanning などのシークレット保護関連ツール |
security_advisories |
セキュリティアドバイザリ関連ツール |
stargazers |
GitHub Stargazers 関連ツール |
users |
GitHub User 関連ツール |
構成¶
リモート GitHub MCP サーバーには、利用可能なツールセットと読み取り専用モードを 構成するための任意ヘッダーがあります。
-
X-MCP-Toolsets: 有効化するツールセットのカンマ区切りリストです。 (例:"repos,issues")- リストが空の場合はデフォルトのツールセットが使用されます。不正な ツールセットが指定されると、サーバーは起動に失敗し、400 bad request ステータスを返します。空白は無視されます。
-
X-MCP-Readonly: 「読み取り」ツールのみを有効にします。- このヘッダーが空、または
"false"、"f"、"no"、"n"、"0"、"off"の場合(空白と大文字小文字を無視)、false と解釈されます。 それ以外の値はすべて true と解釈されます。
- このヘッダーが空、または