MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Knowledge & memory

Trademark Screen

Screen a brand name against the USPTO federal register — sound, class, live status, risk verdict.

Checks passed
14 / 22

1 failed · 7 not measured

Median response
578 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
12

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 580 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name trademark-clearance-mcp.

  • Pass
    Lists tools

    tools/list returned 12 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 578 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 580 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    34 of 34 parameters have a description (100%). The bar is 80%.

  • Fail
    Safety hints

    12 tools set neither readOnlyHint nor destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-06T17:48:02.901238Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using Trademark Screen

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http trademark-screen https://trademarkscreen.com/mcp

Capabilities

Tools 12

analyze_name

Analyze a brand name's strength WITHOUT checking the register — read-only, offline, deterministic (same name always gives the same result). Returns JSON with the distinctiveness spectrum (fanciful / arbitrary / suggestive / descriptive / generic), phonetic collisions to check, and a checklist (other-language meanings, common-law use, state registers). Optional goodsDescription (what you sell) sharpens the analysis: a descriptive word for those goods scores weaker than the same word for unrelated goods. No live data and no register results — pair it with screen_trademark, which checks the actual federal register. Use this to judge how protectable a name is; use screen_trademark to judge whether it conflicts.

Discovered
check_domains

Check whether a brand name is free to register as a domain. Read-only. Returns JSON with one result per TLD (registered / available / unknown) — all TLDs are checked in parallel. Uses RDAP (the registry's own data, free, no key): 404 = not registered; 'unknown' = the TLD has no RDAP service. Covers .com/.io/.ai/.co/.app/.dev/.net/.org by default, or a custom TLD list. A free domain does NOT mean the trademark is clear, and a taken domain does not block the trademark — domains and trademarks are separate rights, so use screen_trademark for the trademark check.

Discovered
check_global_marks

Check a brand name against EU + UK trademark registers via TMview (EUIPO-operated, offices EM + GB). Read-only. Returns JSON with the EU/UK hits scored the same way as screen_trademark, plus the classes used. Use AFTER screen_trademark when you also sell in the EU/UK; the US screen is unaffected if TMview is down. BEST-EFFORT: TMview has no published API and resets connections from plain HTTP clients — when it will not answer, this returns { checked: false, reason } with a manual link instead of failing. A clear EU/UK result is a signal, not clearance.

Discovered
check_watches

Run a check for NEW filings RIGHT NOW (on all your watches, or one by id) — this actually queries the register, unlike list_watches which only shows what you have. Returns JSON with only the filings that appeared since the watch started / last check, scored by risk. Use this when you want fresh results immediately; the scheduled checker also runs daily at 09:00 on each watch's own cadence (daily by default). SCREEN ONLY — not clearance, not legal advice.

Discovered
compare_marks

Compare two specific names side-by-side. Read-only, deterministic — the same two names always give the same scores. Returns JSON with visual similarity, Jaro-Winkler, phonetic (Soundex) similarity, an overall confusion score (0-1), and a risk level. Use to compare two names you already have in mind; use screen_trademark to discover conflicts for a name across the whole register (it also weighs classes and live/dead status, which this does not). Does not assess meaning, commercial impression, or class relatedness.

Discovered
list_watches

List the watches you ALREADY have — a read-only view, it does NOT check for new filings. Returns JSON with each watch's mark, classes, threshold, schedule, created/last-checked dates, total alerts so far, and the most recent new hits. Use this to see what you are watching; use check_watches to actually run a check for new filings right now. Private to one email — pass the email and the 6-digit code from request_watch_code, or a session token from a previous verification. No email addresses are ever returned.

Discovered
request_watch_code

Send a 6-digit verification code to an email address, for watch access. This sends an email (the only side effect) but creates nothing. Call it BEFORE list_watches, unwatch_mark, or attaching an email to a watch with watch_mark. The code expires in 10 minutes (5 tries); verifying it returns a 60-minute session token you can reuse for the other watch tools. A code is sent even if the email has no watches, so the response never reveals whether an address has watches.

Discovered
screen_trademark

Screen a brand name against the USPTO federal register. Read-only. Use this FIRST for any name. Returns JSON with a plain-English risk verdict (HIGH / MEDIUM-HIGH / MEDIUM / LOW), ranked conflicting marks (each with sound/appearance similarity, class relatedness, live/dead status, owner, serial), and the data-as-of date. Pass format "csv" to get the same results as a spreadsheet (one row per hit) instead of JSON. Limited to 100 screens/day on this server. SCREEN ONLY — not a clearance opinion, not legal advice. After this, use check_global_marks for EU/UK, check_domains for the domain, and watch_mark to monitor the name.

Discovered
suggest_classes

Suggest the Nice classes (1-45) a goods/services description falls under, with reasons. Read-only, pure reasoning — no live data, no register lookup. Input goodsDescription is what you sell (e.g. 'music streaming app'); the more specific it is, the better the classes. Returns JSON with the suggested classes (each with its label), the classes assumed from your wording, and the reasons. Use before filing to pick classes (each class costs $350 to file), or to feed classes into screen_trademark / check_global_marks. Always verify against the USPTO ID Manual for the exact pre-approved description.

Discovered
trademark_status

Authoritative status for ONE mark you already know, by serial number (sn12345678) or registration number (rn1234567). Read-only. Returns JSON with the mark's live/dead status, owner, classes, goods/services, and filing/registration dates. Uses TSDR if a free key is set, otherwise the public Trademark Search record. Use when you have a serial/registration number (e.g. from a screen_trademark hit) and want the authoritative record for that one mark — not for searching by name (use screen_trademark for that).

Discovered
unwatch_mark

Stop watching a mark. This DELETES the watch (a side effect — it is removed and will no longer be checked). Returns JSON { removed, ok: true }. If the watch has an email, you must prove you own it — pass the email and the 6-digit code from request_watch_code, or a session token. A watch with no email needs no verification.

Discovered
watch_mark

Start watching a mark for NEW confusingly similar filings. This CREATES a watch (a side effect — it stores the watch and sends a confirmation email with the stop link). Runs a baseline screen first — everything already on the register is marked seen, so you are only alerted on filings that appear AFTER the watch starts. Returns JSON with the watch id, its classes/threshold/schedule, and the baseline hits (for context). Check for new filings with check_watches, or let the scheduled checker run (daily by default, or weekly / every N days if you set a schedule). An email is required — it is the watch's owner, and the digest goes there (needs RESEND_API_KEY on the server; without it the watch still works and records hits, and alerts start once email is switched on). The email must be verified first — call request_watch_code, then pass the email and code (or the session token); without verification the watch is refused, so nobody can attach someone else's inbox. SCREEN ONLY — not clearance, not legal advice.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected580 ms12
Connected575 ms12