github-mcp-lite
Allows creating and managing GitHub repositories, committing files in a single commit, publishing releases, and deleting repositories via the GitHub REST API.
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-litecreate a new public repository named hello-world"
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 minimal MCP (Model Context Protocol) server for creating GitHub repositories, committing files, and publishing releases using a plain Personal Access Token (PAT).
No Docker, no local Git installation, and no GitHub Copilot subscription
required — unlike the hosted api.githubcopilot.com/mcp/
server, which gates access
behind a Copilot entitlement. This server talks directly to the regular
GitHub REST API (api.github.com) over plain fetch, so it's a single
dependency-light file you can read top to bottom in a few minutes.
Table of Contents
Related MCP server: Git PR MCP Server
Why this exists
Most MCP GitHub integrations either require a full local git toolchain, a
Docker container, or a Copilot-gated hosted endpoint. github-mcp-lite is
for cases where you just want an AI assistant to be able to:
spin up a new repo,
push a batch of files to it in one commit, and
tag a release,
using nothing but a token you already have.
Tools
Tool | Description | Destructive? |
| Return the login/profile for the account owning the configured token. | No |
| Create a repo owned by the authenticated user. Auto-initialized with a README so a default branch exists immediately. | No |
| Create or update one or more text files in a single commit. | Yes (overwrites file contents) |
| Publish a tagged GitHub release. | No |
| Permanently delete a repository. Requires the | Yes, irreversible |
Each tool is annotated with readOnlyHint / destructiveHint /
openWorldHint metadata so MCP clients can surface appropriate confirmation
prompts.
get_authenticated_user
No input. Returns { login, html_url, name } for the token's owner.
create_repository
Param | Type | Required | Notes |
| string | yes | Repository name |
| string | no | Repository description |
| boolean | no | Defaults to |
Returns { full_name, html_url, clone_url, default_branch }.
commit_files
Param | Type | Required | Notes |
| string | yes | Repository owner |
| string | yes | Repository name |
| string | no | Defaults to the repo's default branch |
| string | yes | Commit message |
| array of | yes | UTF-8 text content only; at least one file |
Internally this creates blobs, a tree, and a commit via the Git Data API,
then fast-forwards the branch ref — so it's a real single commit, not one
commit per file. Returns { commit_sha, html_url, files_changed }.
create_release
Param | Type | Required | Notes |
| string | yes | Repository owner |
| string | yes | Repository name |
| string | yes | e.g. |
| string | no | Release title |
| string | no | Release notes (Markdown) |
| string | no | Branch or commit SHA to tag; defaults to the default branch |
| boolean | no | Defaults to |
| boolean | no | Defaults to |
Returns { html_url, id, tag_name }.
delete_repository
Param | Type | Required | Notes |
| string | yes | Repository owner |
| string | yes | Repository name |
Permanently deletes the repository. Returns { deleted: true, full_name }.
Requires a classic PAT with the delete_repo scope — fine-grained tokens
generally cannot delete repositories.
Installation
Prerequisites
Node.js 18+ (for native
fetchsupport)A GitHub Personal Access Token with the
reposcope (adddelete_repotoo if you want to usedelete_repository)
Note: Repository creation isn't reliably supported by fine-grained PATs, so a classic token is recommended.
Clone and install dependencies
git clone https://github.com/MatinMHF/github-mcp-lite.git
cd github-mcp-lite
npm installConfigure your token
The server reads the token from either GITHUB_PERSONAL_ACCESS_TOKEN or
GITHUB_TOKEN in its environment. Set one of these before it starts — the
process exits immediately with an error if neither is present.
Usage
Run directly
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxx node index.jsThe server communicates over stdio, so it's meant to be launched by an MCP client (Claude Code, Claude Desktop, etc.), not run interactively on its own.
Register with Claude Code
claude mcp add github-lite -s user -e GITHUB_PERSONAL_ACCESS_TOKEN=<your_token> -- node /path/to/index.jsOn Windows PowerShell, quote the separator as "--" — PowerShell silently
strips a bare -- before it reaches the script's arguments, which breaks
argument parsing:
claude mcp add github-lite -s user -e GITHUB_PERSONAL_ACCESS_TOKEN=<your_token> "--" node "C:/path/to/index.js"Register with Claude Desktop (or any MCP-compatible client)
Add an entry to your client's MCP server config (e.g.
claude_desktop_config.json):
{
"mcpServers": {
"github-lite": {
"command": "node",
"args": ["C:/path/to/github-mcp-lite/index.js"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
}
}
}
}Example workflow
A typical session once the server is registered with your MCP client:
"Who am I authenticated as?" → calls
get_authenticated_user"Create a public repo called
my-project" → callscreate_repository(auto-initializes with a README so a default branch exists)"Commit these files to it" → calls
commit_fileswith an array of{ path, content }entries, written in a single commit"Publish a v1.0.0 release" → calls
create_release
Security notes
The token is read once from the environment at startup and never logged.
commit_filesanddelete_repositoryare markeddestructiveHint: truein their tool annotations — well-behaved MCP clients should prompt for confirmation before invoking them.Because this server has
openWorldHint: trueon every tool (it makes real network calls toapi.github.com), only run it with a token scoped to what you actually need.
Contributing
See CONTRIBUTING.md for guidelines. This project follows a Code of Conduct. To report a security issue, see SECURITY.md.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/MatinMHF/github-mcp-lite'
If you have feedback or need assistance with the MCP directory API, please join our Discord server