You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: rename icon field to logo and require URL-only values
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>
Copy file name to clipboardExpand all lines: AGENTS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,7 +90,7 @@ These are computed or granted by McpMux maintainers after verification.
90
90
## Trademark & Branding
91
91
92
92
- Reference third-party products with "works with", "for", or "connects to" — never "official", "certified", "endorsed" unless you represent the trademark owner and are verified.
93
-
-Icons are referenced by URL (emoji or external) — McpMux does not host icon files. Only link to assets you have the right to reference.
93
+
-Logos are referenced by HTTP(S) URL in the `logo` field — McpMux does not host logo files and emoji are not accepted. Only link to assets you have the right to reference. The legacy field name `icon` is still accepted for backward compatibility.
94
94
- See `TRADEMARK-TAKEDOWN.md` for the full IP policy.
|`description`| string | One sentence, plain English. Shown in listings. |
151
151
|`alias`| string | Short CLI alias, pattern `^[a-z0-9-]+$`. Must not collide with any `id` or other alias. |
152
-
|`icon`| string |Emoji (e.g. `"🐙"`) or a stable image URL (avatars, project logos). McpMux does **not** host icon files. |
152
+
|`logo`| string |Stable HTTP(S) URL to a logo image (avatar or project PNG/SVG). Emoji are **not** accepted — use a GitHub avatar URL like `https://avatars.githubusercontent.com/u/{id}?v=4`. McpMux does **not** host logo files. (The legacy field name `icon` is still accepted for backward compatibility, but `logo` is the preferred name.)|
153
153
|`schema_version`| string | Currently `"2.1"`. Bump when the project publishes a new contributor schema version. |
154
154
|`categories`| string[]| IDs from [`categories.json`](categories.json). At least one. |
155
155
|`tags`| string[]| Lowercase keywords for search (`"git"`, `"search"`, `"wiki"`). 3–8 is a good target. |
@@ -582,11 +582,12 @@ The registry is community-built but consumed via the McpMux brand, so we're care
582
582
-**Implied endorsement is not:** "Official GitHub MCP", "Certified by Notion", "Endorsed by Linear" — unless you actually represent the trademark owner and have been verified.
- McpMux does not host icon files. The `icon` field is either an emoji or a URL to an image.
587
+
- McpMux does not host logo files. The `logo` field must be an HTTP(S) URL to an image. Emoji are not accepted.
588
588
-**Only reference assets you have the right to use.** Corporate logos are usually fine for descriptive, non-commercial use in a directory listing; but don't hot-link assets with restrictive terms.
589
589
- Prefer GitHub avatars (`https://avatars.githubusercontent.com/u/<id>?v=4`) or official brand URLs over random CDN copies that may rotate.
590
+
- The legacy field name `icon` is still accepted for backward compatibility, but new submissions should use `logo`.
590
591
591
592
### Official / verified claims
592
593
@@ -603,7 +604,7 @@ By opening a PR you agree that:
603
604
1. You have the right to reference any URLs you include.
604
605
2. You're not claiming official status or endorsement you don't have.
605
606
3. You accept responsibility for trademark compliance of your submission.
606
-
4. You grant McpMux a license to display your definition — including rendering any referenced icon URLs — on the discover site and desktop app.
607
+
4. You grant McpMux a license to display your definition — including rendering any referenced logo URLs — on the discover site and desktop app.
607
608
5. McpMux may modify or remove your submission in response to trademark concerns.
Copy file name to clipboardExpand all lines: schemas/server-definition.schema.json
+10-1Lines changed: 10 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -25,9 +25,18 @@
25
25
"type": "string",
26
26
"description": "Short description of what the server does"
27
27
},
28
+
"logo": {
29
+
"type": "string",
30
+
"format": "uri",
31
+
"pattern": "^https?://",
32
+
"description": "URL to a logo image (PNG/SVG). Must be an HTTP(S) URL - emoji are no longer accepted. Prefer a GitHub avatar (https://avatars.githubusercontent.com/u/{id}?v=4) or a stable brand asset."
33
+
},
28
34
"icon": {
29
35
"type": "string",
30
-
"description": "Emoji or URL to icon image"
36
+
"format": "uri",
37
+
"pattern": "^https?://",
38
+
"deprecated": true,
39
+
"description": "Deprecated: use `logo` instead. Kept for backward compatibility with older bundles; when present it must be an HTTP(S) URL."
0 commit comments