canonical-vault-mcp-server
This server is a read-only MCP gateway to the kushkillerjsixx66/canonical-vault GitHub repo, with five always-available tools (plus optional write tools if GITHUB_WRITE_TOKEN is set).
vault_list_directory: List files and subdirectories at any repo path, on a given branch/tag/SHA, in Markdown or JSON.
vault_get_file: Fetch the decoded text content of any file, with a small metadata header; rejects binary/oversized files.
vault_get_file_history: Show commit lineage for a file, directory, or the whole repo, with pagination and optional JSON output.
vault_get_commit: Get full commit details, including author, date, stats, and changed files.
vault_search_files: Search file names and contents using GitHub code search qualifiers like
path:orextension:.If a
GITHUB_WRITE_TOKENis configured, two write tools become available:vault_propose_change(create/update a file on a governed branch) andvault_open_pr(open a PR intomain, with no merge capability).
Provides read-only access to the canonical-vault GitHub repository, offering tools to list directories, fetch file contents, view commit history, get commit details, and search code.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@canonical-vault-mcp-serverlist the files in the root directory of the vault"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
canonical-vault-mcp-server
MCP server that exposes the canonical-vault GitHub repo to any MCP client — GitHub Copilot, Claude, Grok, ChatGPT, or anything else that speaks Streamable HTTP MCP.
Five read-only tools, always available, scoped to kushkillerjsixx66/canonical-vault:
Tool | Purpose |
| List files/dirs at a path |
| Fetch a file's decoded text content |
| Lineage — commit history for a path |
| Full detail + diff stats for one commit |
| Code search across the repo |
Plus two write tools, registered only when GITHUB_WRITE_TOKEN is set — otherwise they don't exist on the server at all:
Tool | Purpose |
| Create/update one file on a governed branch (never |
| Open a PR from a governed branch into |
Scope is fixed by the Model Contribution Contract (00_governance/contracts/model-contribution.md) and canonical_merge_authority: false: no direct writes to the canonical branch, no path in a prohibited zone, no merge tool anywhere in this server.
1. Deploy to Vercel
npm install -g vercel
cd canonical-vault-mcp-server
vercel login
vercel --prodMCP endpoint:
https://canonical-vault-mcp-server.vercel.app/api/mcpEnvironment variables
Variable | Required | Default | Notes |
| Strongly recommended | none | Read PAT (or public_repo). Raises rate limit to 5000/hr. |
| No |
| |
| No |
| |
| No |
| |
| No — write tools off without it | none | Sensitive. Fine-grained PAT: Contents R/W on |
| No |
| Shared multi-model surface. Must never include |
| No | unset | Hard lock. e.g. |
After changing env vars, redeploy production.
Related MCP server: github-mcp-tool
1b. Write tools — branch sovereignty
Enforcement layers:
MODEL_WRITE_SCOPE(recommended per model) — SetMODEL_WRITE_SCOPE=grokon the Grok deployment,=claudeon Claude’s, etc. Client cannot pick another branch.Path/branch coherence — Paths under
vault/<model>/,runtime/<model>/, or00_governance/<model>/requirebranch === <model>. Blocks e.g. writingvault/claude/...while targeting branchgrok.Allowlist — Without
MODEL_WRITE_SCOPE, only listed model branches are writable;mainis never writable.Path denylist — Constitution, IP/legal, protected manifests.
No merge tool —
vault_open_propens only; humans merge on GitHub.
Recommended production config (Grok endpoint):
GITHUB_WRITE_TOKEN=<secret>
MODEL_WRITE_SCOPE=grok
GITHUB_WRITE_BRANCH_ALLOWLIST=grokSetup:
Fine-grained PAT:
Contents: Read and writeoncanonical-vaultonly →GITHUB_WRITE_TOKEN(Sensitive).Set
MODEL_WRITE_SCOPEto the model this URL serves.Protect
mainon GitHub: require PR, no force-push, exclude write PAT from bypass.Redeploy.
2. Connect clients
{
"servers": {
"canonical-vault": {
"type": "http",
"url": "https://canonical-vault-mcp-server.vercel.app/api/mcp"
}
}
}Always pass branch / head matching the model when the deployment is not hard-locked.
3. Local testing
npm install && npm run build
npx @modelcontextprotocol/inspector node dist/index.js
# or
vercel dev # http://localhost:3000/api/mcpNotes
Stateless per-request Streamable HTTP (
api/mcp.ts).Lineage tools map to GitHub commit history.
GitHub code search indexes the default branch only (propagation delay possible).
Available Tools
5 toolsvault_get_commitGet Vault Commit DetailARead-onlyIdempotent
Get full detail for a single commit in canonical-vault: message, author, stats, and the list of files it changed (with per-file diff stats).
Args:
sha (string): Full or abbreviated commit SHA (get one from vault_get_file_history)
response_format ('markdown' | 'json'): Output format (default: 'markdown')
Returns: For JSON format: { "sha": string, "message": string, "author": string, "date": string, "stats": {...}, "files": [{ "filename": string, "status": string, "additions": number, "deletions": number }] }
Examples:
Use when: "What exactly changed in commit a1b2c3d?" -> sha="a1b2c3d"
Don't use when: You just want the commit list for a path (use vault_get_file_history instead)
Error Handling:
Returns "Error: ... not found" if the SHA doesn't exist in this repo
| Name | Required | Description | Default |
|---|---|---|---|
| sha | Yes | Full or abbreviated commit SHA | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, and non-destructive. The description adds valuable behavioral details beyond those: the exact JSON return structure, the default response format, and the error handling when a SHA is not found. This goes beyond simple scoping and genuinely helps an agent anticipate tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns, Examples, Error Handling) and front-loads the core purpose. Every sentence earns its place—no fluff. It is longer than a single sentence, but the length is justified by the need to document output format and error behavior given the absence of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description fully documents the return format (both markdown and JSON structures), error handling, and usage examples. It also clarifies the scope ('in canonical-vault') and sources the sha from a sibling tool. An agent has everything needed to invoke it correctly, and nothing is left to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds extra meaning by providing a concrete example of how to obtain a sha (from vault_get_file_history) and by illustrating the response_format usage. While not essential, this context adds value beyond the schema's bare parameter definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear, specific verb-resource statement: 'Get full detail for a single commit in canonical-vault: message, author, stats, and the list of files it changed (with per-file diff stats).' This precisely defines the tool's function and distinguishes it from siblings like vault_get_file_history (which returns commit lists) and vault_get_file (which retrieves file content).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: a 'Use when' example ('What exactly changed in commit a1b2c3d?') and a 'Don't use when' case that names the alternative tool (vault_get_file_history). This leaves no ambiguity about when to select this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_get_fileGet Vault FileARead-onlyIdempotent
Fetch the decoded text content of a single file from the canonical-vault repository (kushkillerjsixx66/canonical-vault).
Args:
path (string): File path relative to repo root, e.g. 'governance/CONSTITUTION.md'
ref (string): Branch, tag, or commit SHA (default: 'main')
Returns: The raw file text, prefixed with a small header (path, ref, sha, size). Binary or oversized files (> 500000 bytes) return an error instead of garbled content.
Examples:
Use when: "Read me the current Constitution" -> path="governance/CONSTITUTION.md"
Use when: "What does vara.py look like right now?" -> path="vara.py"
Don't use when: You just want to know if a file exists or how big it is (use vault_list_directory instead)
Error Handling:
Returns "Error: ... not found" if the path doesn't exist on that ref
Returns an error for directories (use vault_list_directory instead) or binary files
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch, tag, or commit SHA to read from (default: 'main') | main |
| path | Yes | File path within the repo, relative to root, e.g. 'governance/CONSTITUTION.md' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral detail beyond these: it explains the returned format (header with path, ref, sha, size), imposes a size limit (>500000 bytes returns error), and specifies error messages for missing files and directories. This goes beyond the annotation baseline, though it doesn't describe potential rate limits or exhaustive edge cases, which is acceptable for a read-only file fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but highly structured: a one-sentence purpose, then separate 'Args', 'Returns', 'Examples', and 'Error Handling' sections. The most critical info (purpose and primary use case) is front-loaded, and every section adds distinct value. It is not rambling; it is comprehensive yet organized. Minor redundancy exists between the error handling and the 'Don't use when' note, but not enough to lower the score further.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description fully explains the return format (raw text with a small header) and error cases (not found, directory, binary, oversized). It covers both required and optional parameters, provides examples, and names the relevant sibling tools. For a tool of this complexity, nothing essential is missing—an agent can call it correctly and interpret results without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both 'path' and 'ref'. The description adds meaning beyond the schema by providing an example for path ('governance/CONSTITUTION.md'), clarifying that paths are relative to repo root, and listing allowed ref values. This enriches the baseline of 3 for full schema coverage, making the parameters more intuitively usable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair: 'Fetch the decoded text content of a single file from the canonical-vault repository'. It clearly distinguishes from siblings like vault_list_directory (which lists) and vault_search_files (which searches), and the scope is explicitly limited to a single file. This leaves no ambiguity about the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use and when-not-to-use guidance. It provides concrete natural-language examples (e.g., 'Read me the current Constitution' → path='governance/CONSTITUTION.md') and directly tells the agent to use vault_list_directory for existence/size checks. It also covers the case of directories and binary files, routing them to the sibling. This is exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_get_file_historyGet Vault File/Path LineageARead-onlyIdempotent
Get the commit lineage (history) affecting a file or directory in canonical-vault — i.e. every commit that touched that path, most recent first.
Args:
path (string): File or directory path to trace (default: "" for whole-repo history)
ref (string): Branch, tag, or commit SHA to start from (default: 'main')
limit (number): Max commits to return, 1-100 (default: 20)
offset (number): Commits to skip for pagination (default: 0)
response_format ('markdown' | 'json'): Output format (default: 'markdown')
Returns: For JSON format: { "path": string, "count": number, "commits": [{ "sha": string, "message": string, "author": string, "date": string, "url": string }], "has_more": boolean }
Examples:
Use when: "How has VARA_SPEC_1.0 evolved?" -> path="system-specs/VARA_SPEC_1.0.md"
Use when: "What's the recent commit lineage for the whole vault?" -> path=""
Don't use when: You need the full diff of one specific commit (use vault_get_commit instead)
Error Handling:
Returns "Error: ... not found" if the path or ref doesn't exist
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch, tag, or commit SHA to read from (default: 'main') | main |
| path | No | File or directory path to trace lineage for. Empty string means whole-repo history. | |
| limit | No | Maximum commits to return | |
| offset | No | Number of most-recent commits to skip, for pagination | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive behavior, but the description adds substantial behavioral detail: it returns a list of commits with fields, supports pagination via offset, explains response_format options, and lists error handling ('Error: ... not found'). This goes well beyond the annotations by describing the exact behavior and output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns, Examples, Error Handling) and is front-loaded with the purpose. While it is fairly long, every section serves a purpose: documenting parameters, return format, and usage guidance. It is not bloated, but could be trimmed slightly without losing value, hence 4 rather than 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by specifying the exact JSON return structure. It covers all 5 parameters, provides usage examples, error cases, and pagination semantics. Nothing an agent needs to call this tool correctly is missing; it is complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so baseline is 3. The description adds marginal value by clarifying parameter usage, e.g., that path='' means whole-repo history, offset is for pagination, and response_format controls output. It also gives concrete examples that illuminate parameter semantics. This nudges the score slightly above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific action ('Get the commit lineage') on a specific resource ('file or directory in canonical-vault') and immediately clarifies it returns every commit that touched that path, most recent first. It also explicitly differentiates from sibling tools, e.g., 'Don't use when... use vault_get_commit instead.' This makes its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use examples ('How has VARA_SPEC_1.0 evolved?') and explicitly states when not to use it, referencing an alternative tool (vault_get_commit). It also notes default behavior for whole-repo history. This gives the agent actionable guidance on selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_list_directoryList Vault DirectoryARead-onlyIdempotent
List the files and subdirectories at a given path in the canonical-vault repository (kushkillerjsixx66/canonical-vault).
Args:
path (string): Directory path relative to repo root (default: "" for root)
ref (string): Branch, tag, or commit SHA (default: 'main')
response_format ('markdown' | 'json'): Output format (default: 'markdown')
Returns: For JSON format: { "path": string, "ref": string, "entries": [{ "name": string, "path": string, "type": "file"|"dir", "size": number }] }
Examples:
Use when: "What's in the governance directory?" -> path="governance"
Use when: "Show me the top-level structure of the vault" -> path=""
Don't use when: You need the actual contents of a file (use vault_get_file instead)
Error Handling:
Returns "Error: ... not found" if the path doesn't exist on that ref
Returns a rate limit message if GitHub's API limit is exceeded (set GITHUB_TOKEN to raise it)
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch, tag, or commit SHA to read from (default: 'main') | main |
| path | No | Directory path within the repo, relative to root. Empty string means repo root. | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds value beyond that by disclosing error messages ('Error: ... not found'), rate-limit behavior and the GITHUB_TOKEN tip, and the exact JSON return structure. While it repeats some annotation info, it contributes meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into clear sections (Args, Returns, Examples, Error Handling) with a front-loaded purpose statement. Every sentence contributes: examples clarify usage, the 'Don't use when' routes to a sibling, and error handling preempts common failures. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list-directory tool with no output schema, the description provides everything an agent needs: the return format (JSON), error handling, rate-limit advice, and usage examples. It also differentiates from siblings. Open-world concerns like large results are partly addressed by the rate-limit note. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema (defaults, descriptions, enum). The description repeats this information and adds usage examples ('governance' path) but does not introduce new semantic meaning not already in the schema. Baseline 3 is appropriate; the examples are marginal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'List the files and subdirectories at a given path in the canonical-vault repository'. It explicitly names the sibling tool it is not (vault_get_file) and provides usage examples that clarify the exact scope. This clearly distinguishes it from the other siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use examples ('What's in the governance directory?') and an explicit when-not-to-use condition ('Don't use when: You need the actual contents of a file (use vault_get_file instead)'). This is the clearest possible guidance, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_search_filesSearch Vault FilesARead-onlyIdempotent
Search file names and contents across the canonical-vault repository (kushkillerjsixx66/canonical-vault) using GitHub code search.
Args:
query (string): Search terms. Supports GitHub code search qualifiers like 'path:governance' or 'extension:md'
limit (number): Max results, 1-50 (default: 20)
offset (number): Results to skip for pagination (default: 0)
response_format ('markdown' | 'json'): Output format (default: 'markdown')
Returns: For JSON format: { "total": number, "count": number, "results": [{ "path": string, "url": string }], "has_more": boolean }
Examples:
Use when: "Where is Coherence defined?" -> query="Coherence path:governance"
Use when: "Find every mention of vara.py" -> query="vara.py"
Don't use when: You already know the exact path (use vault_get_file instead)
Error Handling:
Returns "No files found matching ''" if the search returns empty
GitHub code search only indexes the default branch and repos under ~size limits; very new commits may lag briefly
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results to return | |
| query | Yes | Search terms to match against file contents/names (GitHub code search syntax supported, e.g. 'invariant path:governance') | |
| offset | No | Number of results to skip for pagination | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, etc.), the description discloses meaningful behavioral traits: GitHub code search limitations (only default branch, size limits, indexing lag), the exact error message when no results are found, and the return structure for JSON format. No contradictions with annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns, Examples, Error Handling) and is front-loaded with the core purpose. It repeats some schema details (like parameter defaults) but organizes them efficiently, and every sentence contributes useful information without being verbose or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a search tool with pagination, multiple output formats, and external dependencies. It covers search syntax, pagination (offset), format handling, error messages, and known limitations. Since there is no output schema, it explicitly defines the JSON return structure, ensuring the agent knows exactly what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each parameter. However, the description adds value beyond the schema by supplying practical examples (e.g., 'path:governance' qualifier), clarifying pagination behavior via offset, and specifying what each response_format yields. This extends the schema's dry definitions with actionable context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a clear resource ('file names and contents across the canonical-vault repository'), and the method ('using GitHub code search'). This distinguishes it from sibling tools like vault_list_directory or vault_get_file, which serve different actions. The purpose is unambiguous and directly informs the agent when to invoke this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'Use when' and 'Don't use when' examples, including the exact condition for selecting an alternative (already knowing the exact path → use vault_get_file). It also gives concrete query examples and notes error handling, giving the agent clear decision criteria for when to apply this tool versus its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
vault_get_commit - First observed
vault_get_file - First observed
vault_get_file_history - First observed
vault_list_directory - First observed
vault_search_files
TDQS
Scored across 5 tools
Each tool has a distinctly separate purpose: listing a directory, reading a file, tracing commit history, inspecting a single commit, and searching the repository. The descriptions even include explicit 'Don't use when' guidance to prevent confusion.
All tools follow a uniform `vault_` prefix with a verb_noun pattern (list_directory, get_file, get_file_history, get_commit, search_files). Naming is idiomatic, consistent, and immediately signals the action and target.
Five tools is a well-scoped set for a read-only repository browsing server. Each tool covers a core operation without redundancy or bloat, making the surface easy to grasp and use.
For a read-only vault browsing use case, the set fully covers the necessary operations: navigating (list), reading content (get file), exploring change history (history/commit), and searching. There are no obvious missing capabilities that would block an agent.
Maintenance
Related MCP Connectors
Public read-only MCP for products, frameworks, guides, methodology, and blog metadata.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Read-only MCP access to performix.app's public capability guides and book corpus.
Read-only MCP access to devplane.dev's public pages, FAQ corpus and comparisons.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables GitHub API integration via MCP, allowing search, repository details, file contents, and issue management.256 npmISC
- FlicenseNot gradedqualityDmaintenanceEnables managing GitHub repositories, files, and user information through MCP, with support for creating, updating, and deleting repository contents, as well as fetching user profiles.1-
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to GitHub repositories and issues through standardized MCP tools, with caching to handle API rate limits.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables searching GitHub code with filters and reading arbitrary file contents from any repository via MCP.GPL 3.0