Skip to content

Latest commit

 

History

History
103 lines (78 loc) · 3.4 KB

File metadata and controls

103 lines (78 loc) · 3.4 KB

SuperBased Observer — GitHub Copilot CLI

Local-first token, cost and cache observability for GitHub Copilot CLI (@github/copilot).

Copilot CLI has no plugin package format; MCP config is its documented extension surface. So this is a config listing — the exact block to paste — rather than something to install.

Requires the observer binary already on your PATH. This is wiring only — the block below declares an MCP server that runs observer; it does not download or bundle it.

npm i -g @superbased/observer     # or: pipx install superbased-observer
observer start                    # run the local daemon

Install

From the shell:

copilot mcp add observer -- observer serve

Or merge this into ~/.copilot/mcp-config.json (the directory follows COPILOT_HOME). If the file already has an mcpServers object, add the observer entry to it rather than replacing it:

{
  "mcpServers": {
    "observer": {
      "type": "local",
      "command": "observer",
      "args": [
        "serve"
      ],
      "tools": [
        "*"
      ]
    }
  }
}

You can also commit it as .github/mcp.json in a repository, which Copilot CLI loads for that project once you trust the folder.

⚠️ The key is mcpServers, not servers

This is the one thing to get right, because getting it wrong fails silently — the server just never shows up.

Product File Top-level key
GitHub Copilot CLI (this page) ~/.copilot/mcp-config.json mcpServers
GitHub Copilot in VS Code (../copilot/) .vscode/mcp.json servers

GitHub's own documentation says the CLI does not read .vscode/mcp.json because it uses the unsupported top-level key servers. Two GitHub-branded surfaces, two incompatible spellings. Copy the block from the page that matches the product you are configuring.

What it wires

Key Value Why
type local Copilot CLI's discriminator for a command-launched server.
command + args observer serve The same launch observer init writes for every other client, resolved from PATH.
tools ["*"] Every local example in GitHub's docs carries this key; it exposes the server's tools. Narrow it by listing tool names if you would rather.

env is documented too and is deliberately absent — observer's server takes no environment.

The observer server exposes observer's project, session, cost and cache queries as tools, reading the local ~/.observer/observer.db. It makes no network calls of its own.

Copilot CLI capture is unaffected either way: observer's watcher reads its own session logs whether or not this entry exists.

Double-wiring

observer init writes no Copilot CLI config today — internal/mcp has no Copilot CLI client row — so this hand-added entry cannot duplicate anything observer wrote. Adding it at BOTH user level and repo level loads the same tool schema twice; pick one.

The automatic detect-and-skip observer init performs for the Claude Code plugin is claude-code-only (internal/claudeplugin); no equivalent probe exists for Copilot CLI. Documented, not built.

Links