# GitMCP vs graft (slim)

> graft scores 52.9 (D) to GitMCP's 40.2 (E) for code repositories. Prices, MCP, x402, uptime and agent notes side by side.

- Full: https://www.anchorterminal.com/compare/gitmcp-vs-graft.md (~4,150 tokens) · this version ~2,480 tokens · JSON https://www.anchorterminal.com/compare/gitmcp-vs-graft.json · canonical https://www.anchorterminal.com/compare/gitmcp-vs-graft
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-07
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

graft scores 52.9 (D) on agent readiness against GitMCP's 40.2 (E), and leads in 4 of 7 scored categories. GitMCP leads on schema & documentation and security & auth. Both do code repositories.

- GitMCP: E 40.2, rank #1326 of 1510 · https://www.anchorterminal.com/tools/gitmcp.min.md
- graft: D 52.9, rank #974 of 1510 · https://www.anchorterminal.com/tools/graft.min.md
- GitMCP, good for Quick, keyless library docs for public GitHub projects in a coding agent. Ahead on Schema & documentation, 56 against 32; Security & auth, 42 against 37. Also No key needed to call it; A hosted endpoint, with nothing to install.
- graft, good for A team experimenting with server-side source control for many agents on one monorepo, where git push contention is the problem. Ahead on Reliability, 64 against 15; Agent ergonomics, 64 against 58; Maintenance & community, 63 against 8; Transparency & trust, 57 against 36. Also Free to start without a card.

| Category | GitMCP | graft |
| --- | --- | --- |
| Reliability (16%) | 15 | 64 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 56 | 32 |
| Agent ergonomics (13%) | 58 | 64 |
| Security & auth (14%) | 42 | 37 |
| Payments & pricing (10%) | 60 | 60 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 8 | 63 |
| Transparency & trust (7%) | 36 | 57 |

| Fact (where they differ) | GitMCP | graft |
| --- | --- | --- |
| Kind | MCP server | HTTP API |
| Vendor | Ido Salomon (GitMCP open-source project) | Vishisht Choudhary |
| Hosted endpoint | `https://gitmcp.io/{owner}/{repo}` | no (local only) |
| Transports | Streamable HTTP |  |
| Auth | None | OAuth or key |
| Tools exposed | 4 | 0 |
| Read-only variant documented | yes | no |
| Last release | 2026-05-08 | 2026-10-14 |
| Popularity | 8.5k stars | 1 stars |

