github-mcp-lite
Provides tools for interacting with GitHub repositories, including reading files, searching code, managing pull requests, creating issues, and commenting on issues or PRs.
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., "@github-mcp-litelist open pull requests for my 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.
github-mcp-lite
A small Model Context Protocol server for GitHub — nine tools, PAT auth, stdio transport.
The official github/github-mcp-server covers a lot of ground (60+ tools). Handy for org admin and security workflows, but heavy if you mostly read files, scan PRs, and file issues. GitHub's been nudging people toward smaller tool sets for that reason (changelog, notes on token use).
This repo is the opposite end: fixed scope, short tool list, easy to skim before you plug it into an MCP host.
Install
git clone https://github.com/benjimkh/github-mcp-lite.git
cd github-mcp-lite
python3 -m venv .venv
source .venv/bin/activate
pip install -e .Run it:
export GITHUB_TOKEN=ghp_...
github-mcp-liteMCP client config (stdio):
{
"mcpServers": {
"github-mcp-lite": {
"command": "/absolute/path/to/github-mcp-lite/.venv/bin/github-mcp-lite",
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}Related MCP server: MCP GitHub CrunchTools
Tools
Tool | What it does |
| Metadata, default branch, visibility, star count |
| Code search ( |
| Read a file or list a directory at a ref |
| Open / closed / all PRs |
| Single PR with merge state and diff stats |
| Open a new issue |
| Comment on an issue or PR thread |
| Issues only (PRs filtered out) |
| Repo search |
No gists, notifications, or org settings — that's intentional.
Benchmark
Ballpark tool/schema footprint vs the official server:
python3 benchmark/measure_schema_size.pyBackground: docs/context-budget-guide.md.
This repo vs official github-mcp-server
github-mcp-lite | official server |
Few repos, everyday PR/issue work | Org admin, security, Dependabot |
Short tool list you can read in a minute | Actions, Projects, Discussions, etc. |
PAT + stdio | Copilot OAuth integration |
License
MIT — see LICENSE. PRs welcome; see CONTRIBUTING.md.
Available Tools
9 toolscomment_on_issueC
Add a comment to an issue or pull request.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| repo | Yes | ||
| number | Yes | ||
| body | 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 provided, the description must disclose all behavioral traits. It only states that a comment is added, but does not mention authentication requirements, whether comments can be edited, or any side effects. The write nature is implied but not detailed.
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 but overly terse. It could benefit from additional structure or details 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 tool has an output schema and no annotations, the description should cover what the return value represents (e.g., the created comment object) and any error conditions. It does not, leaving the agent to infer from the schema alone.
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 offers no information about any of the four parameters (owner, repo, number, body). The input schema has 0% description coverage, so the description should compensate, but it fails to add any semantic meaning beyond the parameter names.
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 ('Add a comment') and the resource ('issue or pull request'), providing a specific verb-resource pair. It distinguishes the tool from siblings like 'create_issue' by focusing on commenting rather than creation.
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 given on when to use this tool versus alternatives such as 'get_pull_request' or 'list_issues'. There are no prerequisites, exclusions, or conditional usage notes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issueC
Create an issue. labels is a comma-separated list.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| repo | Yes | ||
| title | Yes | ||
| body | No | ||
| labels | 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 carry the full burden. It only mentions that labels is a comma-separated list. No details on side effects, required permissions, or operation guarantees are given.
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 short and front-loaded, but it sacrifices necessary detail. While concise, it is under-specified for a tool with five parameters and no schema descriptions.
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 lack of annotations, zero schema descriptions, and multiple parameters, the description is severely inadequate. It does not cover return values (despite an output schema), usage contexts, or parameter relationships.
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 only clarifies the 'labels' parameter format. The other four parameters (owner, repo, title, body) receive no explanatory text, leaving the agent to infer meaning 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 action ('Create an issue') and the resource. It is direct and unambiguous, though it does not differentiate from sibling tools like comment_on_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, nor are there any prerequisites, exclusions, or context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_contentsA
Read a file or list a directory. Optional ref (branch, tag, sha).
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| repo | Yes | ||
| path | Yes | ||
| ref | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It only states non-destructive read/list behavior and optional ref, but lacks details on auth requirements, rate limits, return format, or 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?
Extremely concise, front-loaded with action, no filler or repetition.
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 an output schema, return values don't need explanation. The description covers the core functionality, though it could clarify the difference between reading a file and listing a directory.
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%, but description adds meaning for 'ref' (branch, tag, sha). However, 'owner' and 'repo' are not explained. Partial compensation.
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 ('read a file or list a directory') and the resource (file/directory in a repo). It distinguishes from sibling tools which are about issues, PRs, repos, and search.
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 when-to-use or when-not-to-use guidance, but the sibling tools are sufficiently different that usage is implied. Missing alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pull_requestA
Fetch one pull request with merge state and diff stats.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| repo | Yes | ||
| 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 partially carries the burden by mentioning return content (merge state, diff stats), but doesn't disclose safety, error cases, or other behavioral aspects.
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 redundancy, efficient communication of core functionality.
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?
Output schema exists, reducing need for return value explanation, but the description lacks details on rate limits, authentication, or edge cases; adequate for a simple fetch tool.
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 additional meaning to the parameters (owner, repo, number) beyond their names, which are self-explanatory but still lack elaboration.
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 'Fetch one pull request with merge state and diff stats', using a specific verb and resource, and distinguishing it from listing multiple PRs.
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 or alternatives; it's implied that this is for a single PR vs. list_pull_requests, but no when-not-to-use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_repoC
Repository metadata: branch, visibility, stars, description.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| repo | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose that this is a read-only operation, any authentication requirements, rate limits, or other behavioral traits essential for an AI 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?
Single sentence, front-loads the purpose, lists key fields. No extraneous text, but could be improved with a verb like 'Retrieves'.
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 presence of output schema, the description is too sparse. It omits usage context, parameter details, and behavioral traits, leaving gaps for an AI agent to safely invoke the tool.
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 for the parameters 'owner' and 'repo'. While the names are self-explanatory, the description fails to specify their expected formats or any constraints 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?
Description states 'Repository metadata' and lists specific fields (branch, visibility, stars, description), clearly indicating the tool retrieves repo-level information. It distinguishes from siblings like get_file_contents or list_issues which have different scopes.
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. The description does not mention prerequisites, when not to use, or any filtering capabilities.
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 only. state is open, closed, or all.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| repo | Yes | ||
| state | No | open | |
| per_page | 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 only,' which is a basic read operation. It does not disclose any behavioral traits like authentication requirements, rate limits, or that it is non-destructive.
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 concise (one sentence) and front-loaded with the purpose. Every word is useful, though it could be slightly expanded for completeness.
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 4 parameters, no annotations, and no schema descriptions, the description is too brief. It fails to provide necessary context for most parameters and does not leverage the presence of an output schema to explain return values.
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?
With 0% schema description coverage, the description must explain parameters but only does so for state ('open, closed, or all'). It adds no meaning to owner, repo, or per_page, which are left entirely to 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 explicitly states 'List issues only' with a specific verb and resource, and the sibling tools (e.g., create_issue, comment_on_issue) are clearly different operations, distinguishing this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (listing issues) but provides no explicit guidance on when to use this tool versus alternatives like list_pull_requests 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_pull_requestsC
List pull requests. state is open, closed, or all.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| repo | Yes | ||
| state | No | open | |
| per_page | 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 provided, the description carries the full burden of disclosure. It only states the basic function and a parameter option, without mentioning pagination (despite per_page parameter), rate limits, or return format. The output schema exists but is not described.
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 (two sentences) and front-loaded, but it is overly minimal. While conciseness is valued, it sacrifices essential detail, making it less useful than it could be.
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 4 parameters, 2 required, and an output schema, but the description covers none of these in depth. It lacks information on pagination, required fields, and response structure, making it incomplete for effective agent use.
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 only adds meaning to the 'state' parameter by listing its possible values. The required parameters 'owner' and 'repo' are not explained, and 'per_page' is omitted. This is insufficient compensation for the low 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 'List pull requests,' which is a specific verb-resource combination. However, it does not differentiate from sibling tools like 'get_pull_request' (for a single PR) or 'list_issues' (for issues), missing an opportunity to clarify scope.
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 mentions the 'state' parameter options but provides no guidance on when to use this tool versus alternatives such as 'get_pull_request' for a single PR or 'list_issues' for issues. No exclusions or contexts are given.
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. Example: repo:owner/name TODO.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| per_page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It fails to disclose pagination, rate limits, or result format. The example is incomplete, offering little beyond the name.
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?
Very short but under-specified. The placeholder 'TODO' makes it less concise. It omits essential information, reducing effectiveness despite brevity.
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 an output schema, the description lacks details on query syntax and expected results. Given sibling tools, more context is needed to differentiate usage.
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%, and the description adds no meaning to parameters. The 'query' parameter lacks syntax details, and 'per_page' is not explained. Example is incomplete.
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 'Search code' which clearly identifies the resource and action. It distinguishes from sibling tool 'search_repositories' by focusing on code. However, the example is incomplete with 'TODO', and the description lacks detail on scope.
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_repositories'. The example hints at a query format but does not clarify 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 repositories using GitHub query syntax.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| per_page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description mentions no behavioral traits (e.g., read-only, rate limits) beyond the basic action.
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, brief, but overly sparse; could provide more context without sacrificing 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?
With 0% schema coverage and no annotations, the description is incomplete; should elaborate on parameters 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%; description adds minimal meaning, only hinting at query syntax but not explaining per_page.
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 searches repositories using GitHub query syntax, specific verb+resource, and distinguishes from sibling tools like search_code.
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 or list_repos; lacks explicit context.
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.
9 tool updates
v0.1.0- First observed
comment_on_issue - First observed
create_issue - First observed
get_file_contents - First observed
get_pull_request - First observed
get_repo - 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: issues, pull requests, repos, files, and search. No overlap in functionality; e.g., list_issues vs list_pull_requests are clearly separated.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_issue, get_repo, search_code), making it predictable for an agent.
With 9 tools, the server is well-scoped for a 'lite' GitHub MCP, covering essential operations without being bloated or too sparse.
The tool set covers read operations extensively (get, list, search) and create for issues, but lacks update/delete for issues and PR creation/update, which are notable gaps for common 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
Create, deploy, and operate MCP servers directly from your GitHub repositories.
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseCqualityCmaintenanceA production-ready MCP server for GitHub operations, providing tools for repository management, issues, pull requests, and more via both MCP stdio and REST API.27MIT
- AlicenseAqualityBmaintenanceA secure MCP server for interacting with GitHub issues, pull requests, repository files, and search, supporting both github.com and GitHub Enterprise Server.11AGPL 3.0
- AlicenseNot gradedqualityAmaintenanceA minimal MCP server that enables creating GitHub repositories, committing files, and publishing releases using just a personal access token, without Docker or local Git.2MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for GitHub operations, providing tools for repository management, issues, pull requests, and code search.-
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/benjimkh/github-mcp-lite'
If you have feedback or need assistance with the MCP directory API, please join our Discord server