GitHub Copilot CLI
Add Runstack MCP in GitHub Copilot CLI — ~/.copilot/mcp-config.json or per-repo .github/mcp.json with /mcp add wizard.
Source: https://runstack.engineer/docs/mcp-github-copilot
githubCopilot
GitHub Copilot CLI can call Runstack's four MCP tools at https://app.runstack.engineer/mcp (Streamable HTTP, Authorization: Bearer rnsk_…). The GitHub MCP server is built-in; Runstack requires explicit config. Get a key at API Keys.
Add via wizard (fastest)
In interactive mode:
> /mcp add
- Server Name:
runstack - Server Type:
HTTP(Streamable HTTP) — chooseHTTP, notSSE(SSE is legacy) - URL:
https://app.runstack.engineer/mcp - HTTP Headers:
{"Authorization": "Bearer rnsk_YOUR_API_KEY"} - Tools:
*(all four meta tools) → Ctrl+S to save. Available immediately, no restart.
CLI non-interactive alternative:
copilot mcp add --transport http --header "Authorization: Bearer rnsk_YOUR_API_KEY" runstack https://app.runstack.engineer/mcp
For stdio via @rnsk/mcp:
copilot mcp add runstack -- npx -y @rnsk/mcp --env RUNSTACK_API_KEY=rnsk_YOUR_API_KEY
# or with --env flag:
copilot mcp add runstack --env RUNSTACK_API_KEY=rnsk_YOUR_API_KEY -- npx -y @rnsk/mcp
Config files
User global
~/.copilot/mcp-config.json (user-level, mcpServers key):
{
"mcpServers": {
"runstack": {
"type": "http",
"url": "https://app.runstack.engineer/mcp",
"headers": {
"Authorization": "Bearer rnsk_YOUR_API_KEY"
},
"tools": ["*"]
}
}
}
Stdio variant:
{
"mcpServers": {
"runstack": {
"type": "local",
"command": "npx",
"args": ["-y", "@rnsk/mcp"],
"env": { "RUNSTACK_API_KEY": "rnsk_YOUR_API_KEY" },
"tools": ["*"]
}
}
}
Copilot CLI Manager supports stdio/local (same) and http/sse transports. tools: ["*"] exposes all four tools; use explicit list to scope.
Per-repository
When working inside a Git repo, Copilot CLI walks up from cwd to root loading repo configs (closer dir wins, repo wins over user):
| File | Use |
|---|---|
.mcp.json (any dir up to root) | Local / per-checkout (not committed) |
.github/mcp.json | Shared, committed |
Both accept either {"mcpServers": {…}} or bare top-level {"runstack": {…}}. Folder trust prompt appears on first launch; untrusted dirs skip repo servers. In prompt mode (copilot -p) with untrusted dir, set GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP=true to load them.
.vscode/mcp.json (VS Code format with servers key) is not read — migrate it to ~/.copilot/mcp-config.json (mcpServers).
Manage
| Task | Interactive | CLI |
|---|---|---|
| List | /mcp (dashboard) or /mcp list | copilot mcp list (--json) |
| Show tools | /mcp show runstack | copilot mcp get runstack |
| Edit | /mcp edit runstack | edit ~/.copilot/mcp-config.json |
| Disable/Enable | /mcp disable runstack / enable | copilot mcp remove runstack to delete |
Registry allowlist: if your org sets a registry URL + allowlist, only allow-listed servers run; ensure runstack is permitted.
Verify
copilot mcp list
copilot mcp get runstack --json
In chat: “Use Runstack to search for GitHub issue tools”. search_tools should list registry tools; check_authentication → initiate_connection handles OAuth.