{"$comment":"The Thermograph connector registry. `kind` decides what a person actually has to do: 'hub' and 'proxied' need no install (they arrive with Centralis), 'local' must be installed on their own machine, usually because it needs an interactive OAuth flow or access to a desktop app that a server cannot have.","connectors":[{"id":"centralis","name":"Centralis","kind":"hub","priority":1,"what":"The Thermograph control plane: the application database, the Iceberg climate lake, fleet logs, Grafana dashboards, Forgejo, the planning docs and notes, the public API, and Discord (proxied).","why":"One connector covering the whole business. If you install nothing else, install this — it is how you ask questions about the estate at all.","auth":"Bearer token. Ask the operator for one; do not share it.","install":{"web":"Settings → Connectors → Add custom connector → https://mcp.thermograph.org/mcp","desktop":"Settings → Connectors → Add custom connector → https://mcp.thermograph.org/mcp","code":"claude mcp add --transport http centralis https://mcp.thermograph.org/mcp --header \"Authorization: Bearer $CENTRALIS_TOKEN\""},"verify":"Ask: \"what's running on prod right now?\" — it should call fleet_status and list the Swarm services."},{"id":"discord","name":"Discord (Thermograph.org community)","kind":"proxied","priority":2,"what":"139 tools for the community server — channels, messages, threads, forums, roles, members, moderation, events, webhooks and polls.","why":"Discord is the support venue and a product channel: the daily unusual-weather post and alert DMs live there. Community work is business work.","auth":"None for you — Centralis holds the bot token and proxies the calls.","install":{"all":"Nothing to install. Arrives with Centralis under the discord_ prefix."},"note":"Only install the standalone server (npx @quadslab.io/discord-mcp init) if you need Discord in a client that cannot reach Centralis.","verify":"Ask: \"list the Discord channels\" — it should call discord_list_channels."},{"id":"figma","name":"Figma","kind":"local","priority":3,"what":"Figma's official MCP server: read design files, inspect frames and components, and pull design context into code.","why":"Thermograph's visual system is a single hand-written stylesheet where every value is a design token. Design changes start in Figma and have to land as tokens, not raw hex.","auth":"Interactive OAuth with your own Figma account.","install":{"web":"Settings → Connectors → Add custom connector → https://mcp.figma.com/mcp, then complete the Figma sign-in.","desktop":"Settings → Connectors → Add custom connector → https://mcp.figma.com/mcp, then complete the Figma sign-in.","code":"claude mcp add --transport http figma https://mcp.figma.com/mcp"},"note":"This one is deliberately NOT proxied through Centralis: its OAuth flow is interactive, and a headless server cannot complete a sign-in on your behalf. Centralis does carry native figma_* tools that use a shared personal access token for read-only file and design-token queries — those work without this, but the official server is better for design-to-code.","verify":"Ask it to read any Figma file you have access to."},{"id":"chrome-devtools","name":"Chrome DevTools","kind":"local","priority":4,"what":"Drive a real browser: navigate, screenshot, read the console and network activity.","why":"Every design or feature change is validated at 390 / 800 / 1920 / 2560 / 3840px in light and dark. That check needs a real browser on your machine, which no remote server can provide.","auth":"None.","install":{"code":"claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest","desktop":"Add to claude_desktop_config.json: {\"mcpServers\":{\"chrome-devtools\":{\"command\":\"npx\",\"args\":[\"-y\",\"chrome-devtools-mcp@latest\"]}}}"},"note":"Local only — it controls a browser on your own machine, so it cannot be a remote connector.","verify":"Ask it to screenshot https://thermograph.org at 390px wide."},{"id":"forgejo","name":"Forgejo (git, registry, CI)","kind":"proxied","priority":5,"what":"Repositories, pull requests, issues and CI, through Centralis's native forge_* tools.","why":"Forgejo is the estate's sole git host — GitHub is retired — and it is mesh-only, so it is not reachable from a laptop off the WireGuard network.","auth":"None for you — Centralis holds the token.","install":{"all":"Nothing to install. Arrives with Centralis as forge_read, forge_write, forge_prs, forge_issues, forge_ci."},"note":"The native tools encode this estate's rules — writes open pull requests, because dev/main/release are protected. A generic Forgejo MCP would happily try to push directly and fail.","verify":"Ask: \"what PRs are open on the monorepo?\""},{"id":"grafana","name":"Grafana (live observability)","kind":"local","priority":6,"what":"The official grafana/mcp-grafana server, read-only: live dashboards as rendered, alert-rule state, datasource health, and ad-hoc queries against Loki/Prometheus.","why":"Centralis's native dashboard_* tools read the repo JSON that Grafana is provisioned FROM, and write PRs. This reads what Grafana is actually showing right now — the other half of the picture. It authenticates as you (a Grafana service-account token), which is why it installs locally rather than being proxied.","auth":"Grafana service-account token — separate from the Google SSO humans use. See the setup guide; never commit the raw token.","install":{"code":"claude mcp add grafana -s user -e GRAFANA_URL=https://dashboard.thermograph.org -e GRAFANA_SERVICE_ACCOUNT_TOKEN=\"<token>\" -- uvx mcp-grafana --disable-write"},"setup":"grafana","note":"Keep --disable-write unless you specifically need to mutate Grafana; and remember dashboard changes are provisioned from repo JSON, so a durable edit still goes through Centralis's dashboard_write (a PR), not a live write here.","verify":"claude mcp get grafana — should show Status: ✔ Connected."}],"skills":[{"id":"thermograph-orientation","name":"Orientation","for":"Anyone new to the business","what":"What Thermograph is, how the estate is laid out, and the rules that are not negotiable."},{"id":"thermograph-ops","name":"Operations","for":"Anyone deploying or debugging","what":"Release flow, how to read the fleet, and what to do when something breaks."},{"id":"thermograph-community","name":"Community","for":"Anyone working in Discord","what":"Channel structure, the notes/summary/recording conventions, and moderation norms."},{"id":"thermograph-voice-summaries","name":"Voice summaries","for":"The periodic digest loop","what":"How the every-few-hours job turns NoteCat's voice transcripts into dated summaries in the docs repo."},{"id":"thermograph-notes","name":"Notes & docs","for":"Everyone","what":"Where written work belongs, and how to get it into the docs repo properly."}]}