Why the edge:
- Maintenance & community, graft +55: GitMCP 8 (The last commit on main is 8 May 2026, 182 days before this check, and there are no tags or releases (0). Nothing in the last 90 days (0). Since May, outside issues and pull requests (#244 to #271, among them the security report #249 and fixes #256, #267 and #250) have gone without a maintainer reply or merge (3). Not found in the official MCP registry under any namespace (0). A run-tests workflow with vitest and a Playwright end-to-end workflow exist on push and pull request (5). 0 + 0 + 3 + 0 + 5 = 8.); graft 63 (v0.1.2 on 14 October 2026 UTC, read from the git tags (30). Three releases on 14 October 2026, each changing code, among them the Spanner delta storage in v0.1.2 (20). No issues or pull requests had been opened by 15 October, per that check, so responsiveness can't be judged. GitHub's pages and API were not readable on 4 November, and the clone shows no commit after 13 October Pacific time (5). No MCP server and no SDK (0). Go 1.26 in go.mod and CI passing on main on 14 October, per the 15 October check (8). Total 63.)
- Reliability, graft +49: GitMCP 15 (Scored as a hosted MCP server. No status page found (0) and so no readable incident history (5). The maintainer confirmed on issue #245 that gitmcp.io was throttled by Cloudflare for a few hours in May 2026, outside the 90-day window. No rate limits are documented (0) and nothing on 429 or retries (0). No SLA (0). The service is live with no beta or preview label (10). 0 + 5 + 0 + 0 + 0 + 10 = 15.); graft 64 (Read as local software. Prebuilt binaries for Linux, macOS and Windows on amd64 and arm64 with checksums on GitHub Releases, and `go install` with Go 1.26 or later stated (20). A public CI matrix on three operating systems runs `go vet`, gofmt, `go test -race`, the repository suite on a 3-shard fleet and on in-memory Spanner, and a smoke test against git. Per the 15 October check, not re-read on 4 November, the last 11 runs on main passed on 14 October 2026, after 18 failures on the first day, and no commit has landed since (25). No issue had been filed by 15 October (not re-read on 4 November, because GitHub's pages and API refuse our reader), so there is no record either way (12). Semver tags with cumulative release notes, but no changelog file and no breaking changes marked (7). Version 0.1.2, not declared stable (0). Total 64.)
- Schema & documentation, GitMCP +24: GitMCP 56 (Every tool registers a zod input schema, so inputs are typed JSON Schema (25). There is no llms.txt for GitMCP itself; the README on GitHub is the only Markdown documentation (5). Descriptions are generated per repository and say what each tool reads and when it helps ("Useful for general questions. Always call this tool first if asked about owner/repo"), but not when to avoid one (12). Inputs are a query string and an optional page number, with no enums or constraints beyond types (9). The README has three worked examples and no documented error responses (5). No versioning, tags, releases or changelog (0). 25 + 5 + 12 + 9 + 5 + 0 = 56.); graft 32 (No OpenAPI or other machine-readable contract. Request and response shapes exist only as Go structs in internal/api (0). No llms.txt. README, DESIGN.md and ACCESS.md are Markdown on GitHub (5). The README's endpoint table gives one line per endpoint with its query parameters and nothing on when to use one over another (6). Parameters are named but types, defaults and bounds are found only in the source (6). Many CLI examples, but no HTTP request or response examples, and the 400, 403, 404, 409, 412 and 422 responses are not documented (5). Paths under `/v1` and release notes on GitHub for three releases (10). Total 32.)
- Transparency & trust, graft +21: GitMCP 36 (Apache-2.0, with the whole service in the public repository (30). The README says the service stores no personal data or queries and keeps no repository content permanently, but there is no privacy policy or terms page (8). No deprecation policy or dated notices; SSE was removed on 8 May 2026 while the README still shows an SSE config for VS Code (0). The hosting stack (Cloudflare Workers, Workers AI, Vectorize, an Analytics Engine dataset) is visible in wrangler.jsonc but no processor is named for users, and invocation logs were turned off on 8 May (5). 30 + 8 + 0 + 5 = 43.); graft 57 (Apache 2.0 in LICENSE and as detected by GitHub (30). No privacy or data-handling statement. The software is self-hosted and the source we read sends nothing to the author, so data stays with the operator, but nothing says so (10). No deprecation policy, and the release notes are dated only by their GitHub release (2). No telemetry or analytics calls found in the source, and the docs don't address it (10). Total 52.)
- Agent ergonomics, graft +6: GitMCP 58 (Four tools per repository endpoint and five on gitmcp.io/docs, each short (25). Code search pages 30 results with a page number, and documentation search returns matched chunks instead of the whole file, but there is no size control on the fetch tool (10). Errors come back as tool text with no documented codes (5). Every tool is a read and the source sets readOnlyHint, but issue #266 reports the annotations are passed in a position the MCP SDK ignores, and the fix #267 is unmerged (8). No parameters to set up and nothing to configure; there are no SDKs, which a keyless MCP endpoint doesn't need (10). 25 + 10 + 5 + 8 + 10 = 58.); graft 64 (Responses can be sized. `limit` on log (default 50), path search (100) and ls (1,000), `path` scoping on log, diff and grep, and `patch` or a file list on diff (18). Limits and filters but no cursor pagination (14). Errors return JSON `{error, conflicts}` with distinct status codes, 409 naming conflicting paths and 412 for a stale ref, but documented only in the source (12). Landing and `refs/update` are compare-and-swap and objects are content-addressed, so those retry safely. `/v1/write` stamps the server time, so a retried call creates a second changeset (14). Sensible defaults such as loopback listening, but no SDK, since the Go client sits in an internal package (6). Total 64.)
- Security & auth, GitMCP +5: GitMCP 42 (No credentials at all, so nothing to leak or scope (20). Every tool is a read of public content (15). Repository docs, code and fetched URLs reach the model unmarked, and fetch_generic_url_content fetches any absolute URL a document mentions, with no prompt-injection guidance in the README (2). No per-call visibility for the caller (0). SECURITY.md routes reports to a Google Form, but the server-side request forgery report in issue #249 (12 June 2026) and its proposed fix #256 have had no maintainer reply in almost five months. No certifications or bounty (5). 20 + 15 + 2 + 0 + 5 = 42.); graft 37 (Self-hosted server read with the API lines. With no policy, every caller can read and write everything. With `--acl`, static bearer tokens map to principals and can be stored hashed, and revoking means editing the policy. Tokens go only in the Authorization header, but the server has no TLS option (12). Roles none, read, write and admin, directory-level read and write rules checked on every path and on the whole diff of each ref move, admin-only ref deletion, and review gates where authors cannot approve their own changes (17). The API returns repository files and commit messages with no guidance on untrusted content (2). The server logs errors only. Change request comments and approvals record the principal, but a changeset's author is whatever the client sends (4). No SECURITY.md, security.txt or bug bounty. Release checksums are published (2). Total 37.)
