Skip to main content
Glama

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

  1. Cursor starts the server as a background process via your MCP config.

  2. The server communicates over stdio (standard input/output).

  3. When you ask something like “show open issues in my repo”, Cursor calls a tool on the server.

  4. 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

get_repository

Repository metadata

list_branches

Branch list

get_file_content

Read a file (or list a directory)

list_commits

Recent commits

list_issues

Issues (excludes PRs)

get_issue

Issue details + comments

create_issue

Create an issue

list_pull_requests

Pull request list

get_pull_request

PR details, reviews, and files

search_repositories

Repository search

search_code

Code search

get_user_info

User profile

Resources

  • github://user — authenticated user profile

  • github://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/activate

On Windows, if Activate.ps1 is blocked by execution policy, skip activation and use the venv Python directly:

.\.venv\Scripts\python.exe -m git_mcp.server

Copy .env.example to .env and set your token:

cp .env.example .env

3. Run locally

git-mcp
# or
python -m git_mcp.server

Cursor 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/myrepo and 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

git CLI

gh CLI

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)

  • PyGithub

  • python-dotenv

Available Tools

12 tools
create_issueC

Create a new issue in a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
repoYes
ownerYes
titleYes
labelsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
pathYes
repoYes
ownerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes
ownerYes
issue_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes
ownerYes
pr_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes
ownerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes
limitNo
ownerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes
limitNo
ownerYes
branchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes
limitNo
ownerYes
stateNoopen
labelsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes
limitNo
ownerYes
stateNoopen

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior1/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 12 tool updatesv0.1.0
    • First observedcreate_issue
    • First observedget_file_content
    • First observedget_issue
    • First observedget_pull_request
    • First observedget_repository
    • First observedget_user_info
    • First observedlist_branches
    • First observedlist_commits
    • First observedlist_issues
    • First observedlist_pull_requests
    • First observedsearch_code
    • First observedsearch_repositories

TDQS

B3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness2/5

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

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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