mcpField
G
GitHub MCP Server

GitHub MCP Server

Local
github.com/peterparker57Version Control0Updated 93w ago

About GitHub MCP Server

GitHub MCP Server connects MCP clients to GitHub for account, repository, file, and commit operations. It also supports directory synchronization and repository comparisons.

Key features

  1. 01Account selection and authentication
  2. 02Create and manage repositories
  3. 03Read, write, push, and pull files
  4. 04Synchronize local and remote directories
  5. 05Create and list commits
  6. 06Compare repositories and view diffs

Use cases

  1. 01Create or rename a GitHub repository
  2. 02Transfer files between local storage and GitHub
  3. 03Synchronize a local directory with a repository
  4. 04Review repository commits and differences

MCP support

Exposes GitHub account, repository, file, synchronization, and commit operations as tools for MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

GitHub MCP Server

A Model Context Protocol (MCP) server providing GitHub integration capabilities. This server enables interaction with GitHub repositories through MCP tools, supporting operations like repository management, file operations, and commit handling.

Features

  • Account management and authentication
  • Repository creation and management
  • File operations (read, write, push, pull)
  • Commit operations
  • Directory synchronization
  • Repository comparison and diffing

Installation

ash npm install @modelcontextprotocol/server-github

Configuration

Add the server to your MCP settings file (cline_mcp_settings.json):

json { "mcpServers": { "github": { "command": "node", "args": ["/path/to/github-mcp-server/dist/index.js"], "env": { "GITHUB_TOKEN_1": "your-github-token", "GITHUB_OWNER_1": "your-github-username" }, "disabled": false, "alwaysAllow": [] } } }

Available Tools

Account Management
list_accounts

List available GitHub accounts configured in the server.

select_account

Select a GitHub account to use for subsequent operations.

Repository Management
create_repository

Create a new GitHub repository.

ypescript { owner?: string; // Repository owner (optional if account selected) name: string; // Repository name description: string; // Repository description private?: boolean; // Whether repository is private }

clone_repository

Clone a GitHub repository to a local directory.

ypescript { owner?: string; // Repository owner repo: string; // Repository name branch?: string; // Branch name (default: main) outputDir: string; // Local directory to clone into }

rename_repository

Rename an existing GitHub repository.

ypescript { owner?: string; // Repository owner repo: string; // Current repository name new_name: string; // New repository name }

File Operations
push_file

Push a file to a GitHub repository.

ypescript { owner?: string; // Repository owner repo: string; // Repository name path: string; // Target path in repository message: string; // Commit message sourcePath: string; // Local file to push }

pull_file

Pull a file from a GitHub repository.

ypescript { owner?: string; // Repository owner repo: string; // Repository name path: string; // File path in repository outputPath: string; // Local path to save file }

sync_directory

Two-way sync between local and remote directories.

ypescript { owner?: string; // Repository owner repo: string; // Repository name path: string; // Directory path in repository localPath: string; // Local directory path }

Commit Operations
create_commit

Create a commit with multiple file changes.

ypescript { owner?: string; // Repository owner repo: string; // Repository name branch: string; // Branch name message: string; // Commit message changes: Array<{ path: string; // File path in repository sourcePath: string; // Local file path (for add/modify) operation: 'add' | 'modify' | 'delete'; }>; }

list_commits

List commits for a repository.

ypescript { owner?: string; // Repository owner repo: string; // Repository name branch?: string; // Branch name author?: string; // Filter by author since?: string; // ISO 8601 date - commits after until?: string; // ISO 8601 date - commits before }

Development

To build the server:

ash npm install npm run build

Environment Variables

  • GITHUB_TOKEN_: GitHub personal access token
  • GITHUB_OWNER_: GitHub username for the token
  • DEFAULT_OWNER: Default GitHub account to use

Multiple accounts can be configured by incrementing N (1, 2, etc.).

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.