Skip to main content

copilot-cli-mcp-config

Manage GitHub Copilot CLI MCP server configuration, including ~/.copilot/mcp-config.json, COPILOT_HOME or --config-dir, project-level .mcp.json/.github/mcp.json/.vscode/mcp.json, /mcp commands, --additional-mcp-config, and VS Code mcp.json migration.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
arisng/github-copilot-fc
آخر نشاط في المصدر
١٩ يونيو ٢٠٢٦ في ٠٦:٣١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٥
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
copilot-cli-mcp-config
description
Manage GitHub Copilot CLI MCP server configuration, including ~/.copilot/mcp-config.json, COPILOT_HOME or --config-dir, project-level .mcp.json/.github/mcp.json/.vscode/mcp.json, /mcp commands, --additional-mcp-config, and VS Code mcp.json migration.
metadata
{"author":"arisng","version":"1.1.0"}
# GitHub Copilot CLI MCP Configuration Management Configure MCP servers for GitHub Copilot CLI using the `mcp-config.json` file, which uses different syntax from VS Code's `mcp.json`. ## Configuration Location **Default**: `~/.copilot/mcp-config.json` **Relocating the config directory** (precedence, highest first): 1. `--config-dir` CLI flag: `copilot --config-dir /path/to/dir` 2. `COPILOT_HOME` environment variable: `export COPILOT_HOME=/path/to/dir` 3. Default `~/.copilot/` Setting either option redirects the entire config tree (agents, skills, MCP config, logs, sessions). **Project-level MCP configs**: `.mcp.json`, `.github/mcp.json`, or `.vscode/mcp.json` — these take precedence over user-level definitions when server names conflict and are shared via source control. **Additional config at runtime**: `--additional-mcp-config` augments `~/.copilot/mcp-config.json` for the current session only. It is repeatable, and accepts either a JSON string or a file path prefixed with `@`: ```bash copilot --additional-mcp-config '{"mcpServers":{"extra":{"type":"stdio","command":"npx","args":["my-server"],"tools":["*"]}}}' \ --additional-mcp-config @/path/to/project-mcp.json ``` ## CLI Commands ### Management Commands These are **slash commands entered inside the Copilot CLI interactive session** (not shell commands): ``` /mcp add # Interactive form — Tab to navigate fields, Ctrl+S to save /mcp show # List all configured servers /mcp show SERVER-NAME # Details for a specific server /mcp edit SERVER-NAME # Edit an existing server /mcp delete SERVER-NAME # Delete a server /mcp disable SERVER-NAME # Disable a server (keeps config, stops loading) /mcp enable SERVER-NAME # Re-enable a disabled server ``` > **Note**: `/mcp add` is fully interactive — no server name argument is passed. Start Copilot CLI with `copilot`, then type `/mcp add` at the prompt. ## Configuration Syntax ### Root Structure GitHub Copilot CLI uses `mcpServers` (VS Code uses `servers`): ```json { "mcpServers": { "server-name": { /* config */ } } } ``` ### Server Types GitHub Copilot CLI supports four server types: #### Types: `stdio` / `local` (Subprocess — standard transport) `stdio` and `local` are equivalent: both launch a subprocess and communicate via stdin/stdout. **`stdio` is the portable standard name** (aligns with VS Code, the Copilot cloud agent, and the MCP spec); `local` is a CLI-specific alias that also works. ```json { "mcpServers": { "azure": { "type": "stdio", "command": "npx", "args": ["-y", "@azure/mcp@latest", "server", "start"], "tools": ["*"], "env": {} }, "serena": { "type": "local", "command": "uvx", "args": ["--from", "git+https://github.com/oraios/serena", "serena", "start-mcp-server"], "tools": ["*"], "env": { "API_KEY": "${MY_API_KEY}" } } } } ``` #### Type: `http` (HTTP Server) Connect to HTTP-based MCP server: ```json { "mcpServers": { "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp/readonly", "tools": ["*"], "headers": { "Authorization": "Bearer ${GITHUB_TOKEN}", "X-MCP-Toolsets": "repos,issues,pull_requests" } } } } ``` #### Type: `sse` (Server-Sent Events) — Deprecated > **Deprecation notice**: SSE transport is deprecated in the MCP specification. Use `http` (streamable HTTP) for new remote server connections. Existing `sse` configurations continue to work but should be migrated. Connect to SSE-based MCP server: ```json { "mcpServers": { "cloudflare": { "type": "sse", "url": "https://docs.mcp.cloudflare.com/sse", "tools": ["*"] } } } ``` ### Common Configuration Keys **Required for all types:** - `type`: Server type (`"local"`, `"stdio"`, `"http"`, `"sse"`) - `tools`: Array of tool names or `["*"]` for all tools **Local/stdio specific (required):** - `command`: Executable command (e.g., `"npx"`, `"uvx"`, `"docker"`) - `args`: Array of command arguments **HTTP/sse specific (required):** - `url`: Server endpoint URL **Optional for all:** - `env`: Environment variables object (local/stdio only) - `headers`: HTTP headers object (http/sse only) ### Environment Variable Expansion Use `${VAR_NAME}` syntax for variable substitution: ```json { "mcpServers": { "sentry": { "type": "local", "command": "npx", "args": ["@sentry/mcp-server@latest", "--host=${SENTRY_HOST}"], "tools": ["*"], "env": { "SENTRY_HOST": "${COPILOT_MCP_SENTRY_HOST}", "SENTRY_TOKEN": "${COPILOT_MCP_SENTRY_TOKEN}" } } } } ``` ## VS Code vs GitHub Copilot CLI Syntax Differences Key differences between `mcp.json` (VS Code) and `mcp-config.json` (GitHub Copilot CLI): | Feature | VS Code (mcp.json) | GitHub Copilot CLI (mcp-config.json) | | ------------------- | ------------------------------------- | --------------------------------------------------------------------------- | | **Root key** | `"servers"` | `"mcpServers"` | | **Type values** | `"stdio"`, `"http"` | `"local"`, `"stdio"`, `"http"`, `"sse"` | | **Env vars** | Supports `inputs` and `envFile` | Only `env` object with `${VAR}` syntax | | **Location** | `.vscode/mcp.json` or global settings | `~/.copilot/mcp-config.json` (or `$COPILOT_HOME/mcp-config.json`) | | **Variable syntax** | Can use `inputs` references | Must use `${VARIABLE}` syntax | **VS Code example:** ```json { "servers": { "memory": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"], "env": { "MEMORY_FILE_PATH": "${workspaceFolder}/.github/memory.json" }, "type": "stdio" } } } ``` **GitHub Copilot CLI equivalent:** ```json { "mcpServers": { "memory": { "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"], "tools": ["*"], "env": { "MEMORY_FILE_PATH": "${MEMORY_FILE_PATH}" } } } } ``` ## Per-Agent MCP Servers CLI agent files can declare remote HTTP MCP servers in `mcp-servers` frontmatter. This is the right surface when an MCP server is specific to one agent and uses the `http` transport: ```yaml mcp-servers: - type: http url: https://example.com/mcp name: example-server ``` Local `stdio`/`local` MCP servers **cannot** be declared per-agent — they must be configured globally in `~/.copilot/mcp-config.json`. ## Complete Configuration Examples ### Multiple Servers ```json { "mcpServers": { "azure": { "type": "stdio", "command": "npx", "args": ["-y", "@azure/mcp@latest", "server", "start"], "tools": ["*"] }, "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp/readonly", "tools": ["get_issue", "list_repositories"], "headers": { "Authorization": "Bearer ${GITHUB_PAT}" } }, "cloudflare": { "type": "sse", "url": "https://docs.mcp.cloudflare.com/sse", "tools": ["*"] } } } ``` ### Docker-Based Server ```json { "mcpServers": { "notion": { "type": "local", "command": "docker", "args": [ "run", "--rm", "-i", "-e", "OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer ${NOTION_API_KEY}\"}", "mcp/notion" ], "tools": ["*"], "env": { "NOTION_API_KEY": "${COPILOT_MCP_NOTION_API_KEY}" } } } } ``` ## Setting Custom Config Location | Method | Usage | |--------|-------| | `COPILOT_HOME` env var | `export COPILOT_HOME=/path/to/dir` — redirects entire config tree | | `--config-dir` flag | `copilot --config-dir /path/to/dir` — takes precedence over `COPILOT_HOME` | **Project-level MCP configs** (shareable via source control): `.mcp.json`, `.github/mcp.json`, or `.vscode/mcp.json` — these take precedence over user-level definitions for conflicting server names. ## Troubleshooting **Configuration not loading:** - Confirm active config dir: run `/session` inside Copilot CLI to see the config path - Check `mcp-config.json` exists at that location - Restart Copilot CLI **MCP server not starting:** - Verify command is available (e.g., `which npx`, `which uvx`) - Check logs in `~/.copilot/logs/` (or `$COPILOT_HOME/logs/` if overridden) - Test command manually **Environment variables not expanding:** - Ensure using `${VAR_NAME}` syntax (not `$VAR_NAME`)
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub