Recording a rejected option so it is not re-proposed. Found 2026-09-15 on the Trucker engagement, after the per-turn MCP auth reminder caused an agent to tell the user twice that a working capability was unavailable.
The problem it was meant to solve
The plugin's .mcp.json declares servers named literally brain, infra, gitea. Separate claude.ai connectors are named claude.ai brain / claude.ai gitea, pointing at a different host for the same logical service:
brain-mcp.d-ma.be -> 5.150.212.35 public ingress (claude.ai web/desktop/mobile)
koala.tail30472e… -> 100.109.2.126 Tailscale CGNAT (Claude Code on a tailnet host)
Both are necessary — Anthropic's servers cannot route to 100.64/10, so the public ingress is the only path for the non-Code surfaces, and the tailnet path is the only one where traffic never leaves the estate.
The per-turn reminder lists bare brain and gitea alongside claude.ai gitea, which reads as though the plugin servers are down. Proposal was to rename the plugin's servers to brain-local / gitea-local / infra-local so the pair is legible at a glance.
Why it is not worth doing
The tool namespace derives from the server name.mcp__plugin_<plugin>_<server>__<tool>, so renaming the server renames every tool:
5 permission rules in .claude/settings.local.json name the namespace explicitly (brain_query, brain_read, brain_write, infra__pods_list, infra__pods_list_in_namespace). All would stop matching, so every previously-allowed brain call starts prompting again.
Agent memory and estate docs that name the namespace explicitly.
Three cached plugin versions on disk here (0.18.1, 0.19.4, 0.19.5), and the same on every other host — a rename means a version bump and a pull everywhere before the names agree.
And the reminder would still be wrong.claude mcp list on 2026-09-15 showed eleven of eleven ✔ Connected, including every server the reminder claimed needed authentication. Renaming does not make a false statement true; it makes it false with clearer names.
What was done instead
The rule, not the name: a reminder describes a configuration expectation, a call describes reality. Before stating a capability is unavailable, call it once, or run claude mcp list. Captured in the brain as wiki/homelab/failures/claude-code-mcp-auth-reminder-is-not-evidence.
If this is revisited
Two things would change the calculus:
If the reminder becomes accurate — then legible names have real value and the rename is worth its migration cost.
If the permission rules move to wildcards (mcp__plugin_skills_brain__*), the largest part of the blast radius disappears and the rename becomes cheap. That is arguably worth doing on its own merits.
Renaming the claude.ai connectors instead is free and carries no blast radius, but does not address the bare brain / gitea in the reminder, because those come from this repo.
Recording a rejected option so it is not re-proposed. Found 2026-09-15 on the Trucker engagement, after the per-turn MCP auth reminder caused an agent to tell the user twice that a working capability was unavailable.
## The problem it was meant to solve
The plugin's `.mcp.json` declares servers named literally `brain`, `infra`, `gitea`. Separate claude.ai connectors are named `claude.ai brain` / `claude.ai gitea`, pointing at a different host for the same logical service:
```
brain-mcp.d-ma.be -> 5.150.212.35 public ingress (claude.ai web/desktop/mobile)
koala.tail30472e… -> 100.109.2.126 Tailscale CGNAT (Claude Code on a tailnet host)
```
Both are necessary — Anthropic's servers cannot route to `100.64/10`, so the public ingress is the only path for the non-Code surfaces, and the tailnet path is the only one where traffic never leaves the estate.
The per-turn reminder lists bare `brain` and `gitea` alongside `claude.ai gitea`, which reads as though the plugin servers are down. Proposal was to rename the plugin's servers to `brain-local` / `gitea-local` / `infra-local` so the pair is legible at a glance.
## Why it is not worth doing
**The tool namespace derives from the server name.** `mcp__plugin_<plugin>_<server>__<tool>`, so renaming the server renames every tool:
```
mcp__plugin_skills_brain__brain_query -> mcp__plugin_skills_brain_local__brain_query
```
Measured blast radius on one host:
- **5 permission rules** in `.claude/settings.local.json` name the namespace explicitly (`brain_query`, `brain_read`, `brain_write`, `infra__pods_list`, `infra__pods_list_in_namespace`). All would stop matching, so every previously-allowed brain call starts prompting again.
- Agent memory and estate docs that name the namespace explicitly.
- Three cached plugin versions on disk here (`0.18.1`, `0.19.4`, `0.19.5`), and the same on every other host — a rename means a version bump and a pull everywhere before the names agree.
**And the reminder would still be wrong.** `claude mcp list` on 2026-09-15 showed **eleven of eleven ✔ Connected**, including every server the reminder claimed needed authentication. Renaming does not make a false statement true; it makes it false with clearer names.
## What was done instead
The rule, not the name: **a reminder describes a configuration expectation, a call describes reality.** Before stating a capability is unavailable, call it once, or run `claude mcp list`. Captured in the brain as `wiki/homelab/failures/claude-code-mcp-auth-reminder-is-not-evidence`.
## If this is revisited
Two things would change the calculus:
1. **If the reminder becomes accurate** — then legible names have real value and the rename is worth its migration cost.
2. **If the permission rules move to wildcards** (`mcp__plugin_skills_brain__*`), the largest part of the blast radius disappears and the rename becomes cheap. That is arguably worth doing on its own merits.
Renaming the **claude.ai connectors** instead is free and carries no blast radius, but does not address the bare `brain` / `gitea` in the reminder, because those come from this repo.
---
_Created via git-mcp on behalf of @mathias_
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Recording a rejected option so it is not re-proposed. Found 2026-09-15 on the Trucker engagement, after the per-turn MCP auth reminder caused an agent to tell the user twice that a working capability was unavailable.
The problem it was meant to solve
The plugin's
.mcp.jsondeclares servers named literallybrain,infra,gitea. Separate claude.ai connectors are namedclaude.ai brain/claude.ai gitea, pointing at a different host for the same logical service:Both are necessary — Anthropic's servers cannot route to
100.64/10, so the public ingress is the only path for the non-Code surfaces, and the tailnet path is the only one where traffic never leaves the estate.The per-turn reminder lists bare
brainandgiteaalongsideclaude.ai gitea, which reads as though the plugin servers are down. Proposal was to rename the plugin's servers tobrain-local/gitea-local/infra-localso the pair is legible at a glance.Why it is not worth doing
The tool namespace derives from the server name.
mcp__plugin_<plugin>_<server>__<tool>, so renaming the server renames every tool:Measured blast radius on one host:
.claude/settings.local.jsonname the namespace explicitly (brain_query,brain_read,brain_write,infra__pods_list,infra__pods_list_in_namespace). All would stop matching, so every previously-allowed brain call starts prompting again.0.18.1,0.19.4,0.19.5), and the same on every other host — a rename means a version bump and a pull everywhere before the names agree.And the reminder would still be wrong.
claude mcp liston 2026-09-15 showed eleven of eleven ✔ Connected, including every server the reminder claimed needed authentication. Renaming does not make a false statement true; it makes it false with clearer names.What was done instead
The rule, not the name: a reminder describes a configuration expectation, a call describes reality. Before stating a capability is unavailable, call it once, or run
claude mcp list. Captured in the brain aswiki/homelab/failures/claude-code-mcp-auth-reminder-is-not-evidence.If this is revisited
Two things would change the calculus:
mcp__plugin_skills_brain__*), the largest part of the blast radius disappears and the rename becomes cheap. That is arguably worth doing on its own merits.Renaming the claude.ai connectors instead is free and carries no blast radius, but does not address the bare
brain/giteain the reminder, because those come from this repo.Created via git-mcp on behalf of @mathias