Skip to main content
Glama
wminson

GitHub Copilot CLI MCP Server

by wminson
README.md5.17 kB
# GitHub Copilot CLI MCP Server An MCP (Model Context Protocol) server that wraps the GitHub Copilot CLI (`gh copilot`), enabling AI assistants to interact with GitHub Copilot through a standardized interface. ## Features - **Command Suggestions**: Get shell, git, and GitHub CLI command suggestions from natural language - **Command Explanations**: Understand what complex commands do - **Shell Aliases**: Generate convenience aliases for your shell - **Configuration**: View and manage Copilot CLI settings - **Dual Transport Support**: Both STDIO (local) and SSE (network) transports ## Prerequisites - **Python 3.10+** - **GitHub CLI** (`gh`) installed: https://cli.github.com/ - **GitHub Copilot extension** for gh: ```bash gh extension install github/gh-copilot ``` - **GitHub Copilot subscription** (Individual, Business, or Enterprise) ## Installation ### Option 1: Install from source ```bash cd /home/ward/MCP/copilot_mcp_server python -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### Option 2: Install with pip ```bash pip install -e . ``` ## Usage ### STDIO Transport (Local) For local MCP client connections: ```bash python server.py ``` ### SSE Transport (Network) For network-accessible MCP server: ```bash python server_sse.py ``` Or with custom host/port: ```bash MCP_SERVER_HOST=0.0.0.0 MCP_SERVER_PORT=8602 python server_sse.py ``` ## Available Tools ### `copilot_suggest` Get a command suggestion from GitHub Copilot based on natural language. **Parameters:** - `prompt` (required): Natural language description of what you want to do - `target`: Target type - `'shell'` (default), `'gh'`, or `'git'` **Examples:** ```python copilot_suggest(prompt="Install git", target="shell") copilot_suggest(prompt="Create pull request", target="gh") copilot_suggest(prompt="Undo the most recent local commits", target="git") ``` ### `copilot_suggest_shell` Convenience wrapper for shell command suggestions. **Parameters:** - `prompt` (required): Natural language description **Examples:** - "Kill processes holding onto deleted files" - "Convert SVG to PNG and resize" ### `copilot_suggest_git` Convenience wrapper for git command suggestions. **Parameters:** - `prompt` (required): Natural language description **Examples:** - "Undo the most recent local commits" - "Clean up local branches" ### `copilot_suggest_gh` Convenience wrapper for GitHub CLI command suggestions. **Parameters:** - `prompt` (required): Natural language description **Examples:** - "Create pull request" - "List pull requests waiting for my review" ### `copilot_explain` Get an explanation of a command from GitHub Copilot. **Parameters:** - `command` (required): The command to explain **Examples:** ```python copilot_explain(command="du -sh | sort -h") copilot_explain(command="git log --oneline --graph --decorate --all") ``` ### `copilot_version` Get the GitHub Copilot CLI version information. ### `copilot_help` Get help information. **Parameters:** - `command`: Optional command to get help for ('suggest', 'explain', 'config', 'alias') ### `copilot_config_get` Get GitHub Copilot CLI configuration. **Parameters:** - `key`: Optional specific config key (empty shows all) ### `copilot_alias` Generate shell aliases for convenience commands. **Parameters:** - `shell`: Shell type - `'bash'`, `'zsh'`, `'fish'`, or `'powershell'` ## MCP Client Configuration ### Claude Code / Claude Desktop Add to your MCP settings: ```json { "mcpServers": { "copilot": { "command": "python", "args": ["/home/ward/MCP/copilot_mcp_server/server.py"] } } } ``` ### SSE Client Configuration ```json { "mcpServers": { "copilot-remote": { "url": "http://localhost:8602/sse" } } } ``` ## Environment Variables | Variable | Default | Description | |----------|---------|-------------| | `MCP_SERVER_HOST` | `0.0.0.0` | SSE server bind address | | `MCP_SERVER_PORT` | `8602` | SSE server port | ## Examples ### Get a Shell Command Suggestion ```python copilot_suggest_shell(prompt="Find all files larger than 100MB") ``` ### Explain a Complex Command ```python copilot_explain(command="find . -name '*.log' -mtime +30 -delete") ``` ### Get Git Help ```python copilot_suggest_git(prompt="Squash last 3 commits into one") ``` ### Get GitHub CLI Help ```python copilot_suggest_gh(prompt="List all open issues assigned to me") ``` ## Systemd Service (Optional) Create `/etc/systemd/user/copilot-mcp.service`: ```ini [Unit] Description=GitHub Copilot MCP Server After=network.target [Service] Type=simple WorkingDirectory=/home/ward/MCP/copilot_mcp_server ExecStart=/home/ward/MCP/copilot_mcp_server/venv/bin/python server_sse.py Restart=always RestartSec=5 Environment=MCP_SERVER_PORT=8602 [Install] WantedBy=default.target ``` Enable and start: ```bash systemctl --user enable copilot-mcp systemctl --user start copilot-mcp ``` ## License MIT License ## Related Projects - [Claude Code MCP Server](../claude-mcp-server/) - Similar MCP wrapper for Claude Code CLI - [Gemini CLI MCP Server](../gemini_mcp_server/) - Similar MCP wrapper for Gemini CLI

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wminson/copilot-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server