{"id":50878992,"url":"https://github.com/zavora-ai/adk-mcp-github","last_synced_at":"2026-06-15T12:03:28.111Z","repository":{"id":359859555,"uuid":"1247778429","full_name":"zavora-ai/adk-mcp-github","owner":"zavora-ai","description":"GitHub MCP Server — repositories, files, branches, issues, PRs, diffs, reviews, releases for ADK-Rust Enterprise","archived":false,"fork":false,"pushed_at":"2026-05-23T19:30:21.000Z","size":29,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-23T21:12:42.645Z","etag":null,"topics":["adk-rust","adk-rust-enterprise","github-mcp-server"],"latest_commit_sha":null,"homepage":"https://enterprise.adk-rust.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zavora-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-23T19:10:49.000Z","updated_at":"2026-05-23T19:30:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zavora-ai/adk-mcp-github","commit_stats":null,"previous_names":["zavora-ai/mcp-github"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/zavora-ai/adk-mcp-github","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zavora-ai%2Fadk-mcp-github","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zavora-ai%2Fadk-mcp-github/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zavora-ai%2Fadk-mcp-github/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zavora-ai%2Fadk-mcp-github/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zavora-ai","download_url":"https://codeload.github.com/zavora-ai/adk-mcp-github/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zavora-ai%2Fadk-mcp-github/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34361403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adk-rust","adk-rust-enterprise","github-mcp-server"],"created_at":"2026-06-15T12:03:26.794Z","updated_at":"2026-06-15T12:03:28.103Z","avatar_url":"https://github.com/zavora-ai.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub MCP Server\n\n[![Crates.io](https://img.shields.io/crates/v/adk-mcp-github.svg)](https://crates.io/crates/adk-mcp-github)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)\n[![ADK-Rust Enterprise](https://img.shields.io/badge/ADK--Rust-Enterprise-purple.svg)](https://enterprise.adk-rust.com)\n[![Registry Ready](https://img.shields.io/badge/ADK_Registry-Ready-green.svg)](https://www.zavora.ai)\n\nComplete GitHub and local git integration for [ADK-Rust Enterprise](https://enterprise.adk-rust.com) agents. Provides 38 MCP tools covering the full repository lifecycle — from `create_repository` through `git_push` to `create_release`.\n\n## Architecture\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/zavora-ai/adk-mcp-github/main/docs/architecture.svg\" alt=\"GitHub MCP Architecture\" width=\"800\"/\u003e\n\u003c/p\u003e\n\n## Key Principles\n\n- **Full lifecycle** — create repos, clone, branch, commit, push, open PRs, review, merge, release.\n- **Real GitHub API** — all remote tools call the live GitHub REST API with your PAT.\n- **Local git operations** — clone, init, add, commit, push, tag, log via local `git` binary.\n- **Governed writes** — issue creation, PR reviews, merges, and repo deletion are write operations.\n- **Registry-ready** — ships with `mcp-server.toml` for ADK-Rust Enterprise onboarding.\n\n## Tools (38)\n\n### GitHub API — Search \u0026 Discovery\n\n| Tool | Purpose | Risk Class |\n|------|---------|------------|\n| `search_repositories` | Search GitHub repositories by query | Read-only |\n| `search_code` | Search code across repositories | Read-only |\n\n### GitHub API — Repositories\n\n| Tool | Purpose | Risk Class |\n|------|---------|------------|\n| `get_repository` | Get repo details (branch, language, stats) | Read-only |\n| `create_repository` | Create a new repo (personal or org) | External write |\n| `fork_repository` | Fork a repository to your account | External write |\n| `delete_repository` | Delete a repository (irreversible) | Critical write |\n| `list_branches` | List branches with protection status | Read-only |\n| `list_directory` | Browse repo tree contents | Read-only |\n| `list_tags` | List git tags | Read-only |\n\n### GitHub API — Files\n\n| Tool | Purpose | Risk Class |\n|------|---------|------------|\n| `get_file_contents` | Read file contents (decoded from base64) | Read-only |\n| `create_or_update_file` | Push file changes via API | External write |\n\n### GitHub API — Pull Requests\n\n| Tool | Purpose | Risk Class |\n|------|---------|------------|\n| `list_pull_requests` | List PRs by state | Read-only |\n| `get_pull_request` | Get PR with merge status and stats | Read-only |\n| `get_pull_request_diff` | Get full diff for a PR | Read-only |\n| `create_pull_request` | Open a new PR | External write |\n| `merge_pull_request` | Merge a PR (merge/squash/rebase) | External write |\n| `create_pull_request_review` | Submit review (APPROVE/REQUEST_CHANGES/COMMENT) | External write |\n| `list_pr_comments` | List comments on a PR | Read-only |\n| `add_pr_comment` | Add a comment to a PR | External write |\n\n### GitHub API — Branches \u0026 Commits\n\n| Tool | Purpose | Risk Class |\n|------|---------|------------|\n| `create_branch` | Create a new branch from a SHA | External write |\n| `delete_branch` | Delete a branch | External write |\n| `list_commits` | List commits for a repo or branch | Read-only |\n| `get_commit` | Get details of a specific commit | Read-only |\n\n### GitHub API — Issues\n\n| Tool | Purpose | Risk Class |\n|------|---------|------------|\n| `create_issue` | Create a new issue | External write |\n| `update_issue` | Update issue title, body, state, labels | External write |\n\n### GitHub API — CI/Actions\n\n| Tool | Purpose | Risk Class |\n|------|---------|------------|\n| `list_workflow_runs` | List GitHub Actions workflow runs | Read-only |\n| `get_workflow_run` | Get details of a specific run | Read-only |\n\n### GitHub API — Releases\n\n| Tool | Purpose | Risk Class |\n|------|---------|------------|\n| `list_releases` | List releases for a repository | Read-only |\n| `create_release` | Create a GitHub release | External write |\n| `create_release_note` | Generate release notes between tags | Read-only |\n\n### Local Git Operations\n\n| Tool | Purpose | Risk Class |\n|------|---------|------------|\n| `git_clone` | Clone a repository to local filesystem | Local write |\n| `git_init` | Initialize a new git repository | Local write |\n| `git_status` | Get working tree status | Read-only |\n| `git_add` | Stage files for commit | Local write |\n| `git_commit` | Create a commit with message | Local write |\n| `git_push` | Push commits to remote | External write |\n| `git_tag` | Create a git tag | Local write |\n| `git_log` | Show recent commit history | Read-only |\n\n## Verified Output\n\nTested against live GitHub API:\n\n```\n\u003e search_repositories(\"org:zavora-ai mcp\")\n  ✓ 10 repos found\n\n\u003e get_repository(owner: \"zavora-ai\", repo: \"mcp-a2a\")\n  ✓ zavora-ai/mcp-a2a | branch: main | lang: Rust\n\n\u003e list_tags(owner: \"zavora-ai\", repo: \"mcp-a2a\")\n  ✓ v1.1.0 (7b5acb11), v1.0.0 (48e124f1)\n\n\u003e get_file_contents(owner: \"zavora-ai\", repo: \"mcp-a2a\", path: \"Cargo.toml\")\n  ✓ 1191 bytes | sha: 6dab006f\n\n\u003e create_issue(owner: \"zavora-ai\", repo: \"mcp-registry\", title: \"[Test] Integration verified\")\n  ✓ #1 created → https://github.com/zavora-ai/mcp-registry/issues/1\n\n\u003e git_log(path: \".\", count: 3)\n  ✓ 98768c9 feat: GitHub MCP v1.1.0 — 24 tools, full PR lifecycle, verified\n```\n\n## Installation\n\n### Build from source\n\n```bash\ngit clone https://github.com/zavora-ai/adk-mcp-github\ncd adk-mcp-github\ncargo build --release\n```\n\nThe binary is at `target/release/adk-mcp-github`.\n\n### Configuration\n\n```bash\nexport GITHUB_TOKEN=ghp_xxxxxxxxxxxx\n```\n\nRequired scopes: `repo`, `read:org`, `workflow` (for Actions tools).\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"github\": {\n      \"command\": \"/path/to/adk-mcp-github\",\n      \"env\": { \"GITHUB_TOKEN\": \"ghp_xxxx\" }\n    }\n  }\n}\n```\n\n### Kiro\n\n```json\n{\n  \"mcpServers\": {\n    \"github\": {\n      \"command\": \"/path/to/adk-mcp-github\",\n      \"env\": { \"GITHUB_TOKEN\": \"ghp_xxxx\" }\n    }\n  }\n}\n```\n\n### Cursor\n\n```json\n{\n  \"mcpServers\": {\n    \"github\": {\n      \"command\": \"/path/to/adk-mcp-github\",\n      \"env\": { \"GITHUB_TOKEN\": \"ghp_xxxx\" }\n    }\n  }\n}\n```\n\n### Windsurf\n\n```json\n{\n  \"mcpServers\": {\n    \"github\": {\n      \"command\": \"/path/to/adk-mcp-github\",\n      \"env\": { \"GITHUB_TOKEN\": \"ghp_xxxx\" }\n    }\n  }\n}\n```\n\n## Governance\n\n- `delete_repository` is irreversible — requires explicit confirmation in production\n- PR reviews require appropriate repo permissions\n- `merge_pull_request` respects branch protection rules\n- `git_push` requires configured credentials on the local machine\n- All write operations are audit-logged when used with MCP Registry\n\n## MCP Server Manifest\n\n```toml\nserver_id = \"mcp_github\"\ndisplay_name = \"GitHub MCP\"\nversion = \"1.2.1\"\ndomain = \"developer\"\nrisk_level = \"medium\"\nwrites_allowed = \"gated\"\ntransports = [\"stdio\"]\ngovernance_gates = [\"repo_policy\", \"codeowners_check\"]\n```\n\n## Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START --\u003e\n| [\u003cimg src=\"https://github.com/jkmaina.png\" width=\"80px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJames Karanja Maina\u003c/b\u003e\u003c/sub\u003e](https://github.com/jkmaina) |\n|:---:|\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n## License\n\nApache-2.0 — see [LICENSE](LICENSE) for details.\n\n---\n\nPart of the [ADK-Rust Enterprise](https://enterprise.adk-rust.com) MCP server ecosystem.\n\n## Registry Compliance\n\nThis server implements the [ADK MCP SDK](https://crates.io/crates/adk-mcp-sdk) contract:\n\n- **HealthCheck** — async health probe for registry monitoring\n- **mcp-server.toml** — manifest declaring tools, risk classes, and credentials\n- **Structured tracing** — `RUST_LOG` env-filter for observability\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzavora-ai%2Fadk-mcp-github","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzavora-ai%2Fadk-mcp-github","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzavora-ai%2Fadk-mcp-github/lists"}