Skip to main content
Glama
neural-shubh

personal-github-mcp

by neural-shubh

personal-github-mcp

A minimal, personal MCP server that gives Claude (via Claude Code or Claude Desktop) full read/write access to the GitHub REST API, using your own Personal Access Token (PAT) — no third-party app permissions, no 403s from a shared connector's scopes.

It exposes one tool, github_request, that can call any GitHub REST API endpoint with any HTTP method (GET, POST, PATCH, PUT, DELETE). That covers everything: creating issues, commenting, merging PRs, creating/ updating files, branches, releases, labels, workflows — the full API at https://docs.github.com/en/rest.

1. Create a GitHub Personal Access Token

  1. Go to https://github.com/settings/tokens?type=beta (fine-grained token, recommended) or https://github.com/settings/tokens (classic).

  2. Fine-grained token: scope it to your account, pick "Only select repositories" (or all, if you want), and under Repository permissions grant at least:

    • Contents: Read and write

    • Issues: Read and write

    • Pull requests: Read and write

    • Metadata: Read-only (required)

  3. Classic token: just check the repo scope.

  4. Copy the token — you won't see it again.

Related MCP server: Git Workflow Automation MCP Server

2. Install dependencies

cd github-mcp-server
npm install

3. Configure your MCP client

Claude Code

Add to your Claude Code MCP config (~/.claude.json or via claude mcp add):

claude mcp add personal-github -- node /absolute/path/to/github-mcp-server/index.js

Then set the token as an environment variable before launching, or add it directly to the config's env block:

{
  "mcpServers": {
    "personal-github": {
      "command": "node",
      "args": ["/absolute/path/to/github-mcp-server/index.js"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

Claude Desktop

Edit your claude_desktop_config.json (Settings → Developer → Edit Config) and add the same mcpServers block as above, then restart Claude Desktop.

4. Use it

Once connected, ask Claude things like:

  • "Create an issue in neural-shubh/dark-fleet-detection titled X with body Y"

  • "List my open pull requests across all repos"

  • "Update the README.md in neural-shubh/mediscan-ai"

Claude will call github_request with the right method/path/body — e.g. POST /repos/neural-shubh/dark-fleet-detection/issues with {"title": "...", "body": "..."}.

Security notes

  • The token lives only in your local MCP config / environment — it's never sent anywhere except api.github.com.

  • Scope the token as narrowly as you're comfortable with (fine-grained, select repos only) since this server will honor whatever the token allows.

  • This server does not implement any allow/deny tool policy of its own — the token's scopes are the only guardrail. If you want to restrict it further (e.g. read-only, or single-repo-only) that's easy to add — just ask.

Available Tools

1 tool
github_requestGitHub API RequestA

Make an authenticated request to any GitHub REST API v3 endpoint (read or write). Use this for everything: listing/creating/updating repos, issues, pull requests, comments, files (create_or_update via PUT /repos/{owner}/{repo}/contents/{path}), branches, releases, labels, workflows, etc. Full API reference: https://docs.github.com/en/rest. Path must start with '/' and be relative to https://api.github.com (e.g. '/repos/OWNER/REPO/issues'). For GET requests with query params, either append them to path as a query string or pass query. For write requests (POST/PATCH/PUT/DELETE), pass a JSON-serializable object as body.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoOptional JSON request body, used for POST/PATCH/PUT requests.
pathYesAPI path relative to https://api.github.com, starting with '/'. Example: '/repos/neural-shubh/dark-fleet-detection/issues'
queryNoOptional query string parameters as key/value pairs.
methodYesHTTP method to use.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing behavior. It covers authentication ('authenticated request'), read/write capability, path format requirements, query param placement, and body requirements for write requests. However, it does not mention rate limits, error responses, or pagination behavior, which would be valuable for such a generic API client.

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 six sentences long, each earning its place: purpose, use cases, API reference link, path rule, query handling, and body handling. It is front-loaded with the core purpose and avoids fluff, making it highly scannable.

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?

The tool is complex (generic REST client) with no output schema or annotations. The description comprehensively covers path construction, query/body usage, and links to full API docs. However, it omits explicit description of the return format (likely the GitHub API response) and error behavior, though these are inferable from the API reference link and the tool's nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds contextual meaning: it gives a concrete path example, explains the choice between appending query params to the path vs using the query object, and clarifies that body must be a JSON-serializable object. This enriches the schema descriptions without redundancy.

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 function: 'Make an authenticated request to any GitHub REST API v3 endpoint (read or write).' It also enumerates specific use cases (repos, issues, PRs, etc.), making the scope unmistakable. This is a specific verb+resource description that fully distinguishes the tool's generic nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs 'Use this for everything: listing/creating/updating repos, issues, pull requests, comments, files...' and provides practical guidance on constructing paths, handling query parameters, and passing body payloads. Since there are no sibling tools, it clearly positions this as the universal GitHub API access tool.

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. 1 tool updatev1.0.0
    • First observedgithub_request

TDQS

A4.6/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion between different tools. The tool's purpose as a generic GitHub API request handler is clear and unambiguous.

Naming Consistency5/5

The single tool name 'github_request' directly describes its function. Since there is only one tool, there is no inconsistent naming pattern to evaluate.

Tool Count3/5

A single tool is on the lower end of the spectrum and feels thin for a GitHub MCP server. However, the tool is powerful and comprehensive, so it is not trivial, but it places a heavy burden on the agent to know the API specifics.

Completeness5/5

The tool claims to cover any GitHub REST API endpoint, making it functionally complete for the domain. It supports all HTTP verbs and includes query parameters and body handling, so no obvious operations are missing.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

  • F
    license
    C
    quality
    D
    maintenance
    Provides tools for mapping and analyzing GitHub repositories. It allows users to set a GitHub Personal Access Token and retrieve detailed information about a specified repository, including its structure and summary statistics.
    2
    25
    -
  • F
    license
    C
    quality
    D
    maintenance
    Provides automated Git workflow tools for committing, creating pull requests, and merging with proper GitHub authentication handling. Supports complete Git workflows from commit to merge with dry run capabilities and conventional commit formatting.
    4
    1
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables access to GitHub repositories and data through the GitHub API. Supports retrieving repositories, issues, pull requests, and searching code across GitHub with authentication via personal access tokens.
    -

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/neural-shubh/personal-github-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server