Back to Directory/Developer Tools

io.github.davidweb3-ctrl/github

GitHub MCP Server - List PRs, issues, repo info, and search code

Developer ToolsTypeScriptv1.0.0

GitHub MCP Server

npm version License: MIT

A Model Context Protocol (MCP) server for GitHub operations. This server enables AI assistants to interact with GitHub repositories through a standardized interface.

Features

  • ๐Ÿ” List & View Pull Requests - Browse PRs with filtering options
  • ๐Ÿ“‹ List & View Issues - Access issues with labels, assignees, and comments
  • ๐Ÿ“Š Repository Info - Get repository statistics and metadata
  • ๐Ÿ”Ž Code Search - Search code across GitHub repositories

Installation

npm install -g @bountyclaw/mcp-github-server

Configuration

Set your GitHub token as an environment variable:

export GITHUB_TOKEN=your_github_token_here

Or pass it when creating the client programmatically.

Usage with Claude Code

Add to your Claude Code MCP settings:

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@bountyclaw/mcp-github-server"],
      "env": {
        "GITHUB_TOKEN": "your_github_token_here"
      }
    }
  }
}

Available Tools

1. github_pr_list

List pull requests for a repository.

Input:

  • owner (string, required): Repository owner
  • repo (string, required): Repository name
  • state (enum, optional): Filter by state (open, closed, all)
  • head (string, optional): Filter by head branch
  • base (string, optional): Filter by base branch
  • sort (enum, optional): Sort field
  • direction (enum, optional): Sort direction
  • per_page (number, optional): Results per page (max 100)
  • page (number, optional): Page number

2. github_pr_view

View details of a specific pull request.

Input:

  • owner (string, required): Repository owner
  • repo (string, required): Repository name
  • pull_number (number, required): PR number
  • include_diff (boolean, optional): Include diff content

3. github_issue_list

List issues for a repository.

Input:

  • owner (string, required): Repository owner
  • repo (string, required): Repository name
  • state (enum, optional): Filter by state
  • labels (string, optional): Comma-separated label names
  • assignee (string, optional): Filter by assignee
  • creator (string, optional): Filter by creator
  • sort (enum, optional): Sort field
  • direction (enum, optional): Sort direction
  • per_page (number, optional): Results per page
  • page (number, optional): Page number

4. github_issue_view

View details of a specific issue.

Input:

  • owner (string, required): Repository owner
  • repo (string, required): Repository name
  • issue_number (number, required): Issue number
  • include_comments (boolean, optional): Include comments

5. github_repo_info

Get repository information and statistics.

Input:

  • owner (string, required): Repository owner
  • repo (string, required): Repository name

6. github_search_code

Search code across GitHub.

Input:

  • query (string, required): Search query (GitHub code search syntax)
  • sort (enum, optional): Sort field (indexed, best-match)
  • order (enum, optional): Sort order
  • per_page (number, optional): Results per page
  • page (number, optional): Page number

Example Queries

"List open PRs in facebook/react"
"Show me issue #123 in microsoft/vscode"
"Get info about the kubernetes/kubernetes repo"
"Search for 'useEffect' in TypeScript files"

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Lint
npm run lint

# Format
npm run format

Testing

The project includes comprehensive unit tests with 90%+ coverage:

  • GitHub API client tests
  • Tool handler tests for all 6 tools
  • Error handling tests
  • Input validation tests
npm test

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


Built with ๐Ÿฆž by BountyClaw

Installation

Source-derived launch command. Check the maintainerโ€™s required arguments and credentials before running:

bash
npx -y @davidweb3-ctrl/mcp-github-server

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-davidweb3-ctrl-github": {
      "command": "npx",
      "args": [
        "-y",
        "@davidweb3-ctrl/mcp-github-server"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the clientโ€™s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@davidweb3-ctrl/mcp-github-servernpm

Compatible MCP Clients

io.github.davidweb3-ctrl/github works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More