Docs · static mirror — the interactive version loads with JavaScript.

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
  1. Server Name: runstack
  2. Server Type: HTTP (Streamable HTTP) — choose HTTP, not SSE (SSE is legacy)
  3. URL: https://app.runstack.engineer/mcp
  4. HTTP Headers: {"Authorization": "Bearer rnsk_YOUR_API_KEY"}
  5. 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):

FileUse
.mcp.json (any dir up to root)Local / per-checkout (not committed)
.github/mcp.jsonShared, 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

TaskInteractiveCLI
List/mcp (dashboard) or /mcp listcopilot mcp list (--json)
Show tools/mcp show runstackcopilot mcp get runstack
Edit/mcp edit runstackedit ~/.copilot/mcp-config.json
Disable/Enable/mcp disable runstack / enablecopilot 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.

Related