Settings → MCP panel #153
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lz/agent-nexus#153
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The operator's setup surface for MCP, sitting beside Tokens in
/settings. Mocked and approved — artboard A.Depends on #151 and #152.
Contents
MCP server — enable toggle, and the connector URL to paste into Claude → Settings → Connectors → Add custom connector, with a copy button.
The URL is derived from
public_url. RFC 9728'sresourcemust equal the URL typed into Claude exactly, including the path, so the panel shows the precise string rather than leaving the operator to assemble it. Ifpublic_urlis unset, say so here rather than emitting a metadata document with a wrongresource— that fails at connection time with no useful symptom.Authorization — a segmented control: Built into Nexus / External OIDC provider, plus the issuer and the two metadata routes with reachability chips.
This control is the pluggable seam made visible. One setting drives both the
authorization_serversvalue in the metadata document and which token verifier is active, so the two can never disagree — the failure mode where Nexus advertises one issuer and trusts another is unrepresentable rather than merely tested for.Client registration — the CIMD allowlist with add/remove and a reachability chip per entry, and the DCR toggle marked deprecated by the MCP spec.
Connected clients — name, whether CIMD-verified, granted scopes, last used, revoke. Revoking drops the refresh token; the next request re-prompts for consent.
Conventions
Follow
TokensPanel.svelte— it is the existing credentials panel and the nearest analogue. Reuse.card,.field,.chip,.btnfromapp.css; no new component vocabulary.Per AGENTS.md: the server owns the legal values, the client owns how they read — option labels live in the panel, not in the settings registry. If the authorization-server choice becomes an enum setting, give its
SettingDefanoptionsarray and letSettingField.svelterender it, rather than hand-writing a third enum control.UI terminology is "Workspace" / "Session"; keep
workeridentifiers in code.Done when
An operator can go from a fresh instance to a working Claude connector using only this panel and Claude's own UI, without editing a config file or reading the spec.