Badges and Embeds

Put any listed MCP server in a README or on a website with a badge, a card with one-click setup or an iframe, or read its listing as JSON. Each embed links to the server’s page on mcp.tc and uses the server’s own URL.

README badge

A small image with the mcp.tc mark and the server’s name, plus the checkmark when the listing is verified. Wrap it in a link to the listing:

Markdown
[![DeepWiki on mcp.tc](https://mcp.tc/i/deepwiki/badge.svg)](https://mcp.tc/i/deepwiki)
HTML
<a href="https://mcp.tc/i/deepwiki"><img src="https://mcp.tc/i/deepwiki/badge.svg" alt="DeepWiki on mcp.tc" height="20"></a>
Badge preview, lightBadge preview, dark
Compact badge preview, lightCompact badge preview, dark
  • ?theme=auto (the default) follows the reader’s light or dark mode; ?theme=light and ?theme=dark fix it.
  • ?style=compact shows the mark without the word “mcp.tc” (second row above).

It’s a plain SVG under 2 KB with nothing else to load, so it works in GitHub READMEs and anywhere images do. Badges, cards and iframes are in English, whatever the language of the page they sit on.

Card for your website

Paste one tag where the card should appear:

HTML
<script src="https://mcp.tc/w/deepwiki.js" async></script>

Or put a placeholder wherever you like and load the script once, anywhere on the page. Every placeholder for that server gets a card. Whatever you put inside a placeholder shows until the card replaces it, and stays for visitors without JavaScript:

HTML
<div data-mcptc="deepwiki"><a href="https://mcp.tc/i/deepwiki">DeepWiki on mcp.tc</a></div>
<script src="https://mcp.tc/w/deepwiki.js" async></script>
  • data-theme: auto (the default, follows the visitor’s light or dark mode), light or dark.
  • data-size: full (the default, with the tagline) or compact.
  • The card is up to 520 px wide (420 px compact) and fills narrower spaces. Set the CSS variable --mcptc-max-width on the placeholder or a parent to change that.

It shows the icon, name and checkmark, what the server needs (sign-in, a key, a local install), the server’s own URL or install command with a Copy button, one-click “Add to” buttons for Claude Code, Cursor, VS Code and claude.ai (for the clients that can use it), and a link to the listing.

What it does on your page

  • Each file holds everything: the listing’s data, the styles and the icon. It makes no other requests and sets no cookies or local storage, so there is nothing to track visitors with.
  • It draws inside a closed shadow root: your styles don’t reach it and its styles don’t reach your page.
  • It writes text only as text (never as HTML) and links only to mcp.tc and the clients’ own install pages, over HTTPS.
  • With a Content Security Policy, allow script-src https://mcp.tc. The icon is a data: image; if your policy blocks those, the card shows the first letter of the name instead.
  • For a slug that isn’t listed, nothing appears and the browser console shows a warning.

iframe

For pages that don’t allow scripts, such as site builders and wikis, the compact card also comes as a page of its own:

HTML
<iframe src="https://mcp.tc/embed/deepwiki" title="DeepWiki on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>
  • It’s 200 px tall at any width from 320 px. Long names and URLs end with an ellipsis, and the “Add to” buttons scroll sideways when they don’t fit.
  • ?theme=light or ?theme=dark fixes the colors; without it the card follows the visitor’s mode.
  • allow="clipboard-write" lets its Copy buttons work. It’s the only mcp.tc page other sites may frame, and search engines don’t index it.

Listing data as JSON

Every listing is also available as JSON, for your own pages and tools:

https://mcp.tc/i/deepwiki.json

Any site can read it: the answer carries Access-Control-Allow-Origin: *. It’s read-only and needs no key. A slug that isn’t listed gets 404 and a removed listing 410, with error set to not_found or gone. Fields that have no value are null, never left out. The text is the listing’s English original.

FieldTypeWhat it is
slugstringThe listing’s current slug. Old slugs and aliases return the current listing, so read it from here.
namestringServer name.
vendorstring or nullWho makes the server.
taglinestring or nullOne line, up to 200 characters.
descriptionstring or nullPlain text, paragraphs separated by a blank line, up to 2,000 characters. An AI model wrote it from the server’s public metadata.
linkstringThe listing page, https://mcp.tc/i/{slug}.
category
category_name
string or nullCategory slug (as in /c/{slug}) and its name.
kindstringremote (you connect over HTTPS) or local (runs on your computer).
transportstringstreamable-http, sse or stdio.
authstringnone, oauth, api_key, optional or unknown.
accessobjectHow mcp.tc labels it: group (ok, auth or local, the directory’s Access filter), label (badge text, like “No sign-in”), text (long form) and note (one sentence).
endpointstring or nullThe server’s own URL (remote servers). This is what a client connects to.
install_commandstring or nullThe command that starts a local server, like npx -y @playwright/mcp.
packageobject or nullregistry (npm, pypi, oci, nuget…) and identifier.
relaybooleanFalse for every listing: the mcp.tc link is a page, and clients connect to the server’s own URL. The field stays so existing readers keep working.
verified
verified_by
boolean, string or nullThe checkmark, and what it means for this listing.
iconstring or nullURL of the listing’s 128 × 128 icon on mcp.tc.
tools_count
tools
number, arrayTools read from the server (up to 150): name, summary, and read_only / destructive (true, false, or null when the server doesn’t say).
addarrayThe one-click actions: client (claude-code, cursor, vscode, claude-ai), label, kind and value: a command to copy for copy, an install link for link. They always use the server’s own URL or package.
homepage
repository
docs
string or nullLinks from the listing.
healthstringOur last check: ok, auth (it answered and asked for sign-in), down or unknown (local servers aren’t checked).
last_checked
listed
updated
string or nullISO 8601 times in UTC: the last check, when it was listed, the last change to its content.
embedsobjectThis listing’s badge, widget, iframe and markdown URLs.
formatstringA link to this page.

The directory as a whole has its own formats: the search index, the MCP-registry-compatible API, and the llms.txt list. Append .md to a listing link for Markdown.

Caching and privacy

  • The card and the iframe carry install buttons, so they refresh quickly. Our CDN (Cloudflare) keeps the card script for 15 minutes and browsers keep it for up to 4 hours. The iframe and the JSON come from mcp.tc on every request, and browsers keep them for 10 minutes.
  • The badge only shows a name. Cloudflare keeps it for a day and browsers for up to 4 hours; while Cloudflare refreshes a copy, it can serve the old one for up to a week.
  • Embeds set no cookies, and requests for them aren’t written to our access log. The Privacy Policy has the details.
  • You can use them for any listed server, on any site, for free. The badge says a server is listed on mcp.tc, and the checkmark says who runs it. Neither one is a security review.