# github-mcp [Health: Active]

**Category:** 🔄 Version Control  
**Repository:** https://github.com/Seey215/github-mcp  
**GitHub Stars:** 2  
**npm Downloads (last month):** 497  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/github-mcp-2

## Description
GitHub MCP Server with OAuth support for Issue management

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "github-mcp": {
    "command": "npx",
    "args": ["-y","github-mcp"]
  }
}
```

## Documentation

## What github-mcp does

github-mcp exposes GitHub issue operations through the Model Context Protocol. Its available functionality covers listing issues for a selected repository and retrieving complete information for one issue. List requests identify a repository with its owner and name, and can optionally filter by `open` or `closed` state; open issues are the default.

Returned issue data includes the issue number, title, body, state, creator, creation and update timestamps, and the GitHub web URL. The server is focused on reading issue information. Issue creation, label changes, comments, pull request management, GitHub Actions, and analytics are described as planned additions rather than available capabilities.

## How it works

The core `GitHubMCPServer` class registers MCP tools and sends requests to the GitHub REST API. It can connect through the MCP SDK's `StdioServerTransport`, which is suitable for desktop and command-line MCP clients, or through the Hono-based streamable HTTP transport.

The HTTP mode serves the `/mcp` endpoint for POST, GET, and DELETE requests. It handles CORS and maintains server-sent event streams for ongoing messaging. Both transports use the same server logic, so the tools and configuration model remain consistent when changing transports.

Authentication is lazy: the process can start without a token, but a GitHub credential is needed when a tool calls the GitHub API. The default API base is GitHub's public API endpoint, and the implementation also supports an alternate API base and API version through programmatic configuration.

## Setup and configuration

Install the package locally or globally with npm:

```bash
npm install github-mcp
```

Start the default stdio server after setting a personal access token:

```bash
export GITHUB_ACCESS_TOKEN="your_github_token_here"
npx github-mcp
```

The setup instructions use a GitHub classic personal access token with the `repo` permission. For HTTP transport, run:

```bash
npx github-mcp streamableHttp
```

You can also select that transport and set its port through environment variables:

```bash
MCP_TRANSPORT=streamableHttp STREAMABLE_HTTP_PORT=3001 npx github-mcp
```

When used as a library, construct `GitHubMCPServer` with options such as `token`, `apiBase`, `apiVersion`, `serverName`, and `serverVersion`, then connect it to an MCP transport. Constructor values take precedence over environment settings, followed by defaults.

Claude Desktop can launch the package with `npx -y github-mcp` and pass `GITHUB_ACCESS_TOKEN` in the MCP server's `env` configuration. Continue is also identified as a compatible MCP client.

## Tools and capabilities

- `list_issues`: queries issues for a specified repository using `owner` and `repo` values.
- Issue-state filtering: accepts `open` or `closed`, defaulting to open issues.
- Issue details: provides full information for a single issue.
- Stdio transport: connects through the MCP SDK's standard input/output transport.
- Streamable HTTP transport: exposes `/mcp` through a Hono server with CORS and SSE support.
- Configurable GitHub API access: supports token, API base, API version, and server identity settings.

## Limitations and notes

The available feature set is centered on issue retrieval. Creating issues, managing labels, commenting, pull request operations, GitHub Actions control, and analytics are listed as future work, so workflows requiring those operations should not depend on them being available.

A GitHub token is not needed merely to start the process, but API calls require authentication. The documented token setup uses the classic-token `repo` permission, so credential scope should be reviewed before deploying the server in a shared or automated environment.

The package can be used directly as a Node.js library as well as launched with `npx`. The HTTP transport requires a client that can connect to the `/mcp` endpoint, while stdio requires an MCP client capable of starting the configured command.

_Full upstream README: https://allmcps.com/mcp/github-mcp-2/readme_

