GitHub MCP Server

# GitHub MCP Server A Model Context Protocol (MCP) server that provides tools for interacting with GitHub's API. Currently supports creating repositories with descriptions, topics, and website URLs. ## Features - Create GitHub repositories with auto-generated names from descriptions - Add topics/tags to repositories - Set repository homepages - Auto-initialize repositories with README files ## Installation 1. Clone the repository 2. Install dependencies: ```bash npm install ``` 3. Build the server: ```bash npm run build ``` ## Configuration The server requires a GitHub personal access token with repository creation permissions. Add the following to your MCP settings file: ```json { "mcpServers": { "github": { "command": "node", "args": ["path/to/github-server/build/index.js"], "env": { "GITHUB_TOKEN": "your-github-token" } } } } ``` ## Available Tools ### create_repo Create or update GitHub repositories using natural language commands. #### Command Format The tool accepts natural language commands for different operations: Creating repositories: ``` Create a repository for [description] with tags [tag1 tag2 tag3] website [url] ``` or ``` Make a new repository called [description] tagged with [tag1, tag2, tag3] ``` Updating repository description: ``` Update [owner/repo] description to [new description] ``` or ``` Change [repo-name] description as [new description] ``` Updating repository tags: ``` Update [owner/repo] tags to [tag1 tag2 tag3] ``` or ``` Set [repo-name] topics as [tag1, tag2, tag3] ``` Updating repository website: ``` Update [owner/repo] website to [url] ``` or ``` Set [repo-name] homepage as [url] ``` #### Example Usage Creating a new repository: ```typescript const result = await use_mcp_tool({ server_name: "github", tool_name: "create_repo", arguments: { command: "Create a repository for my machine learning image classifier with tags python tensorflow computer-vision website https://example.com/docs" } }); ``` This will: 1. Create a repository named "my-machine-learning-image-classifier" 2. Set the description as "my machine learning image classifier" 3. Add "python", "tensorflow", and "computer-vision" as repository topics 4. Set the website to "https://example.com/docs" 5. Initialize with a README file Updating repository description: ```typescript const result = await use_mcp_tool({ server_name: "github", tool_name: "create_repo", arguments: { command: "Update username/existing-repo description to Updated ML project for image classification" } }); ``` Updating repository tags: ```typescript const result = await use_mcp_tool({ server_name: "github", tool_name: "create_repo", arguments: { command: "Update username/existing-repo tags to machine-learning python updated" } }); ``` Updating repository website: ```typescript const result = await use_mcp_tool({ server_name: "github", tool_name: "create_repo", arguments: { command: "Update username/existing-repo website to https://example.com/new-docs" } }); ``` The tool understands various natural language patterns and keywords: - Create/make/new for creating repositories - Update/change/set/modify for updating repositories - "description to/as" for updating descriptions - "tags/topics to/as" for updating tags - "website/homepage/url to/as" for updating websites ## Development To modify or extend the server: 1. Make changes to `src/index.ts` 2. Rebuild the server: ```bash npm run build ``` ## License MIT