Git MCP Server
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 MCP ServerList the merged pull requests for this repository"
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 Server
A Model Context Protocol (MCP) server that gives AI assistants the ability to inspect local Git repositories and interact with the GitHub API — reading commit history, diffs, file contents, issues, comments, pull requests, and project boards — all from a single, modular TypeScript server.
Tools
The server exposes 10 tools across four categories.
Git
Tool | Description |
| Returns all uncommitted changes in a local repository (equivalent to |
| Retrieves recent commit history with hash, author, date, and message. Accepts a |
| Shows line-by-line file differences. Can be scoped to a specific file or limited to staged changes only. |
| Returns the full directory and file tree of a repository — useful for architectural overviews and documentation. |
File System
Tool | Description |
| Reads the entire content of a small file at once. Ideal for source files and configs. |
| Reads a specific line range ( |
GitHub Issues
Tool | Description |
| Fetches all issues (open and closed) from a remote GitHub repository. |
| Retrieves all comments on a specific issue by number, including author and timestamps. |
| Creates a new issue with title, body, labels, assignees, and priority — then automatically adds it to the repository's GitHub Projects board. Handles multi-project repos by prompting for project selection. |
GitHub Pull Requests
Tool | Description |
| Lists recent pull requests from a repository. Toggle between merged and open PRs with |
Related MCP server: Simple Code Review Assistant
Architecture
The server follows a layered, modular design introduced in PR #1:
src/
├── index.ts # Server bootstrap — wires tools to the MCP server
├── config.ts # Centralised environment config (GITHUB_TOKEN, cache TTL)
├── services/
│ ├── github-rest.ts # GitHub REST API client
│ ├── github-graphql.ts # GitHub GraphQL client (used for Projects v2 boarding)
│ ├── cache.ts # In-memory project metadata cache (1 h TTL)
│ └── git-cmd.ts # Local Git CLI wrapper
├── tools/
│ ├── git.ts # Git operation tools
│ ├── filesystem.ts # File reading tools
│ ├── issues.ts # GitHub Issue tools
│ └── pulls.ts # GitHub Pull Request tools
├── types/
│ ├── github.ts # GitHub API response types
│ ├── cache.ts # Cache types
│ └── git.ts # Git operation types
└── utils/
└── helpers.ts # Shared utility functionsRequirements
Node.js v18 or later
GitHub Personal Access Token with
repoandprojectscopes
Installation
# Clone the repository
git clone https://github.com/EnesOzturk11/Git-MCP-Server.git
cd Git-MCP-Server
# Install dependencies
npm install
# Build
npm run buildConfiguration
The server reads a single environment variable:
Variable | Required | Description |
| Yes | Personal Access Token for GitHub API authentication |
Create a .env file in the project root or export the variable in your shell:
GITHUB_TOKEN=ghp_your_token_hereUsage with Claude Desktop
Add the server to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"git-mcp-server": {
"command": "node",
"args": ["/absolute/path/to/Git-MCP-Server/build/index.js"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}Restart Claude Desktop — the 10 tools will become available immediately.
Tech Stack
Layer | Technology |
Language | TypeScript 5 |
Runtime | Node.js (ESM) |
Protocol | Model Context Protocol SDK |
Validation | Zod |
GitHub API | REST + GraphQL (Projects v2) |
Environment | dotenv |
Contributing
Issues and pull requests are welcome. Please open an issue first to discuss any significant changes.
Available Tools
10 toolscreate_and_board_issueCreate GitHub Issue and Board the IssueA
Creates a new issue in a GitHub repository and automatically assigns it to the project board with a specific priority. Use this when identifying bugs, technical debt, or documentation gaps that need tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | A detailed Markdown-formatted description. Include reproduction steps, code snippets, and why this fix/feature is necessary. | |
| type | No | The category of the issue, such as 'bug', 'feature', 'refactor', or 'documentation'. | |
| title | Yes | A descriptive, high-level title for the issue. Be concise but specific. | |
| labels | No | An array of labels to categorize the issue (e.g., ['bug', 'help wanted']). Labels must exist in the repo or will be created. | |
| assignee | No | The GitHub handle of the primary person responsible for this issue. Use this for single assignments. | |
| priority | Yes | The urgency level. This will determine the issue's placement and metadata on the project board. | |
| repoName | Yes | The exact name of the repository where the issue will be created (e.g., 'hello-world'). | |
| assignees | No | A list of GitHub handles to assign to this issue. Use this if multiple people need to be tagged. | |
| repoOwner | Yes | The GitHub username or organization name that owns the repository (e.g., 'octocat'). | |
| targetProjectName | No | If the repo has multiple projects, the name of the selected project. LEAVE EMPTY on the first call. |
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 restates the title's core action ('creates a new issue... assigns it to the project board') with the addition of 'specific priority'. It does not disclose permissions, side effects (e.g., label creation), or response behavior, which is inadequate for a mutation tool without annotations.
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?
Two sentences, front-loaded with the main action and then the use case. No redundancy or fluff; every word earns its place.
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 tool has 10 parameters and no output schema. While the schema is rich, the description omits critical behavioral context like the 'LEAVE EMPTY on first call' nuance for targetProjectName and does not hint at what the response contains. It is adequate but not complete for a tool of this 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?
Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific meaning beyond the schema; 'specific priority' merely echoes the priority parameter already described in the schema.
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?
Clearly states it creates a GitHub issue and boards it with a priority. The verb 'creates' and resource 'issue in a GitHub repository' are specific, and it distinguishes from sibling read-only tools.
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?
Explicitly states when to use: 'Use this when identifying bugs, technical debt, or documentation gaps that need tracking.' It lacks explicit exclusions or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_all_issuesGet All IssuesB
Get all issues from the specified remote repo and list them
| Name | Required | Description | Default |
|---|---|---|---|
| repoName | Yes | Exact repo name for the url parameter. Ask the user if it is not provided. | |
| repoOwner | Yes | Exact repository owner for the url paramter that indicates what is the owber of the repo. Ask the user if it is not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior, but it only says 'get all issues' without mentioning pagination, ordering, authentication, network dependency, or return format. This leaves significant behavioral traits undisclosed.
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 unnecessary words. The phrase 'and list them' is slightly redundant but not wasteful.
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 simple two-parameter list tool, the description gives a basic sense of operation, but lacks details about output format, result size, or behavior such as whether it fetches from remote (network) and any prerequisites. Gaps remain.
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?
Both parameters are fully described in the schema (100% coverage), giving their meaning and asking user to provide if missing. The description adds no extra semantic value beyond the schema.
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 fetches all issues from a specified remote repository and lists them. This distinguishes it from sibling tools like fetch_merged_prs (PRs) and get_issue_comments (comments on a specific issue).
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 like get_issue_comments or fetch_merged_prs. The description lacks context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_merged_prsFetch Pull RequestsB
Retrieves a list of Pull Requests from the specified GitHub repository. Crucial for generating automated release notes, writing changelogs, or summarizing the latest features and bug fixes added to the project.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | The maximum number of recent merged PRs to fetch. Defaults to 10. | |
| isMerged | No | The boolean variable that indicates which type of pull requests will be fetched merged or not merged. Defaults is false which means fetch not merged pull requests. | |
| repoName | Yes | The name of the repository (e.g., 'react'). Ask the user if not provided. | |
| repoOwner | Yes | The owner of the repository (e.g., 'facebook'). Ask the user if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It only says 'Retrieves a list' but does not disclose that the default behavior fetches not-merged PRs (isMerged=false), the default limit of 10, authentication requirements, or return format. This is a significant gap given the tool name implies merged PRs.
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 appropriately sized with two sentences. The first sentence clearly states the purpose, and the second provides usage context. Every sentence earns its place and there is no wasted verbosity.
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?
Even though the schema handles parameter details, the description lacks critical behavioral context such as default merged/not-merged behavior, limit handling, output format, and authentication needs. For a tool with no output schema and no annotations, this is insufficient for an agent to invoke correctly without surprises.
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 covers all 4 parameters with detailed descriptions, so the description adds no additional parameter semantics beyond what the schema already provides. Baseline of 3 is appropriate since the description does not compensate for any missing parameter 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 clearly states it 'Retrieves a list of Pull Requests from the specified GitHub repository', which is specific with a verb, resource, and scope. It distinguishes from sibling tools like get_git_log or get_git_diff, but it does not explicitly mention 'merged' PRs as the tool name suggests, leaving a slight ambiguity.
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 usage context: 'Crucial for generating automated release notes, writing changelogs, or summarizing the latest features and bug fixes'. However, it does not state when not to use it or mention alternatives, as no sibling comparisons are made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-git-diffGet Git DiffB
Get all difference in files and show the differences line by line. It can focus on a specific file according to willingness
| Name | Required | Description | Default |
|---|---|---|---|
| cached | No | Show difference that are taken to stage | |
| repoPath | Yes | GitHub repository path | |
| targetFile | No | Show difference only this file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions line-by-line output and optional file focus, but fails to specify whether diffs are against HEAD, how the cached flag affects output, or any side effects. This lacks critical behavioral context for an agent.
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 two sentences and front-loads the primary purpose. However, phrases like 'according to willingness' and 'all difference' are awkward and could be clearer, though it is not overly 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 absence of an output schema and annotations, the description should provide more context about return format, default diff scope, and interaction with cached. It leaves significant gaps for an agent to invoke 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 descriptions cover all parameters (100%), so the baseline is 3. The description adds little beyond restating targetFile's purpose; it does not clarify cached behavior or repoPath requirements.
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 retrieves file differences and displays them line by line, with optional file-specific focus. This distinguishes it from siblings like get_git_status (status overview) and get_git_log (history).
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 its use for viewing diffs but does not explicitly state when to prefer it over alternatives like get_git_status or get_git_log. No exclusion or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_git_logGet Git LogB
List recent commits of the project
| Name | Required | Description | Default |
|---|---|---|---|
| maxCount | Yes | ||
| repoPath | Yes | GitHub repository path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'list recent commits' without disclosing return format, ordering, branch scope, or the meaning of 'recent' relative to maxCount. It implies a read-only operation via 'list' but lacks behavioral 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?
The description is a single sentence that is front-loaded and free of filler. It communicates the essential purpose without any wasted words, making it appropriately concise for a tool of this simplicity.
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?
With no output schema and no annotations, the description is incomplete for an agent to fully predict the tool's behavior. It doesn't state what fields are returned (e.g., hash, author, date), whether all branches are included, or how maxCount interacts with the output. The missing usage guidance also reduces completeness.
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 documents repoPath but not maxCount (50% coverage). The description's phrase 'recent commits' only faintly implies maxCount limits the result. It does not clarify whether repoPath refers to a local path or a GitHub URL (despite the schema's 'GitHub repository path' description), and it provides no additional meaning for maxCount.
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 'List' and resource 'recent commits of the project', clearly distinguishing it from sibling tools like get_git_diff (diffs) and get_git_status (status). It is unambiguous and immediately conveys the tool's core function.
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 such as get_git_diff or get_git_status. The description doesn't mention exclusions, prerequisites, or typical use cases, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_git_statusGet Git StatusC
Get all changes in directory by calling git command (git status)
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | GitHub repository path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral burden. It discloses the mechanism ('calling git command (git status)') but does not describe the output format, scope of changes (tracked/untracked), or any side effects. For a read-style tool, the lack of explicit behavioral details is a gap.
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, direct, front-loaded with the action and resource. No wasteful words.
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 being a simple tool, the description lacks usage alternatives and return-value details, and there is no output schema to compensate. The sibling tools create ambiguity, so the description is not fully complete for an agent.
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 already fully documents repoPath as 'GitHub repository path' with 100% coverage, so the description adds no additional parameter meaning. Baseline 3 is appropriate.
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 ('Get all changes') and resource ('directory') and identifies the underlying command ('git status'). It is clear but does not explicitly distinguish from sibling tools like get-git-diff, which also deals with changes.
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 about when to use this tool instead of siblings such as get_git_log, get-git-diff, or get_repo_structure. The description simply states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_commentsGet All Comments of the Given IssueC
Retrieves the all comments of the given issue based on its comment_url datafield which is given in the parameter of the function
| Name | Required | Description | Default |
|---|---|---|---|
| repoName | Yes | Exact repo name for the url parameter. Ask the user if it is not provided. | |
| repoOwner | Yes | Exact repository owner for the url parameter that indicates what is the owner of the repo. Ask the user if it is not provided. | |
| issue_number | Yes | The specific number of the issue to fetch comments for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions retrieving comments but introduces an incorrect 'comment_url' parameter and does not disclose potential pagination, ordering, or output format. This could mislead the agent about how the tool operates.
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 but is grammatically awkward ('Retrieves the all comments') and unnecessarily verbose ('which is given in the parameter of the function'). It is not well-structured or front-loaded.
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 tool has no output schema and a minimal description that does not explain return values or behavior beyond fetching comments. The erroneous reference to 'comment_url' makes the description incomplete and potentially misleading, especially given the lack of sibling differentiation.
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 provides clear descriptions for all three required parameters (repoName, repoOwner, issue_number) with 100% coverage. The description adds little value and even confuses by referencing a non-existent 'comment_url' parameter, but the schema is sufficient to understand the parameters.
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 the tool retrieves all comments for a given issue, which is the core purpose. However, the phrase 'based on its comment_url datafield which is given in the parameter' is confusing and references a field (comment_url) that is not among the actual parameters, detracting from 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?
No guidance is provided on when to use this tool versus alternatives like fetch_all_issues or fetch_merged_prs. The description simply states what it does without any context for tool selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_repo_structureGet Repository StructureB
Returns the directory and file structure of the git repository. Useful for architectural documentation.
| Name | Required | Description | Default |
|---|---|---|---|
| repoPath | Yes | Github repository base path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says it 'returns' the structure, offering no details on output format, handling of large repos, hidden files, or any operational caveats. The lack of an output schema makes this gap more significant, as the agent cannot infer return structure.
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 two concise sentences with no fluff. It front-loads the primary action and adds a relevant use case, making every word earn its place.
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?
Although the tool has only one parameter and no nested objects, the absence of an output schema means the description should clarify what the returned structure looks like (e.g., tree vs. list, JSON vs. plain text). It does not, leaving the agent with incomplete information for a tool that returns potentially complex data.
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 already fully describes the only parameter, repoPath, with 'Github repository base path'. The tool description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate given high schema coverage.
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 returns the directory and file structure of the git repository, using a specific verb and resource. This distinguishes it from sibling tools like get_git_log or read_local_file, which focus on logs or file contents.
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 phrase 'Useful for architectural documentation' implies a usage context, but it does not explicitly contrast this tool with alternatives or state when not to use it. There is no mention of sibling tools or exclusions, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_local_fileRead the Small Local FileA
Reads the entire content of a specific small sized file. Crucial for understanding the full context of the code before writing documentation.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Relative file path to the file (e.g., src/index.ts) | |
| repoPath | Yes | Github repository base path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the read-only nature through the verb 'Reads' and adds the size limitation 'small sized file.' However, it does not elaborate on error behavior, output format, or any edge cases.
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?
Two concise sentences: the first states the action, the second states the purpose. No 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?
The tool is simple and the description covers what it does and when to use it. However, given the sibling read_local_file_chunk, it would benefit from explicitly stating that this tool is for whole small files only and that chunked reading is for larger files.
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?
Both parameters are fully described in the schema (100% coverage), so the description adds no new parameter semantics. The baseline of 3 applies.
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 verb 'Reads' and the resource 'entire content of a specific small sized file'. It distinguishes from the sibling read_local_file_chunk by emphasizing 'entire content' as opposed to chunked reads.
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 second sentence provides a clear use case: 'Crucial for understanding the full context of the code before writing documentation.' However, it does not explicitly mention when not to use it or point to the sibling read_local_file_chunk as an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_local_file_chunkRead Large File by Line RangeA
Reads a specific line range from a large file. Use startLine and endLine to fetch only the section you need, reducing memory usage and context size.
| Name | Required | Description | Default |
|---|---|---|---|
| endLine | Yes | Ending line number (1-indexed, inclusive) | |
| filePath | Yes | Relative file path to the file (e.g., src/index.ts) | |
| maxLines | No | Maximum lines to return per request. Defaults to 1000. | |
| repoPath | Yes | Github repository base path | |
| startLine | Yes | Starting line number (1-indexed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the behavior of reading a line range and the benefit of reducing memory and context. However, it does not mention error cases, inclusivity decisions (though schema covers it), or what the response contains, leaving some gaps.
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?
Two short sentences that front-load the purpose and quickly explain the usage. No filler or redundant information, making it easy to parse.
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 covers the essential purpose and usage pattern for a chunk-reading tool. Given the schema fully documents parameters and the tool is a simple read operation, it's reasonably complete. It could mention maxLines or response format, but those are less critical for this context.
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%, with each parameter described in the schema. The description highlights the role of startLine and endLine in fetching chunks, reinforcing the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
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 'Reads a specific line range from a large file' identifying the verb, resource, and scope. This distinguishes it from sibling tools like read_local_file which likely reads the entire file. The title also reinforces this.
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 explicitly instructs to use startLine and endLine to fetch only needed sections, implying its use case for large files to reduce memory and context. It doesn't explicitly contrast with alternatives or list when not to use, but the guidance is clear enough for selection.
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.
10 tool updates
v1.0.0- First observed
create_and_board_issue - First observed
fetch_all_issues - First observed
fetch_merged_prs - First observed
get_git_log - First observed
get_git_status - First observed
get_issue_comments - First observed
get_repo_structure - First observed
get-git-diff - First observed
read_local_file - First observed
read_local_file_chunk
TDQS
Most tools target clearly distinct resources or actions: log, status, diff, structure, file reading, issues, and PRs. Slight overlap exists between get_git_diff and get_git_status, but descriptions clarify the summary vs line-by-line difference. read_local_file and read_local_file_chunk are intentionally paired for whole vs chunk access.
The majority follow a verb_noun snake_case pattern (get_git_log, read_local_file, fetch_all_issues), but get-git-diff breaks the pattern with hyphens. Verbs also vary between get, read, fetch, and create, reducing predictability slightly.
Ten tools is well-scoped for a Git-oriented server, covering repository inspection, file reading, issues, and PRs without unnecessary bloat. Each tool has a clear role, and the count feels appropriate for the described workflows.
The server covers common read-heavy operations well (log, status, diff, structure, files) and includes issue listing/creation and merged PR fetching. However, notable gaps exist for a full Git workflow: no single-issue retrieval, no issue update/close, no PR creation, and no branch or commit detail tools. Minor workarounds are possible for documentation tasks, but some dead ends occur.
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
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Access the GitHub API, enabling file operations, repository management, search functionality, and…
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with local Git repositories for operations like status, commits, branching, and diffs, plus GitHub API integration for managing pull requests when authenticated.-
- FlicenseNot gradedqualityCmaintenanceEnables AI models to fetch GitHub repository information, read file contents, and search local documentation.-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to answer natural-language GitHub queries by listing repositories, issues, pull requests, branches, commits, and files, as well as performing writes with dry-run and confirmation safeguards.-
- AlicenseAqualityBmaintenanceConnects AI assistants to GitHub repositories, pull requests, issues, commits, and code search while enabling repository visibility controls, CI/CD monitoring, sandboxed local filesystem access, and code quality/security analysis.131MIT
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/EnesOzturk11/Git-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server