Supports containerized deployment through Docker, allowing for consistent and isolated runtime environments with configurable parameters.
Processes GitHub webhooks and events, providing real-time integration with GitHub repositories, including OAuth authentication and event handling for repository actions.
Utilizes MongoDB for data storage and management, supporting the server's context processing capabilities between GitHub repositories and AI models.
Built on Node.js to enable the event-driven architecture that handles repository actions and AI model communications.
Uses pnpm for dependency management, ensuring efficient package installation and consistent dependency resolution.
Implemented in TypeScript for type-safe development of the server's controllers and API endpoints.
GitHub MCP SSE Server
A Model Context Protocol (MCP) server that provides GitHub API integration through Server-Sent Events (SSE) transport.
Features
- GitHub API integration through MCP tools
- Support for issues, pull requests, repositories, and more
- Server-Sent Events (SSE) transport for real-time communication
- Multiplexing SSE transport for handling multiple client connections
- Modern Streamable HTTP and legacy SSE transport support
- Automatic port finding if the specified port is in use
- Graceful shutdown handling for clean server termination
- Configurable timeouts, CORS settings, and logging levels
- Robust error handling and detailed logging
Prerequisites
- Node.js (v16 or higher)
- npm or pnpm
- GitHub Personal Access Token (for API access)
Installation
- Clone the repository:
- Install dependencies:
- Create a
.env
file in the root directory with the following content: - Build the project:
Usage
Starting the Server
The server will start on the port specified in the .env
file (default: 3200). If the port is in use, it will automatically find an available port.
Development Mode
This will build the TypeScript code and start the server.
Docker
You can also run the server using Docker:
This command:
- Runs the container in detached mode (
-d
) - Maps port 3200 on the host to port 3200 in the container
- Sets all the environment variables with their default values
- Names the container "github-see-mcp-server"
Connecting with Claude
To connect to this MCP server with Claude, add the following configuration to your Claude session:
Replace {Your domain}
with your actual domain where the server is running.
API Endpoints
/health
- Health check endpoint that returns server status and version information/mcp
- Modern MCP Streamable HTTP endpoint for efficient bidirectional communication/sse
- Server-Sent Events endpoint for legacy clients (establishes SSE connection)/messages
- Message endpoint for legacy SSE clients (for sending messages to the server)
The server supports both modern and legacy communication methods:
- Modern Streamable HTTP (
/mcp
): Recommended for new implementations, providing efficient bidirectional communication - Legacy SSE (
/sse
and/messages
): For backward compatibility with older clients
Available GitHub Tools
The server provides the following GitHub API tools:
Issues
get_issue
- Get details of a specific issueget_issue_comments
- Get comments for a GitHub issuecreate_issue
- Create a new issue in a GitHub repositoryadd_issue_comment
- Add a comment to an issuelist_issues
- List and filter repository issuesupdate_issue
- Update an issue in a GitHub repositorysearch_issues
- Search for issues and pull requests
Pull Requests
get_pull_request
- Get details of a specific pull requestlist_pull_requests
- List and filter repository pull requestsmerge_pull_request
- Merge a pull requestget_pull_request_files
- Get the list of files changed in a pull requestget_pull_request_status
- Get the combined status of all status checks for a pull requestupdate_pull_request_branch
- Update a pull request branch with the latest changes from the base branchget_pull_request_comments
- Get the review comments on a pull requestget_pull_request_reviews
- Get the reviews on a pull requestcreate_pull_request_review
- Create a review on a pull requestcreate_pull_request
- Create a new pull requestadd_pull_request_review_comment
- Add a review comment to a pull requestupdate_pull_request
- Update an existing pull request
Repositories
create_file
- Create a single file in a repositoryupdate_file
- Update a single file in a repositorylist_branches
- List branches in a GitHub repositorypush_files
- Push multiple files in a single commitsearch_repositories
- Search for GitHub repositoriescreate_repository
- Create a new GitHub repositoryget_repository_info
- Get information about a GitHub repositoryget_user_repositories
- Get information about a GitHub user's repositoriesget_file_contents
- Get the contents of a file in a GitHub repositorycreate_fork
- Create a fork of a GitHub repositorycreate_branch
- Create a new branch in a GitHub repositoryget_branch_info
- Get information about a branch in a GitHub repositorylist_commits
- Get a list of commits of a branch in a repositoryget_commit
- Get details for a commit from a repositoryget_specific_commit
- Get details for a specific commit from a repository
User
get_me
- Get details of the authenticated user
Troubleshooting
Connection Issues
If you're experiencing connection issues:
- Check that the GitHub token is valid and has the necessary permissions
- Ensure the server is running and accessible
- Check the server logs for any error messages
- Verify that the client is connecting to the correct endpoint
- Check if there are any network issues or firewalls blocking the connection
Timeout Errors
If you're experiencing timeout errors:
- Increase the
MCP_TIMEOUT
value in the.env
file - Check if the GitHub API is responding slowly
- Verify that the client is not sending too many requests
Logging and Debugging
The server supports different logging levels that can be set in the .env
file:
debug
- Verbose logging for detailed debugginginfo
- Standard logging for general operation information (default)warn
- Only warnings and errorserror
- Only error messages
To enable more detailed logging for troubleshooting:
This will provide more detailed information about requests, responses, and internal operations.
License
MIT
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A server-side implementation that handles context processing between GitHub repositories and AI models, enabling seamless integration of AI capabilities with codebases through the Model Context Protocol.
Related MCP Servers
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI models to interact with GitHub's API, allowing for repository creation and management with descriptions, topics, and website URLs through natural language commands.Last updated -1
- -securityFlicense-qualityA Model Context Protocol server that enables AI assistants to perform GitHub operations including repository management, file operations, issue tracking, and pull request creation.Last updated -1
- AsecurityAlicenseAqualityEnables AI models to access GitHub repository contents as context, with features to fetch entire repositories, specific file contents, and repository structures for use in AI interactions.Last updated -32MIT License
- -securityAlicense-qualityAn advanced Model Context Protocol server that integrates GitHub repositories with Google Gemini AI to provide intelligent code assistance, analysis, and repository management operations.Last updated -MIT License