diff --git a/.github/workflows/mcp-registry.yml b/.github/workflows/mcp-registry.yml index d58035d..14b7a9f 100644 --- a/.github/workflows/mcp-registry.yml +++ b/.github/workflows/mcp-registry.yml @@ -124,7 +124,11 @@ jobs: id-token: write env: MCP_PUBLISHER_VERSION: "1.8.1" - RETIRED_SERVER_NAMES: "io.github.lbesecker195/mcp-registry-search" + # Space-separated. Each is marked deleted before the current name is + # published, freeing the endpoint URL it claimed. + RETIRED_SERVER_NAMES: >- + io.github.lbesecker195/mcp-registry-search + io.github.lbesecker195/mcp-registry-search-find-mcp-servers-discover-install-mcp-tools-directory-catalog-marketplace steps: - uses: actions/checkout@v5 @@ -153,8 +157,17 @@ jobs: esac retire="" for old in $RETIRED_SERVER_NAMES; do - state=$(curl -s "$api/$(enc "$old")/versions/latest?include_deleted=true" \ - | jq -r '._meta["io.modelcontextprotocol.registry/official"].status // "absent"') + # Retry: a misread here matters. Reading "absent" from an error page + # skips the retire, and the publish then fails on the endpoint URL + # the old name still holds. + for attempt in 1 2 3 4; do + code=$(curl -s -o state.json -w '%{http_code}' "$api/$(enc "$old")/versions/latest?include_deleted=true") + case "$code" in + 200) state=$(jq -r '._meta["io.modelcontextprotocol.registry/official"].status // "unknown"' state.json); break ;; + 404) state=absent; break ;; + *) state="unknown (HTTP $code)"; sleep $((attempt * 5)) ;; + esac + done echo "$old -> $state" if [ "$state" != deleted ] && [ "$state" != absent ]; then retire="$retire $old"; fi done diff --git a/Instructions.md b/Instructions.md index 9564249..15e128b 100644 --- a/Instructions.md +++ b/Instructions.md @@ -66,7 +66,7 @@ and their pages link back to the official entry. ## Listed in the official MCP Registry The registry's own MCP endpoint is published to the official MCP Registry as -`io.github.lbesecker195/mcp-registry-search-find-mcp-servers-discover-install-mcp-tools-directory-catalog-marketplace`, from `server.json` in this folder. +`io.github.lbesecker195/mcp-registry-search-directory`, from `server.json` in this folder. The `publish-mcp-registry` job in the workflow publishes it after each successful deploy, authenticating with GitHub OIDC, so there is no secret to manage. It skips versions already published; bump `version` in `server.json` diff --git a/docs/github-mcp-registry-request.md b/docs/github-mcp-registry-request.md index b81cc68..6c02ae1 100644 --- a/docs/github-mcp-registry-request.md +++ b/docs/github-mcp-registry-request.md @@ -4,17 +4,17 @@ GitHub's MCP registry (github.com/mcp) is curated. Servers must first be in the official MCP Registry; onboarding is then requested in GitHub's discussion: https://github.com/github/github-mcp-server/discussions/1257 -Post this as a comment there once `io.github.lbesecker195/mcp-registry-search-find-mcp-servers-discover-install-mcp-tools-directory-catalog-marketplace` +Post this as a comment there once `io.github.lbesecker195/mcp-registry-search-directory` is live in the official registry: -https://registry.modelcontextprotocol.io/v0.1/servers/io.github.lbesecker195%2Fmcp-registry-search-find-mcp-servers-discover-install-mcp-tools-directory-catalog-marketplace/versions/latest +https://registry.modelcontextprotocol.io/v0.1/servers/io.github.lbesecker195%2Fmcp-registry-search-directory/versions/latest --- Hi! Requesting onboarding for a remote server that's published in the official MCP Registry: -**io.github.lbesecker195/mcp-registry-search-find-mcp-servers-discover-install-mcp-tools-directory-catalog-marketplace** -https://registry.modelcontextprotocol.io/v0.1/servers/io.github.lbesecker195%2Fmcp-registry-search-find-mcp-servers-discover-install-mcp-tools-directory-catalog-marketplace/versions/latest +**io.github.lbesecker195/mcp-registry-search-directory** +https://registry.modelcontextprotocol.io/v0.1/servers/io.github.lbesecker195%2Fmcp-registry-search-directory/versions/latest It's an MCP server for finding other MCP servers. Agents can search more than 31,000 servers by task, tool name or tag, get install configs, and submit new diff --git a/lib/mcp_registry_web/llms.ex b/lib/mcp_registry_web/llms.ex index 2fc5e79..9825ef0 100644 --- a/lib/mcp_registry_web/llms.ex +++ b/lib/mcp_registry_web/llms.ex @@ -19,7 +19,7 @@ defmodule McpRegistryWeb.Llms do With Claude Code: `claude mcp add --transport http mcp-registry-search #{base}/mcp`. Any other client: add a remote server with `"type": "http"` and that URL. It is also listed in the official MCP Registry as - `io.github.lbesecker195/mcp-registry-search-find-mcp-servers-discover-install-mcp-tools-directory-catalog-marketplace`. + `io.github.lbesecker195/mcp-registry-search-directory`. Tools: diff --git a/server.json b/server.json index 148cc36..4d2c75b 100644 --- a/server.json +++ b/server.json @@ -1,6 +1,6 @@ { "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", - "name": "io.github.lbesecker195/mcp-registry-search-find-mcp-servers-discover-install-mcp-tools-directory-catalog-marketplace", + "name": "io.github.lbesecker195/mcp-registry-search-directory", "title": "MCP Registry Search: Find, Discover & Install MCP Servers & Tools | Directory, Catalog, Marketplace", "description": "MCP registry & directory: search, find & install 31k+ MCP servers & tools. Catalog and marketplace.", "version": "1.0.1",