GitHub MCP Server in Go
An unofficial implementation of an mcp server for github in go. Used internally at Metoro.
metoro-io
README
GitHub MCP Server in Go
A Go implementation of the GitHub Model Context Protocol (MCP) server. This implementation allows AI assistants to interact with the GitHub API to perform operations such as creating repositories, managing branches, manipulating files, and more.
Prerequisites
- Go 1.21 or higher
- A GitHub personal access token with appropriate permissions
Installation
go get github.com/metoro-io/github-mcp-server-go
Authentication
The server supports two methods of authentication:
Environment Variable Authentication
Set your GitHub personal access token as an environment variable:
export GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token
HTTP Header Authentication
The server can also extract authentication tokens from HTTP requests. You can pass your GitHub token via the Authorization header:
Authorization: Bearer your_github_token
or simply:
Authorization: your_github_token
Context Passthrough
For HTTP handlers, the server supports both:
- The standard
http_request
context value for HTTP requests. - The
ginContext
value when using the Gin framework.
This enables seamless integration with different web frameworks while maintaining a consistent authentication mechanism.
Usage
-
Set your GitHub personal access token (as described in the Authentication section).
-
Run the server:
go run main.go
Available Tools
The server provides the following tools:
- search_repositories: Search for GitHub repositories
- create_repository: Create a new GitHub repository in your account
- fork_repository: Fork a GitHub repository to your account or specified organization
- create_branch: Create a new branch in a GitHub repository
- get_file_contents: Get the contents of a file or directory from a GitHub repository
- create_or_update_file: Create or update a single file in a GitHub repository
- push_files: Push multiple files to a GitHub repository in a single commit
- create_issue: Create a new issue in a GitHub repository
- get_issue: Get details of a specific issue in a GitHub repository
- list_issues: List issues in a GitHub repository with filtering options
- update_issue: Update an existing issue in a GitHub repository
- add_issue_comment: Add a comment to an existing issue
- list_commits: Get list of commits of a branch in a GitHub repository
- search_code: Search for code across GitHub repositories
- search_issues: Search for issues and pull requests across GitHub repositories
- search_users: Search for users on GitHub
Development
Project Structure
main.go
: Entry point for the applicationcommon/
: Common utilities and error handlingoperations/
: GitHub API operations implementationtools/
: MCP tool definitions and handlers
Building from Source
go build -o github-mcp-server
Running Tests
go test ./...
License
This project is licensed under the MIT License.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.