Complete GitHub and local git integration for ADK-Rust Enterprise agents. Provides 38 MCP tools covering the full repository lifecycle — from create_repository through git_push to create_release.
- Full lifecycle — create repos, clone, branch, commit, push, open PRs, review, merge, release.
- Real GitHub API — all remote tools call the live GitHub REST API with your PAT.
- Local git operations — clone, init, add, commit, push, tag, log via local
gitbinary. - Governed writes — issue creation, PR reviews, merges, and repo deletion are write operations.
- Registry-ready — ships with
mcp-server.tomlfor ADK-Rust Enterprise onboarding.
| Tool | Purpose | Risk Class |
|---|---|---|
search_repositories |
Search GitHub repositories by query | Read-only |
search_code |
Search code across repositories | Read-only |
| Tool | Purpose | Risk Class |
|---|---|---|
get_repository |
Get repo details (branch, language, stats) | Read-only |
create_repository |
Create a new repo (personal or org) | External write |
fork_repository |
Fork a repository to your account | External write |
delete_repository |
Delete a repository (irreversible) | Critical write |
list_branches |
List branches with protection status | Read-only |
list_directory |
Browse repo tree contents | Read-only |
list_tags |
List git tags | Read-only |
| Tool | Purpose | Risk Class |
|---|---|---|
get_file_contents |
Read file contents (decoded from base64) | Read-only |
create_or_update_file |
Push file changes via API | External write |
| Tool | Purpose | Risk Class |
|---|---|---|
list_pull_requests |
List PRs by state | Read-only |
get_pull_request |
Get PR with merge status and stats | Read-only |
get_pull_request_diff |
Get full diff for a PR | Read-only |
create_pull_request |
Open a new PR | External write |
merge_pull_request |
Merge a PR (merge/squash/rebase) | External write |
create_pull_request_review |
Submit review (APPROVE/REQUEST_CHANGES/COMMENT) | External write |
list_pr_comments |
List comments on a PR | Read-only |
add_pr_comment |
Add a comment to a PR | External write |
| Tool | Purpose | Risk Class |
|---|---|---|
create_branch |
Create a new branch from a SHA | External write |
delete_branch |
Delete a branch | External write |
list_commits |
List commits for a repo or branch | Read-only |
get_commit |
Get details of a specific commit | Read-only |
| Tool | Purpose | Risk Class |
|---|---|---|
create_issue |
Create a new issue | External write |
update_issue |
Update issue title, body, state, labels | External write |
| Tool | Purpose | Risk Class |
|---|---|---|
list_workflow_runs |
List GitHub Actions workflow runs | Read-only |
get_workflow_run |
Get details of a specific run | Read-only |
| Tool | Purpose | Risk Class |
|---|---|---|
list_releases |
List releases for a repository | Read-only |
create_release |
Create a GitHub release | External write |
create_release_note |
Generate release notes between tags | Read-only |
| Tool | Purpose | Risk Class |
|---|---|---|
git_clone |
Clone a repository to local filesystem | Local write |
git_init |
Initialize a new git repository | Local write |
git_status |
Get working tree status | Read-only |
git_add |
Stage files for commit | Local write |
git_commit |
Create a commit with message | Local write |
git_push |
Push commits to remote | External write |
git_tag |
Create a git tag | Local write |
git_log |
Show recent commit history | Read-only |
Tested against live GitHub API:
> search_repositories("org:zavora-ai mcp")
✓ 10 repos found
> get_repository(owner: "zavora-ai", repo: "mcp-a2a")
✓ zavora-ai/mcp-a2a | branch: main | lang: Rust
> list_tags(owner: "zavora-ai", repo: "mcp-a2a")
✓ v1.1.0 (7b5acb11), v1.0.0 (48e124f1)
> get_file_contents(owner: "zavora-ai", repo: "mcp-a2a", path: "Cargo.toml")
✓ 1191 bytes | sha: 6dab006f
> create_issue(owner: "zavora-ai", repo: "mcp-registry", title: "[Test] Integration verified")
✓ #1 created → https://github.com/zavora-ai/mcp-registry/issues/1
> git_log(path: ".", count: 3)
✓ 98768c9 feat: GitHub MCP v1.1.0 — 24 tools, full PR lifecycle, verified
git clone https://github.com/zavora-ai/adk-mcp-github
cd adk-mcp-github
cargo build --releaseThe binary is at target/release/adk-mcp-github.
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxRequired scopes: repo, read:org, workflow (for Actions tools).
{
"mcpServers": {
"github": {
"command": "/path/to/adk-mcp-github",
"env": { "GITHUB_TOKEN": "ghp_xxxx" }
}
}
}{
"mcpServers": {
"github": {
"command": "/path/to/adk-mcp-github",
"env": { "GITHUB_TOKEN": "ghp_xxxx" }
}
}
}{
"mcpServers": {
"github": {
"command": "/path/to/adk-mcp-github",
"env": { "GITHUB_TOKEN": "ghp_xxxx" }
}
}
}{
"mcpServers": {
"github": {
"command": "/path/to/adk-mcp-github",
"env": { "GITHUB_TOKEN": "ghp_xxxx" }
}
}
}delete_repositoryis irreversible — requires explicit confirmation in production- PR reviews require appropriate repo permissions
merge_pull_requestrespects branch protection rulesgit_pushrequires configured credentials on the local machine- All write operations are audit-logged when used with MCP Registry
server_id = "mcp_github"
display_name = "GitHub MCP"
version = "1.4.0"
domain = "developer"
risk_level = "medium"
writes_allowed = "gated"
transports = ["stdio"]
governance_gates = ["repo_policy", "codeowners_check"]![]() James Karanja Maina |
|---|
Apache-2.0 — see LICENSE for details.
Part of the ADK-Rust Enterprise MCP server ecosystem.
This server implements the ADK MCP SDK contract:
- HealthCheck — async health probe for registry monitoring
- mcp-server.toml — manifest declaring tools, risk classes, and credentials
- Structured tracing —
RUST_LOGenv-filter for observability
This server is built with rmcp 3.1.2 and requires Rust 1.94.1 or newer. The rmcp 3 rollout retains legacy MCP initialization compatibility and targets MCP protocol revisions 2025-11-25 and 2026-07-28.
This server uses rmcp 3.1.2 and adk-mcp-sdk 0.2 with a minimum supported
Rust version of 1.94.1. It accepts stateless MCP 2026 requests with
per-request protocol, client identity, and capability metadata while retaining
the legacy MCP 2025-11-25 initialize flow for ordinary tools.
- Tasks:
get_workflow_run - MRTR approvals:
create_pull_request_review,create_issue,update_issue,list_releases,create_release_note,create_pull_request,merge_pull_request,add_pr_comment,create_branch,delete_branch,create_or_update_file,create_repository,delete_repository,create_release,git_add - Discovery and routing: rmcp serves on-demand discovery and validates the
per-request protocol envelope; HTTP deployments can route with
Mcp-MethodandMcp-Name. The packaged binary currently uses stdio. - Caching:
tools/listreturns a publicttlMsof 60,000 for MCP 2026; rmcp omits the cache fields for legacy clients. - Deprecated extensions: this server does not add new Roots, Sampling, or dynamic client-registration dependencies.
Protected tools require MCP_REQUEST_STATE_KEY with at least 32 high-entropy
bytes. All replicas must share that key so sealed approval state can resume on
another instance. Approval state is bound to the client identity, tool, and
arguments and expires after two minutes. Missing identity, invalid state,
rejection, or legacy protocol use fails closed. Task records are process-local
for the current stdio runtime; use a durable task store before deploying the
server behind scale-to-zero HTTP infrastructure.
