git-mcp
Provides tools for interacting with GitHub's REST API, enabling AI agents to search repositories, read files, list issues, manage pull requests, and retrieve user information directly from GitHub.
Click on "Install 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., "@git-mcpsearch code for FastMCP"
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.
git-mcp
A Model Context Protocol (MCP) server in Python that connects to GitHub via the REST API.
git-mcp lets Cursor (or any MCP-compatible AI client) talk to GitHub directly — search repos, read files, list issues, inspect pull requests, and more — without copying data into chat manually.
How it works
Cursor starts the server as a background process via your MCP config.
The server communicates over stdio (standard input/output).
When you ask something like “show open issues in my repo”, Cursor calls a tool on the server.
The server uses PyGithub and your GitHub token to call the GitHub REST API and returns JSON to the AI.
Cursor / AI ──stdio MCP──▶ git-mcp server ──REST API──▶ GitHub
│
└── GITHUB_TOKEN (.env)Tools are actions the AI can take. Resources (github://user, github://repos) are read-only context the AI can pull in automatically.
Related MCP server: GitHub MCP Server
Features
Tools
Tool | Description |
| Repository metadata |
| Branch list |
| Read a file (or list a directory) |
| Recent commits |
| Issues (excludes PRs) |
| Issue details + comments |
| Create an issue |
| Pull request list |
| PR details, reviews, and files |
| Repository search |
| Code search |
| User profile |
Resources
github://user— authenticated user profilegithub://repos— repositories you can access
Setup
1. Create a GitHub token
Create a Personal Access Token with scopes needed for your workflow (typically repo for private repos, or public_repo for public-only).
2. Install
cd git-mcp
python -m venv .venv
pip install -e .Activate the venv if you prefer (optional on Windows):
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activateOn Windows, if Activate.ps1 is blocked by execution policy, skip activation and use the venv Python directly:
.\.venv\Scripts\python.exe -m git_mcp.serverCopy .env.example to .env and set your token:
cp .env.example .env3. Run locally
git-mcp
# or
python -m git_mcp.serverCursor configuration
Add to your Cursor MCP settings (Settings → MCP → Add new MCP server, or edit ~/.cursor/mcp.json):
{
"mcpServers": {
"github": {
"command": "E:\\mission-x\\cursorWork\\git-mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "git_mcp.server"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}Adjust the Python path to your virtual environment. You can also rely on a .env file in the project root instead of putting the token in mcp.json.
Example tool calls
list_issues(owner="octocat", repo="Hello-World", state="open", limit=5)
get_pull_request(owner="octocat", repo="Hello-World", pr_number=1)
search_code(query="FastMCP in:file language:python")Ask in Cursor:
List the 5 most recent open issues in
myorg/myrepoand summarize them.
Cursor calls list_issues, gets structured JSON back, and summarizes — no manual tab switching.
git-mcp vs git vs GitHub CLI
git-mcp |
|
| |
Purpose | AI ↔ GitHub via MCP | Local repo operations | GitHub from terminal |
Used by | Cursor agent automatically | You in terminal | You in terminal |
Good for | Issues, PRs, search, remote files | Commit, push, branch locally | GitHub workflows from shell |
git-mcp is GitHub API integration for AI, not a replacement for local git commands like commit or push.
Requirements
Python 3.10+
mcp(Python SDK, v1.x)PyGithubpython-dotenv
Available Tools
12 toolscreate_issueC
Create a new issue in a repository.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| repo | Yes | ||
| owner | Yes | ||
| title | Yes | ||
| labels | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral traits are disclosed beyond the action 'create'. With no annotations provided, the description should inform the agent about potential side effects (e.g., whether the issue is created immediately, idempotency, rate limits). The description fails to add value beyond the tool name and schema.
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 a single sentence, which is concise and front-loaded. However, it is too brief to convey necessary context; a slightly longer description could improve clarity without losing conciseness.
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 the tool's complexity (5 parameters, required owner/repo/title) and the existence of an output schema, the description is incomplete. It does not mention return values, error conditions, or usage context (e.g., that owner and repo must already exist). A minimal description should at least cover the core required parameters and expected outcome.
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 schema has 5 parameters with 0% description coverage. The description does not explain the purpose or constraints of any parameter (e.g., what format the body should follow, that labels can be a list of strings). With such low coverage, the description must compensate, but it does not, leaving the agent to infer from parameter names and types alone.
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 'Create a new issue in a repository' uses a specific verb ('create') and resource ('issue'), clearly indicating the tool's action. However, it does not differentiate from sibling tools like list_issues or get_issue, which could cause confusion. A more precise scope, such as specifying 'GitHub repository' or mentioning allowed fields, would improve clarity.
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?
There is no guidance on when to use this tool versus alternative tools like list_issues or get_issue. The description does not mention any prerequisites, such as authentication requirements or that the repository must exist, leaving the AI agent without context for proper invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_contentB
Read a file from a repository. Optionally specify ref (branch, tag, or commit SHA).
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | ||
| path | Yes | ||
| repo | Yes | ||
| owner | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only hints at non-destructive behavior ('Read') but lacks details on authentication, error handling, or rate limits.
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 very short (one sentence) and front-loaded, but it could benefit from slight expansion without losing conciseness.
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 the existence of an output schema, the description is adequate for a simple read operation, but it lacks details on edge cases and required scopes.
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 description only adds meaning for the 'ref' parameter (branch/tag/commit) but does not explain owner, repo, or path; schema coverage is 0%.
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 clearly states the tool's action ('Read a file') and the resource ('repository'), and it distinguishes from sibling tools that handle issues, branches, etc.
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 implies usage for reading file content but does not provide explicit guidance on when to use versus alternatives or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueC
Get full details and comments for an issue.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| issue_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It implies a read operation but does not mention permissions, rate limits, or what 'full details' includes. The behavior is only partially disclosed.
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 a single, concise sentence with no redundancy. It is front-loaded with the key action. Could include more detail without losing conciseness.
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?
An output schema exists (though not shown), so return values may be documented there. The description adds minimal context beyond parameter names. For a simple retrieval tool, it is adequate but not complete.
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 0%, so the description should explain parameter meaning. It does not; 'for an issue' is insufficient to clarify the three required parameters (owner, repo, issue_number), though they are somewhat self-explanatory.
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 clearly states the action ('Get') and resource ('issue'), and specifies the scope ('full details and comments'). It distinguishes from sibling tools like list_issues (which lists issues without full details) and create_issue (create vs. retrieve).
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?
No guidance is provided on when to use this tool versus alternatives. For example, it does not contrast with list_issues or mention prerequisites like authentication. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pull_requestB
Get pull request details including reviews and changed files.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| pr_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden but only states the basic read operation. It does not disclose side effects, permission requirements, rate limits, or whether the operation is read-only, though the name implies a safe get.
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 a single concise sentence that efficiently communicates the tool's purpose without extraneous words. It could be slightly improved by mentioning required context but is otherwise well-structured.
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 the existence of an output schema and the simplicity of the tool, the description provides sufficient context about what the tool returns (reviews, files). It doesn't list all details, but the presence of an output schema compensates.
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 0%, and the description provides no additional meaning for the three parameters (owner, repo, pr_number) beyond their names which are self-explanatory but lack context about format or constraints.
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 uses a specific verb 'get' and clearly identifies the resource 'pull request details' with specific inclusions of 'reviews and changed files', distinguishing it from sibling tools like list_pull_requests which list PRs rather than retrieve details.
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?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, context, or situations where other tools (e.g., list_pull_requests) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_repositoryB
Get metadata for a GitHub repository.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'get metadata' without specifying what metadata is returned, any authentication needs, rate limits, or that it is a read-only operation. This leaves the agent with significant unknowns.
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 a single sentence that is front-loaded and concise. Every word serves a purpose without extraneous detail.
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 the tool has an output schema (not shown), the description need not detail return values. However, it lacks behavioral context (e.g., authentication, read-only nature, possible errors). For a simple 'get' operation, it is minimally adequate but incomplete for an agent to use confidently.
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 0%, and the description adds no explanation of the 'owner' and 'repo' parameters beyond their names. While these names are self-explanatory, the description fails to add any semantic nuance or format hints that the schema lacks.
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 'Get metadata for a GitHub repository' uses a specific verb 'get' and clearly identifies the resource (repository metadata). This distinguishes it from siblings like get_issue or get_pull_request, making its purpose unmistakable.
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?
No explicit guidance is given on when to use this tool vs alternatives like get_issue or get_file_content. The usage is implied (e.g., for repository-level metadata), but no exclusions or contexts are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_infoC
Get public profile information for a GitHub user.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It implies the operation is read-only and public, but fails to mention authentication requirements, rate limits, or any side effects. This is insufficient for an agent to understand the full impact of using the tool.
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 a single sentence that efficiently communicates the core functionality. It is appropriately short for a simple tool, though it could benefit from additional context without becoming verbose.
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 the presence of an output schema (not shown), the description does not need to detail return values. However, for a tool with one required parameter and no annotations, the description is minimally adequate but lacks depth in usage and behavior.
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 0%, yet the description adds no additional meaning to the 'username' parameter beyond its name. It does not specify expected format (e.g., GitHub username rules) or any constraints, leaving the agent with only the parameter name to infer usage.
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 clearly states the action ('Get') and the resource ('public profile information for a GitHub user'), making the tool's purpose immediately understandable. However, it does not distinguish itself from sibling tools like get_issue or get_repository, but those target different entities.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, limitations, or scenarios where another tool might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_branchesC
List branches in a repository.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| limit | No | ||
| owner | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of disclosing behavior. However, it only states 'List branches' without noting that it is a read-only operation, requiring authentication, or indicating pagination or limits. The output schema exists but its content is not summarized.
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 a single 6-word sentence, which is overly brief. It does not use its limited space effectively to add value beyond the tool name. The structure lacks any detail that would help an agent select or invoke the tool correctly.
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 that there are 3 parameters (2 required) and no annotations, the description is woefully incomplete. It does not address any of the complexities such as input format, output structure, or usage scenarios. An agent relying on this description alone would have insufficient information to use the tool effectively.
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 0%, and the description does not explain any parameters. 'repo', 'owner', and 'limit' are not described in terms of format, constraints, or purpose. The default value of 'limit' (20) is not mentioned, and there is no indication of what the limit applies to.
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 'List branches in a repository.' which is essentially a restatement of the tool name 'list_branches'. It adds minimal value by specifying 'in a repository', but it does not distinguish itself from sibling tools that also operate on repositories (e.g., list_commits, list_issues) beyond the resource type.
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?
There is no guidance on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or context. Sibling tools are not referenced, so an agent cannot determine if this is the best tool for listing branches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commitsC
List recent commits, optionally filtered by branch.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| limit | No | ||
| owner | Yes | ||
| branch | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It labels commits as 'recent' but does not define that (default limit 10, likely ordered by date). No mention of ordering, pagination, or rate limits. The behavior is underspecified.
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?
One sentence is concise but sacrifices detail. Front-loaded with the verb 'list', but the brevity leaves out important context. It earns its place but does not provide enough substance.
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 the tool has 4 parameters, no annotations, and an output schema not described, the description is incomplete. It does not mention output format, pagination, or how it differs from siblings like list_pull_requests. More context is needed for an agent to use it correctly.
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 0%, so the description must compensate. It adds the key fact that 'branch' is optional and used for filtering, which is not obvious from the schema alone. However, it does not describe 'limit' default, format of 'branch', or purpose of 'owner'/'repo'.
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 clearly states the tool lists commits and mentions optional branch filtering. However, it does not explicitly specify that commits are from a repository (implied by required params), which could be clearer. It distinguishes from siblings like list_branches and list_issues by focusing on commits.
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?
No guidance on when to use this tool versus other list tools (e.g., list_pull_requests). There is no mention of typical use cases, prerequisites (e.g., repository access), or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_issuesB
List issues in a repository. Pull requests are excluded.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| limit | No | ||
| owner | Yes | ||
| state | No | open | |
| labels | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'list issues' with no additional behavioral context (e.g., pagination, filtering behavior, rate limits). The burden is on the description, which it fails to meet.
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 a single concise sentence with no redundancy. Every word adds value.
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?
Despite having an output schema (reducing need for return value description), the tool has 5 parameters and no parameter guidance. The description is too brief for the 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 schema has 5 parameters with 0% description coverage. The description does not explain the purpose or usage of any parameter, leaving the agent to infer from names alone.
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 clearly states the tool lists issues and explicitly excludes pull requests. This is specific and distinguishes it from the sibling tool list_pull_requests.
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 implicitly guides usage by stating pull requests are excluded, which tells the agent not to use this for PRs. However, it lacks explicit when-to-use or when-not-to-use guidance beyond that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pull_requestsC
List pull requests in a repository.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| limit | No | ||
| owner | Yes | ||
| state | No | open |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as pagination, sorting, or rate limits. It only states 'list', which implies read-only but no further details.
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?
Single sentence, no wasted words. However, it could be slightly more informative without losing conciseness. Front-loaded with the action.
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 the existence of sibling tools and lack of parameter explanations, the description is insufficient for an AI agent to fully understand usage. The output schema may help, but the description itself is incomplete.
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 description provides zero explanation of any of the 4 parameters. Schema coverage is 0%. The schema itself has defaults and enums, but the description adds no value beyond what the schema already shows.
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 clearly states the action (list), the resource (pull requests), and the context (in a repository). It distinguishes from siblings like list_issues and list_commits by the specific resource type.
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?
No guidance on when to use this tool vs alternatives (e.g., get_pull_request for a single PR). No prerequisites or exclusions mentioned. The description merely states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_codeC
Search code across GitHub. Example query: 'addClass in:file language:js repo:jquery/jquery'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full burden. It does not disclose whether results are paginated, rate limits, authentication requirements, or any side effects. The single example provides no behavioral depth beyond the fact that it searches.
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 extremely concise: one sentence plus an example, with zero wasted words. It is front-loaded with the action and resource.
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 the presence of an output schema, return values need not be explained, but the tool has 2 parameters with 0% schema description coverage and no annotations. The description fails to cover query syntax variations, limit behavior, or error handling, leaving significant gaps for an agent to infer.
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 0%. The description does not explain the 'limit' parameter's meaning or the 'query' format beyond a single example. The example partially compensates for query but not for limit, leaving the agent with minimal guidance beyond the schema's title and default 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 clearly states 'Search code across GitHub' and provides an example query, making the purpose specific and distinguishable from sibling tools like search_repositories (which searches repos) and list_issues (which searches issues).
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?
No explicit guidance on when to use this tool versus alternatives like get_file_content for retrieving specific file contents. The example hints at query syntax but does not explain context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_repositoriesC
Search GitHub repositories.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It only states 'Search', with no details on sorting, pagination, result format, or side effects. This is insufficient.
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 extremely short (3 words). While concise in length, it is under-specified and fails to provide necessary information, making it inadequate rather than efficient.
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 the presence of an output schema (not shown) and sibling tools, the description should provide more context. It is incomplete for an agent to use correctly without additional knowledge.
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 0%. The description does not explain any parameters (query, limit) beyond their names. The agent has no guidance on syntax or defaults.
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 'Search GitHub repositories' clearly states the verb and resource. It is specific enough, but does not differentiate from the sibling tool 'search_code' which also searches. A 5 would require explicit distinction.
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?
No guidance on when to use this tool versus alternatives like 'search_code'. The agent is left to infer usage without any context or exclusions.
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. Dates show when Glama detected each change.
12 tool updates
v0.1.0- First observed
create_issue - First observed
get_file_content - First observed
get_issue - First observed
get_pull_request - First observed
get_repository - First observed
get_user_info - First observed
list_branches - First observed
list_commits - First observed
list_issues - First observed
list_pull_requests - First observed
search_code - First observed
search_repositories
TDQS
Each tool targets a distinct resource and action with no overlap. Issues, branches, commits, pull requests, repositories, code search, and user info are all clearly separated, and list_issues explicitly excludes pull requests to avoid confusion.
All tools follow a consistent verb_noun snake_case pattern (e.g., create_issue, list_branches, get_file_content). The verbs and nouns are logically chosen, making the set predictable and easy to navigate.
With 12 tools, the server is well-scoped for interacting with GitHub repositories. Each tool serves a clear purpose without unnecessary bloat, fitting the typical range for a focused MCP server.
The tool set is heavily read-oriented (list, get, search) but lacks essential write operations for a full lifecycle. Missing update/delete for issues, no create for pull requests or repositories, and no branch creation or commit tools, leaving significant gaps for agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Access the GitHub API, enabling file operations, repository management, search functionality, and…
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Manage repositories, users, releases, and automate GitHub workflows
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables interaction with GitHub repositories through the GitHub API, allowing file operations, repository management, issue tracking, and code search through natural language commands.33154MIT
- AlicenseAqualityNot gradedmaintenanceEnables AI agents to interact with GitHub repositories through the GitHub REST API for managing files, issues, and repository metadata. It supports both read operations like searching code and write operations such as creating repositories and updating issue comments.9-
- FlicenseAqualityCmaintenanceEnables interaction with GitHub repositories, issues, pull requests, code search, branches, and GitHub Actions workflows.848-
- FlicenseCqualityBmaintenanceEnables AI assistants to interact with GitHub repositories via the REST API, supporting repository listing, detail retrieval, and issue management.2-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rkjavait/rk-git-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server