Skip to main content
Glama
hampannagouda

github-mcp-server

README.md
# GitHub MCP Server (Local)

A local MCP server that gives Claude Desktop direct access to your GitHub account
via a personal access token. Runs entirely on your machine — your token never
leaves your computer except to talk to GitHub's API directly.

## Tools included

- `github_whoami` — get the authenticated user's profile
- `github_list_repos` — list your repos
- `github_get_repo` — get details on a specific repo
- `github_search_repos` — search repositories
- `github_get_file` — read a file's contents from a repo
- `github_list_issues` — list issues in a repo
- `github_create_issue` — create an issue
- `github_list_pull_requests` — list PRs in a repo
- `github_search_code` — search code across GitHub
- `github_list_commits` — list commits in a repo (filter by branch, path, or author)
- `github_get_commit` — get a single commit with changed files and diff stats
- `github_list_branches` — list branches in a repo
- `github_get_issue` — get full details of a single issue
- `github_get_pull_request` — get full details of a single PR
- `github_list_pr_files` — list files changed in a PR
- `github_add_issue_comment` — comment on an issue or PR
- `github_search_issues` — search issues and PRs across GitHub

## 1. Prerequisites

- Node.js 18+ installed on your computer
- A GitHub Personal Access Token (PAT)

### Create a GitHub token

1. Go to https://github.com/settings/tokens
2. Click **Generate new token** → **Fine-grained token** (recommended) or classic token
3. Give it a name, an expiration, and scopes:
   - Fine-grained: grant access to the repos you want, with **Contents** (read),
     **Issues** (read/write), **Pull requests** (read) permissions
   - Classic: the `repo` scope covers everything above
4. Copy the token (starts with `github_pat_` or `ghp_`) — you won't see it again

**Keep this token secret.** Anyone with it can act as you on GitHub within its scopes.

## 2. Install

Unzip this project anywhere on your computer, then in a terminal:

```bash
cd github-mcp-server
npm install
npm run build
```

This produces a `dist/index.js` file — that's what Claude Desktop will run.

## 3. Configure Claude Desktop

Open your Claude Desktop config file:

- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

Add an entry under `mcpServers` (create the file/section if it doesn't exist),
using the **absolute path** to `dist/index.js`:

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

Replace the path and token with your own values.

## 4. Restart Claude Desktop

Fully quit and reopen the app. You should see a small tools/plug icon indicating
the "github" MCP server is connected, and its tools will be available in chat.

## Notes

- This server only runs while Claude Desktop is open — it starts/stops the process for you.
- To revoke access at any time, delete the token at https://github.com/settings/tokens.
- To add more capabilities (e.g. creating PRs, managing branches), extend `src/index.ts`
  with additional `server.tool(...)` calls using the [Octokit REST API](https://octokit.github.io/rest.js/).

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct resource and action: user identity, code search, repo listing/detail/search, file retrieval, issue listing/creation, and pull request listing. There is no overlap or ambiguity between tools.

Naming Consistency5/5

All tools follow a consistent `github_` prefix with snake_case naming and a verb_noun pattern (search_code, list_repos, get_repo, create_issue). The `whoami` tool slightly deviates from the noun structure but remains a recognizable verb, so the overall pattern is highly predictable.

Tool Count5/5

With 9 tools, the server is well-scoped for a GitHub integration, covering common read operations (user, search, repos, files, issues, PRs) and a couple of write operations (create issue). The count feels intentional and not bloated.

Completeness4/5

The server covers the core GitHub browsing and searching workflow, including user identity, repository list/search/detail, file content, and issue list/create. Minor gaps exist such as lacking PR creation/update, issue update/delete, and repository creation, but these are not critical for a read-oriented utility.

Maintenance

ActivitySlowing
ResponsivenessNo issues