Trademark Screen
Server Details
A fast first-pass screen against the USPTO federal register — sound-alikes, look-alikes, and same or related classes, in plain English. Below are all Tool descriptions
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 12 tools
Descriptions explicitly delineate boundaries: screen_trademark (US register) vs check_global_marks (EU/UK) vs compare_marks (two known names) vs analyze_name (offline strength) are clearly separable. Similarly, list_watches (view only) is distinguished from check_watches (run now), and request_watch_code's auth role is spelled out. Each tool targets a distinct resource and action.
Nearly all tools follow a verb_noun pattern (screen_trademark, check_domains, watch_mark, unwatch_mark, list_watches, suggest_classes). The lone deviation is trademark_status, which is noun-first rather than a verb form like get_status. This is a minor inconsistency in an otherwise predictable scheme.
Twelve tools is well within the ideal 3-15 range and each earns its place in the trademark screening workflow. There is no redundancy or filler; the auth/watch lifecycle tools are justified by real side effects.
Coverage is strong: US and EU/UK screening, domain checks, class suggestions, name strength analysis, comparison, status lookup, and a full watch lifecycle (create/list/check/delete/auth). The only minor gap is that a watch's schedule or threshold cannot be updated without deleting and recreating it.
Available Tools
12 toolsanalyze_nameAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Proposed brand name to analyze, e.g. NOVABREW | |
| goodsDescription | No | What you sell, e.g. 'music streaming app' — sharpens the distinctiveness analysis for those goods; omit for a name-only read |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden and does so: it declares the tool read-only, offline, deterministic ('same name always gives the same result'), and warns that there is 'no live data and no register results.' It also discloses the shape of the response, which matters for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key constraint is front-loaded and every sentence contributes routing or output information. It is slightly redundant, since 'no live data and no register results' restates the opening 'WITHOUT checking the register', but the density is justified for a tool whose behavior differs sharply from its siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, non-destructive analysis tool with no output schema, the description covers scope, determinism, data freshness, return contents, the optional parameter's effect, and sibling routing. Nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description adds genuine meaning beyond the schema: it explains the mechanism by which goodsDescription matters — 'a descriptive word for those goods scores weaker than the same word for unrelated goods' — and frames omitting it as a valid name-only read.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Analyze a brand name's strength') and immediately bounds the scope ('WITHOUT checking the register — read-only, offline, deterministic'). It also names the exact output artifacts (distinctiveness spectrum, phonetic collisions, checklist), so an agent can distinguish it from screen_trademark without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing is provided in both directions: '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.' The when-to-use and when-not-to-use conditions are stated outright rather than implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_domainsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Brand name, e.g. NOVABREW — the .com etc. are checked for this exact string | |
| tlds | No | TLDs to check, without the dot. Default: com, io, ai, co, app, dev, net, org |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations were supplied, so the description carries the full burden and does so well: it declares read-only status, the per-TLD result values (registered/available/unknown), parallel checking, and even the underlying RDAP semantics (404 means not registered, 'unknown' means no RDAP service). It does not mention rate limits, latency, or failure modes for network errors, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then result shape, then mechanism, then scope caveat and sibling routing — a sensible order. It is dense but not padded; the only mild redundancy is repeating the default TLD list that the schema already provides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description compensates by explaining the return format (one JSON result per TLD with three possible values) and the domain-vs-trademark boundary. An agent has everything needed to call it correctly and interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are already documented with examples and the default TLD list, so the description adds little beyond restating the default set and the custom-list option. Baseline 3 is appropriate where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Check whether a brand name is free to register as a domain') and immediately differentiates itself from the sibling screen_trademark by scoping itself to domains, not trademarks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative tool and the condition that selects it: 'use screen_trademark for the trademark check'. It also warns what this tool does not establish (a free domain does not mean the trademark is clear), which prevents the most likely misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_global_marksAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Proposed brand name, e.g. SUMMRISE | |
| classes | No | Nice classes (1-45) if known; otherwise inferred from goodsDescription | |
| goodsDescription | Yes | What you sell — used to infer classes for the class-relatedness scoring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden, and it does substantial work: declares read-only semantics, describes the return shape (EU/UK hits scored like screen_trademark, plus classes used), and discloses the degraded path ({ checked: false, reason } with a manual link) with the underlying cause (TMview has no published API and resets connections from plain HTTP clients). It does not mention latency or retry behavior, which is the main remaining gap for a best-effort network-dependent tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what is checked and where, then return shape, then the ordering rule, then the failure mode and the legal caveat. Each sentence carries a distinct load and none is filler, including the compact "Read-only." fragment.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description covers the gaps that matter: return contents, degraded-response shape, cause of failure, and the caveat that a clear result is a signal, not clearance. Nothing an agent needs to call it, interpret it, or recover from failure is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents name, classes, and goodsDescription including the inference behavior. The description adds only tangential meaning via "the classes used" and "class-relatedness scoring," without new format or syntax guidance beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) and resource (a brand name against EU + UK trademark registers via TMview), and names the exact jurisdictions covered (offices EM + GB). It also implicitly distinguishes itself from the US-focused screen_trademark sibling, so an agent can route correctly without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit ordering rule ("Use AFTER screen_trademark when you also sell in the EU/UK") and names the condition that selects this tool. It also states the US screen is unaffected if TMview is down, clarifying that partial failure here does not invalidate prior work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_watchesAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Watch id to check alone; omit to check all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the call actually queries the register, that results are limited to filings since watch start / last check, that they are risk-scored, and the scheduled cadence. It omits auth/rate-limit or cost details and does not state what happens on a watch with no prior check, which keeps it just short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and scope, then rationale and cadence; every sentence adds information. The em-dash-heavy, multi-clause opening sentence is slightly dense and could be split, but nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description supplies the return shape ('JSON with only the filings that appeared since... scored by risk') and a scope disclaimer ('SCREEN ONLY — not clearance, not legal advice'), which is the right amount for a single-parameter trigger tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the id parameter and its 'omit to check all' semantics are already documented. The description restates the same all-or-one behavior without adding format or edge-case detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run a check for NEW filings RIGHT NOW') with scope ('all your watches, or one by id') and explicitly distinguishes itself from list_watches ('which only shows what you have'). An agent can tell it apart from sibling tools without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('when you want fresh results immediately') and names the alternative behavior to expect from list_watches, plus the relationship to the scheduled daily checker. Both the trigger and the exclusion are spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_marksAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nameA | Yes | First name to compare, e.g. NOVABREW | |
| nameB | Yes | Second name to compare, e.g. NOVABRU |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full behavioral burden and does so: it declares read-only, deterministic behavior ("the same two names always give the same scores"), enumerates the returned JSON fields including the 0-1 scale of the confusion score, and states the analytical limits. These are exactly the traits a caller needs for a scoring tool with no structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each load-bearing: purpose, behavior/return shape, when-to-use routing, and exclusions. The key facts are front-loaded and there is no redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description lists the return fields and their scale, so an agent knows what comes back. For a two-parameter, read-only comparison tool, nothing needed to select or invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters documented and exemplified (NOVABREW vs NOVABRU), so the baseline is 3. The description adds only that the two inputs are "names"; it does not clarify edge cases such as casing, whitespace, or length differences beyond what the schema examples imply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource: "Compare two specific names side-by-side," and immediately names what is returned (visual, Jaro-Winkler, phonetic, confusion score, risk level). It explicitly differentiates itself from screen_trademark, so an agent can distinguish it from the sibling without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the selection condition directly: use this when you already have two names in mind, and use screen_trademark to discover conflicts across the register. It adds the reason for that routing (screen_trademark weighs classes and live/dead status) and closes with exclusions — no meaning, commercial impression, or class relatedness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_watchesAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | 6-digit code from request_watch_code, for the email above | |
| No | Email address on your watches | ||
| sessionToken | No | 60-minute watch session token from a previous verification |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden and does so: it declares read-only behavior, states it does not trigger checks, enumerates the returned fields, specifies the auth paths (email + 6-digit code or session token), and discloses the privacy guarantee that no email addresses are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core distinction (list vs. check) in the first clause, then layers return contents, alternative tool, auth, and privacy in a tight sequence with no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description enumerates the returned JSON fields (mark, classes, threshold, schedule, dates, alert count, recent hits) and covers authentication, so an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: it explains that code and sessionToken are alternative authentication routes ('or a session token from a previous verification') and ties the code to request_watch_code.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the watches you ALREADY have') and immediately scopes it as a read-only view that does NOT check for new filings, which cleanly separates it from the sibling check_watches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'Use this to see what you are watching; use check_watches to actually run a check for new filings right now.' Both the when and the when-not are named with the alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_watch_codeAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address to send the code to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so: it discloses the only side effect (sends an email), that nothing is created, the code lifetime (10 minutes), the attempt limit (5 tries), the resulting 60-minute reusable session token, and the privacy property that a code is sent regardless of whether the address has watches. This is exactly the behavior an agent cannot infer from a one-parameter schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose before prerequisites, then expiry/attempt limits, then the privacy rationale. Every sentence conveys a fact an agent needs; there is no filler or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain outcomes, and it does: the downstream 60-minute session token and the deliberate non-disclosure of watch existence. For a one-parameter, annotation-free tool this leaves nothing an agent needs missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter has 100% schema description coverage ('Email address to send the code to'), so the schema already handles the basics and the baseline applies. The description adds only marginal parameter meaning, notably that an email with no watches still receives a code, which is behavioral context rather than syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Send a 6-digit verification code to an email address') plus the scope ('for watch access'), which immediately separates it from the sibling watch tools and from domain/mark screening tools. An agent knows exactly what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit ordering ('Call it BEFORE list_watches, unwatch_mark, or attaching an email to a watch with watch_mark') and names the exact siblings it precedes. This is a clear when-to-use rule with the alternatives identified, not implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_trademarkAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Proposed brand name, e.g. NOVABREW | |
| format | No | Response format: 'json' (default, full result) or 'csv' (same results as a spreadsheet — one row per hit, for saving or sharing) | json |
| classes | No | Nice classes (1-45) if you know them; otherwise inferred from goodsDescription | |
| includeDead | No | Also return dead/abandoned marks (lower risk, but useful context) | |
| goodsDescription | Yes | What you sell, e.g. 'music streaming app' or 'coffee shop' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: read-only semantics, a 100 screens/day rate limit, the shape of the result (risk verdict tiers, ranked conflicts with similarity/class/live-dead/owner/serial, data-as-of date), and a CSV variant. It also discloses the liability boundary, which is behaviorally relevant for a legal-adjacent tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then read-only and rate limit, then return payload, then the sibling handoffs — a sensible ordering with little wasted wording. It is dense, packing a long parenthetical inventory of returned fields, but every sentence carries usable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, two-required-parameter tool with no output schema and no annotations, the description supplies everything an agent needs: scope, safety profile, quota, return contract, and next steps. No material gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented and the baseline is 3. The description only restates the format='csv' behavior (one row per hit, spreadsheet-friendly) without adding syntax, defaults, or guidance on when to specify classes versus letting them be inferred.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — screening a brand name against the USPTO federal register — and frames it as the US-jurisdiction step distinct from check_global_marks (EU/UK) and check_domains. An agent can distinguish it from every sibling without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this FIRST for any name' and then chains the alternatives in order: check_global_marks for EU/UK, check_domains for the domain, watch_mark to monitor. It also states exclusions ('SCREEN ONLY — not a clearance opinion, not legal advice'), so both when-to-use and when-not-to-use are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_classesAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| goodsDescription | Yes | What you sell, e.g. 'music streaming app' or 'coffee shop' — the more specific, the better the class suggestions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, and it does disclose key behavior: read-only, pure reasoning, no live data, no register lookup, and even a cost motivator ($350 per class). It also describes the return payload without an output schema. What keeps it from a 5 is the absence of any statement about confidence, failure modes, or what happens with an ambiguous/empty description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, then constraints, then usage routing, then the verification caveat — a sensible order with no wasted sentences. There is minor redundancy, since the specificity guidance on goodsDescription is repeated from the schema, but nothing is bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-param, annotation-free, output-schema-less tool, the description covers everything an agent needs: input meaning, reasoning-only nature, return structure (classes with labels, assumed classes, reasons), recommended downstream tools, and a verification caveat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole param's schema description already includes the 'music streaming app' example and the specificity hint. The description mostly restates that ('goodsDescription is what you sell... the more specific it is, the better'), adding little beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Suggest the Nice classes (1-45) a goods/services description falls under, with reasons.' The parenthetical range and the 'with reasons' qualifier pin down scope, and no sibling tool (screen_trademark, check_global_marks, analyze_name) does class suggestion, so it is trivially distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use cases ('before filing to pick classes... or to feed classes into screen_trademark / check_global_marks') and an explicit when-not ('no live data, no register lookup'), plus a follow-up action ('Always verify against the USPTO ID Manual'). The decision context is fully spelled out rather than inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trademark_statusAInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Serial like sn98765432 or registration like rn1234567, or a bare number (treated as serial) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description supplies the safety profile itself (read-only) plus a non-obvious data-source caveat: TSDR when a free key is set, otherwise the public Trademark Search record, which implies possible differences in freshness or coverage. It also enumerates the returned fields. It stops short of stating behavior on a missing/invalid number or how latency/rate limits differ between the two backends.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph that front-loads the purpose and identifier format before the routing rule. Some waste in repeating the sn/rn examples already in the schema, but nothing extraneous beyond that.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup with no output schema, the description covers identity, scope, data source, and return contents, which is nearly everything needed. Only not-found/error handling is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the id parameter's description already covers sn/rn prefixes and the bare-number fallback, so the description's format examples largely restate structured data. Baseline 3 applies — no additional syntax, validation, or normalization behavior is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — authoritative status lookup for a single mark — and pins the identifier space (serial or registration number). It explicitly distinguishes itself from name-based searching, so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the precondition (you already have an sn/rn, e.g. from a screen_trademark hit) and the exclusion (not for searching by name — use screen_trademark). Both when-to-use and the alternative are stated outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unwatch_markAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Watch id (e.g. novabrew) or the mark name | |
| code | No | 6-digit code from request_watch_code, for the email above | |
| No | Email address on the watch | ||
| sessionToken | No | 60-minute watch session token from a previous verification |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses that removal is a destructive side effect, that the watch will no longer be checked, the exact JSON return shape ({ removed, ok: true }), and the conditional authentication requirement. This is exactly the context annotations would otherwise need to supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the action and its destructive effect, then the return value, then the auth rule. No filler; the parenthetical clarifying the deletion side effect is the only emphasis and it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no annotation coverage and no output schema, the description still explains the destructive effect, the return payload, and the conditional verification flow for all four parameters. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds conditional meaning the schema does not convey: email and code vs. sessionToken are alternative verification paths that only apply when the watch has an email. The id parameter's dual role (watch id or mark name) is left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Stop watching a mark') and immediately clarifies that this deletes the watch. That is enough to separate it from the sibling watch_mark (which creates a watch) without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the prerequisite condition explicitly: an email-bearing watch requires proof of ownership via email plus a 6-digit code from request_watch_code, or a session token, while a watch with no email needs no verification. It does not name watch_mark or list_watches as alternatives for agents that may have called the wrong tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_markAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | 6-digit code from request_watch_code, for the email above | |
| name | Yes | Your mark, e.g. NOVABREW | |
| Yes | Email address for new-filing alerts (required). Must be verified — see request_watch_code. | ||
| classes | No | Nice classes (1-45) if known; otherwise inferred | |
| schedule | No | How often the scheduled checker looks at this watch: 'daily' (every morning, default), 'weekly' (Tuesdays after the Gazette), or 'custom' (every scheduleDays days) | daily |
| threshold | No | Minimum risk score to alert on (0.45 = MEDIUM and up, 0.65 = MEDIUM-HIGH and up, 0.85 = HIGH only) | |
| scheduleDays | No | For schedule 'custom': check every N days (2–30) | |
| sessionToken | No | 60-minute watch session token from a previous verification, for the email above | |
| goodsDescription | Yes | What you sell, e.g. 'music streaming app' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does: it discloses the write side effect (watch is stored and a confirmation email with stop link is sent), the baseline screen that marks existing register entries as seen, the server dependency RESEND_API_KEY, and the email-verification gate that prevents attaching someone else's inbox. It also states the return payload (watch id, classes/threshold/schedule, baseline hits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the NEW-filings constraint, then prerequisites, then return shape. The parenthetical "(a side effect — it stores the watch...)" slightly repeats the mutation point already made by "CREATES", and the email section is dense, but almost every sentence carries operational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with no annotations and no output schema, the description covers everything an agent needs: auth prerequisite chain (request_watch_code → code/sessionToken), degraded-mode behavior without RESEND_API_KEY, alert cadence, and the shape of the returned JSON.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaning the schema does not: email is the watch's owner and digest destination, and code vs sessionToken are two interchangeable verification paths tied to request_watch_code. Schedule and threshold semantics are mostly restated from the schema rather than extended, keeping it below a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Start watching a mark for NEW confusingly similar filings" gives a specific verb (start watching) and resource (a mark, producing a watch). The emphasis on NEW and the baseline-screen explanation distinguishes it from check_watches and list_watches, so an agent can route to it without comparing schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names alternatives and the conditions selecting them: use check_watches for new filings, let the scheduled checker run daily/weekly/custom, and call request_watch_code first for verification. Exclusions are explicit — without verification the watch is refused, and it is screen-only, not clearance or legal advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
analyze_name2 fields changed- added
Input schema / properties / goodsDescription / descriptionAdded value: +"What you sell, e.g. 'music streaming app' — sharpens the distinctiveness analysis for those goods; omit for a name-only read" - added
Input schema / properties / name / descriptionAdded value: +"Proposed brand name to analyze, e.g. NOVABREW"
- Changed
compare_marks2 fields changed- added
Input schema / properties / nameA / descriptionAdded value: +"First name to compare, e.g. NOVABREW" - added
Input schema / properties / nameB / descriptionAdded value: +"Second name to compare, e.g. NOVABRU"
- Changed
suggest_classes1 field changed- added
Input schema / properties / goodsDescription / descriptionAdded value: +"What you sell, e.g. 'music streaming app' or 'coffee shop' — the more specific, the better the class suggestions"
12 tool updates
- First observed
analyze_name - First observed
check_domains - First observed
check_global_marks - First observed
check_watches - First observed
compare_marks - First observed
list_watches - First observed
request_watch_code - First observed
screen_trademark - First observed
suggest_classes - First observed
trademark_status - First observed
unwatch_mark - First observed
watch_mark
Related MCP Connectors
Trademark clearance (USPTO+TMview) and self-graded stock signals for AI agents. JSON verdicts.
Search, screen and monitor trademarks across USPTO, EUIPO, WIPO, UKIPO and more with one API.
Generate startup names with an available .com, checked live, then screen US and EU trademarks.
USPTO trademark data: 14M+ marks, owners, Office Actions, TTAB cases. Public tools need no account.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables read-only screening of brand names against US federal trademark records, identifying identical and similar marks across selected classes.17 npmMIT
- AlicenseAqualityNot gradedmaintenanceStdio-based MCP server with 12 tools for brand name availability and safety checks. Returns structured JSON for domains (with pricing), social handles, USPTO/EUIPO trademarks, app stores, package registries, safety scoring, batch comparison, and filing readiness.1218 npm-
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to search and screen US intellectual property — granted patents with full claims, published applications, trademarks in every status, owners, inventors, USPTO documents, prosecution file wrappers, PTAB trials, and e-commerce product pages. Supports freedom-to-operate screenings, knockout trademark searches, and patent status/expiry/ownership checks through a single authenticated remote connection.1MIT
- AlicenseNot gradedqualityDmaintenanceGenerates startup names with live .com availability checks and screens them against US and EU trademark registers.54 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.