Skip to content

refactor: rename icon field to logo and require URL-only values - #118

Merged
its-mash merged 2 commits into
mainfrom
chore/rename-icon-to-logo
Apr 24, 2026
Merged

refactor: rename icon field to logo and require URL-only values#118
its-mash merged 2 commits into
mainfrom
chore/rename-icon-to-logo

Conversation

@its-mash

Copy link
Copy Markdown
Member

Summary

  • Renames the server-definition icon field to logo across all 116 server definitions and examples, and replaces the 7 remaining emoji icons (mcpshield, sentry x3, supabase x2, vardoger) with real GitHub-avatar logo URLs.
  • Updates the JSON schema: logo is now format: uri with pattern ^https?://; the deprecated icon alias kept for backward compatibility is now also URL-only (no more emoji).
  • Adds schema-validation tests that reject emoji in both icon and logo, assert every server file uses logo, and assert every logo is an HTTP(S) URL.
  • Updates contributor docs (CONTRIBUTING, AGENTS, README, PR template, examples README) and the .claude/skills/mcp-server-crawler.md skill.

This is the source-of-truth rename. Three companion PRs land the supporting changes so the desktop app (which reads icon) keeps working while the registry rolls over:

  • mcpmux/mcpmux.bundler: mirrors icon/logo on bundle output
  • mcpmux/mcpmux.serverhub.api: mirrors icon/logo on every server response
  • mcpmux/mcpmux.discover.ui: renders via logo, falls back to icon + emoji

Merge / deploy order

  1. Ship mcpmux.bundler and mcpmux.serverhub.api first — they mirror both fields on output.
  2. Merge this PR. The bundler regenerates bundle/latest.json with the new shape on the next push.
  3. Ship mcpmux.discover.ui last — starts preferring logo but still falls back.
  4. Desktop app needs no immediate action; icon continues to be populated by the API.

Test plan

  • pnpm validate:all — all 116 servers pass
  • pnpm test — existing pre-merge failures on main (com.example-defaults + 4 unknown-category servers from recent PRs) are unrelated to this PR and noted separately
  • Post-merge: verify bundle/latest.json rebuild includes both fields for migrated servers

The server-definition `icon` field has long accepted both emoji and URLs,
which made icon rendering ambiguous in the registry UI (the discover site
showed raw emoji where a product logo was intended). This PR:

- Renames `icon` to `logo` in every server definition and example, and
  replaces the seven remaining emoji icons (🛡 mcpshield, 🐛 sentry x3,
  ⚡ supabase x2, 🪞 vardoger) with real logo URLs sourced from GitHub
  org avatars.
- Updates the JSON schema to accept `logo` as `format: uri` with an
  `^https?://` pattern, and keeps `icon` as a deprecated alias with the
  same URL constraint (no more emoji). Emits helpful messages so
  contributors understand which field to use.
- Adds schema-validation tests that reject emoji in both `icon` and
  `logo`, assert every server file uses `logo` (not `icon`), and assert
  every `logo` is an HTTP(S) URL.
- Updates contributor docs — CONTRIBUTING, AGENTS, README, the PR
  template, and the examples README — plus the `mcp-server-crawler`
  skill that agents use to draft new definitions.

This is the source-of-truth rename; the bundler, registry API, and
discover UI land separate PRs that mirror both fields on output so the
desktop app (which still reads `icon`) keeps working.

Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
The rename made emoji invalid under the URL-only `logo` schema, so the
example server definitions would not validate. Use the matching GitHub
organisation avatars for each example's real-world service (GitHub,
Atlassian, Cloudflare, Notion) so copy-paste templates pass validation
out of the box.

Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
@its-mash
its-mash merged commit 309a70c into main Apr 24, 2026
1 check passed
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