Skip to content

Release 0.3.1: store MCP names in saved connections - #15

Merged
MainSequenceDev merged 1 commit into
mainfrom
claude/mcp-saved-display-names
Oct 21, 2026
Merged

MainSequenceDev merged 1 commit into
mainfrom
claude/mcp-saved-display-names

Conversation

@MainSequenceDev

Copy link
Copy Markdown
Contributor

Why

A saved MCP connection stored only the release UID and endpoint: the release detail that mcp-add reads carries no name or repository. Every host listing therefore needed two live backend requests to label a connection, and a backend restart during a refresh showed Unnamed MCP.

What changes

  • mcp-add resolves the release's name and repository branch from the release directory (/api/v1/resource-releases/?search=<uid>), the repository name from the branch, and stores them with the connection as name, display_name and code_repository_branch_uid. A label that cannot be read is left out; it never makes a working MCP unavailable.
  • mcp-list returns the stored labels without a backend request. A record saved by an earlier version is completed by the first listing that can read its labels (persisted under the connection lock; a held lock or failed write still returns the labelled listing).
  • mcp-tools and mcp-call results carry the saved labels on their connection. Discovery rows pass the directory's name and code_repository_branch_uid through. Malformed stored labels are dropped on read.
  • Version 0.3.1; README documents the stored labels.

Verification

npm run typecheck, npm test (112 tests, one new covering storage, local listing, backfill, denied and mismatched lookups, malformed labels, the held lock and discovery rows), node scripts/check-release.cjs, npm pack and npm run verify:package pass locally on Node 22.

🤖 Generated with Claude Code

A saved MCP connection carried only the release UID and endpoint, because the
release detail that mcp-add reads has no name or repository. Hosts labelled
listings with two live backend requests per listing, and a backend restart
during a refresh left a connection named "Unnamed MCP".

- mcp-add reads the release directory projection (search by UID) for the
  release's name and repository branch, the branch for its repository name,
  and stores them with the connection as name, display_name and
  code_repository_branch_uid; a label that cannot be read is left out and
  never makes a working MCP unavailable
- mcp-list returns the stored labels without a backend request; a record
  saved by an earlier version is completed by the first listing that can
  read its labels, under the connection lock, and a held lock or failed
  write still returns the labelled listing
- mcp-tools and mcp-call results carry the saved labels on their connection;
  discovery rows pass the directory's name and code_repository_branch_uid
  through; malformed stored labels are dropped on read
- tests/mcp.test.cjs covers storage, local listing, backfill, denied and
  mismatched lookups, malformed labels, the held lock and discovery rows

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@MainSequenceDev
MainSequenceDev merged commit 0f78f9b into main Oct 21, 2026
4 checks passed
@MainSequenceDev
MainSequenceDev deleted the claude/mcp-saved-display-names branch October 21, 2026 20:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant