Trademark Dispute MCP Server avatar

Trademark Dispute MCP Server

Pricing

from $50.00 / 1,000 tool calls

Go to Apify Store
Trademark Dispute MCP Server

Trademark Dispute MCP Server

Answer 'has anyone contested a mark like this' across the USPTO Trademark Trial and Appeal Board and the Canadian Trademarks Opposition Board. Reports disputes, not clearance.

Pricing

from $50.00 / 1,000 tool calls

Rating

0.0

(0)

Developer

NexGen Watch

NexGen Watch

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

🧰 Trademark Dispute MCP Server

Answer "has anyone contested a mark like this" across two public dispute registers — the USPTO Trademark Trial and Appeal Board (TTABVUE) and the Canadian Trademarks Opposition Board — live.

Built for naming and brand work.

This is a standby MCP server: it stays warm on Apify and answers tool calls from any MCP client (Claude Desktop, Cursor, an agent framework) at https://nexgenwatch--trademark-dispute-mcp.apify.actor/mcp. Billing is pay-per-event: $0.05 when the server starts, then $0.05 per tool call (mcp-tool-call). Source: decisions.opic-cipo.gc.ca, ttabvue.uspto.gov.

No login, no source API key and no CAPTCHA solving are involved: the source is read logged-out.

📊 Sample Output

Trademark Dispute MCP Server sample output — the 4 tools the standby server serves (tool, arguments, what it returns), read from the live server on 2026-09-24

A standby server answers tool calls rather than writing a dataset, so the sample is the server's own live health answer (GET https://nexgenwatch--trademark-dispute-mcp.apify.actor/, HTTP 200, read on 2026-09-17) followed by its tool table:

{
"server": "trademark-dispute",
"billing_gate": true,
"declared_events": [
"apify-actor-start",
"mcp-tool-call"
],
"scope": "Trademark DISPUTES in two public registers: the USPTO Trademark Trial and Appeal Board (TTABVUE -- oppositions, cancellations, appeals) and the Canadian Trademarks Opposition Board's published decisions. These are contests over marks, NOT publication registers. No Nice classification is available from either route.",
"rate_limit_per_sec": {
"ttabvue": 2.0,
"cipo": 1.0
},
"rate_waits": {
"ttabvue": 0,
"cipo": 0
},
"ready": true
}
ToolArgumentsWhat it returns
check_mark`name: str, sources: listNone = None, limit: int = 25`
find_us_disputesquery: str, page: int = 1, limit: int = 25USPTO Trademark Trial and Appeal Board proceedings mentioning a term — the opposition, cancellation or appeal, both parties, and the marks at issue.
find_canadian_disputes`party_or_mark: strNone = None, limit: int = 25`
explain_limits``What this server can and cannot tell you, why it sells disputes rather than publications, and the five measured facts about these two sources.

✅ What you get

4 tools, each returning a JSON object built only from what the source answered, with a scope and note field stating what the source does and does not cover. A lookup the source answers with 'not found' is a sourced answer (charged); malformed input or a source failure returns a notice that is NOT charged; nothing is ever fabricated.

Read this first: an absence of disputes is not clearance

This server reports marks that were contested. Most trademarks are never contested, so zero results says nothing about whether a conflicting mark exists. It does not clear a name, does not search publication registers, and is not legal advice. Every answer repeats this.

Why disputes and not publications. There is no public, logged-out, key-free source for recent US or Canadian trademark publications: USPTO's TSDR and Open Data APIs are key-gated (401 / 403), its gazette and dataset portal are JavaScript shells, its bulk host is unreachable, and CIPO's bulk file was last refreshed 2024-08-30 on a host whose TLS certificate fails to verify. The dispute side of both registers is live and key-free, so that is what this server does — and it says so rather than dressing disputes up as clearance.

Neither route carries a Nice classification. If you need class-scoped clearance, this is not that product.

Five things this server gets right that a naive read gets wrong

Measured live on 2026-07-30.

1. The Canadian year filter is ignored — proven control vs test

year=2026 -> 138 decisions, citation years {2026}
year=2025 -> 138 decisions, citation years {2026} <- identical set
year=2015 -> 138 decisions, citation years {2026} <- identical set
no year -> 138 decisions, citation years {2026}

month is ignored too; only page is real. So this server offers no year filter — it would be selling a parameter the source discards. Its Canadian scope is exactly what the board currently lists, and every answer reports the real date range it read.

2. The Canadian listing renders inside an iframe

nav_date.do?page=1 -> 200, 25,076 B, ZERO decision links
nav_date.do?iframe=true&page=1 -> 200, 44,539 B, 25 decisions

Without iframe=true the source returns a perfectly healthy 200-OK page of site chrome with no decisions in it. A page told to hold results and holding none is treated as a failure here, never as "no disputes".

3. The US result count is capped at "100+", so it is not a count

qs=nike -> "Number of results: 100+" (a cap)
qs=kombucha -> "Number of results: 56" (a real number)

A capped count is reported as a floor, never as a total.

4. The US search runs over proceeding documents, not the mark

The source echoes your query as "Document contains all words: NIKE". On page 1 of that search the marks are DNK, DUNK, MIGHT DO IT, JUST DO IT — and only 7 of 116 marks on the page contain "nike". That is the useful behaviour (these are the marks that got contested) but it looks broken if you expect a mark-name search. So every row reports separately whether your query appears in a mark or only in a party name — the first is the signal a naming buyer wants; the second is much weaker.

5. Canadian filtering is client-side, and the sweep reports its own completeness

The board's search endpoints 404 — three shapes tried. The only working route is the paged listing, so the name filter is applied here over a complete sweep (measured: 138 decisions, 6 pages, ~256 KB), and every answer states how many decisions were searched.

The Canadian host also throttles: a sweep at 2 requests/second earned an HTTP 403 partway through. It runs at 1 request/second with bounded backoff, and if it still stops short it returns what it read plus the reason — because "no disputes" from a partial sweep is the most damaging wrong answer this product can give.

Tools

toolwhat it answers
check_markHas anyone contested a mark like this — both registers in one call
find_us_disputesTTAB proceedings mentioning a term: type, both parties, the marks at issue, serial and registration numbers
find_canadian_disputesOpposition Board decisions, filtered by party or mark, with the scope actually searched
explain_limitsWhat this server will and will not say, and the five traps above. Read before acting.

Scope and pacing

ttabvue.uspto.gov/robots.txt is 404 — no rules. decisions.opic-cipo.gc.ca/robots.txt is 200 and disallows exactly two documents, neither in this collection. Each host has its own strict-pacing bucket: 2 req/s for the US, 1 req/s for Canada, the latter because it was measured throttling.

⚙️ Sample inputs

1. Connect an MCP client (Claude Desktop / Cursor style config; your Apify API token goes in the header):

{
"mcpServers": {
"trademark-dispute-mcp": {
"url": "https://nexgenwatch--trademark-dispute-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
}

2. One tool call over JSON-RPC (what the client sends to /mcp; each call is one mcp-tool-call event):

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "check_mark",
"arguments": {
"name": "<name>",
"sources": "<sources>",
"limit": 25
}
}
}

3. Health check from a shell (free — no tool call is charged):

$curl -H "Authorization: Bearer $APIFY_TOKEN" https://nexgenwatch--trademark-dispute-mcp.apify.actor/

🧾 JSON sample record

The live health record above is the server's own answer; a tool result carries the fields listed in the tool table plus scope and note.

🔧 How it works

Source. decisions.opic-cipo.gc.ca, ttabvue.uspto.gov — endpoints: https://decisions.opic-cipo.gc.ca, https://ttabvue.uspto.gov/ttabvue/v. Public, logged-out reads only.

Standby. Apify keeps one server process warm; each MCP session is served by that process and idle servers are stopped by the platform. Nothing is cached between calls except what the source itself caches.

Charging. Every tool call charges one mcp-tool-call at $0.05 through Apify's pay-per-event billing before the answer is returned; the declared events are asserted against the live pricing at startup (billing_gate in the health answer).

What is not done. No login, no CAPTCHA bypass, no private data, no scraping of pages the source does not publish to any visitor.

💰 Pricing example

EventFreeBronzeSilverGold
Actor Start (apify-actor-start)$0.05$0.05$0.05$0.05
Tool call (mcp-tool-call)$0.05$0.05$0.05$0.05
  • 10 tool calls in one session: $0.05 start + 10 × $0.05 = $0.55
  • 100 tool calls in one session: $0.05 start + 100 × $0.05 = $5.05
  • 1000 tool calls in one session: $0.05 start + 1000 × $0.05 = $50.05

A health check or a connection that makes no tool call charges only the $0.05 start fee. A sourced 'not found' answer is a completed tool call and is charged; a notice for malformed input or a source failure is not charged (settle() charges only chargeable outcomes).

The server reads public data published by decisions.opic-cipo.gc.ca, ttabvue.uspto.gov to any visitor, identifies itself, and does not access accounts or private data. Use the answers in line with the source's terms and your local law; the intended use is B2B research and agent tooling.

❓ FAQ

Q: Do I need a source API key?
A: No. decisions.opic-cipo.gc.ca, ttabvue.uspto.gov is read logged-out. You need only your Apify API token to connect to the server.

Q: Which MCP clients work?
A: Any client that speaks the MCP HTTP transport: Claude Desktop, Cursor, Windsurf, LangChain/LlamaIndex MCP adapters and Apify's own MCP client. Point it at the /mcp URL above.

Q: What happens when the source has no answer?
A: A sourced 'not found' (for example a 404 for an unknown identifier) comes back as an answer with scope and note explaining what was checked (where the server carries those fields), and is charged as a completed call; malformed input or a source outage returns a notice that is not charged. Nothing is invented.

Q: How is a call billed?
A: One mcp-tool-call event per tool call at $0.05, plus $0.05 when the server starts. Idle time is not billed to you.

Q: Is it rate limited?
A: The server paces requests to the source (RATE_PER_SEC=2.0) and answers calls in the order they arrive.

Q: Can I call it without an MCP client?
A: Yes — the /mcp endpoint is plain JSON-RPC over HTTP (sample input 2), and GET / is a free health check.

🆘 Troubleshooting

  • 401 / 403 from the server → the Authorization header is missing or the token is wrong → use Bearer <your Apify API token>.
  • 400 Missing session ID → the client hit /mcp without initialising an MCP session → let the MCP client connect (it performs the handshake); raw JSON-RPC needs the session header the initialise call returns.
  • Tool returns a notice instead of data → the input was malformed or empty, or the source failed → the call was not charged; check the note/reason field, fix the input and call again.
  • First call is slow → the standby server was cold and Apify started it → later calls in the same session are fast.
  • Procurement Evidence MCP Server — Locate the public procurement record behind a claim across the UK, EU and US. Every row carries the awarding body's own record id and a direct public…
  • Research Funding Landscape MCP Server — Answer 'who funds research on this topic' across two public government registers: US National Science Foundation awards and UK Research and Innovatio…
  • SEC Filing Evidence MCP Server — Locate the SEC filing behind a claim. Every answer carries the accession number, the filing date and a direct SEC URL, so an agent's claim about a pu…
  • UK Competition Case MCP Server — Answer 'is there a UK competition case touching these companies or this market' from the Competition and Markets Authority case register, with an exp…
  • UK Parliament Stakeholder MCP Server — An MCP server over the official UK Parliament Members API (members-api.parliament.uk) —
  • UK Planning Constraints MCP Server — An MCP server over the official planning.data.gov.uk platform — ~220 national planning
  • 🏢 About NexGenData — NexGen Watch is NexGenData's fleet of 256 public monitoring and lookup actors built on official sources, pay-per-result. Browse the catalog at apify.com/nexgenwatch.

⭐ Found this useful?

If this server answered a question your agent could not, a quick review on the Apify Store helps other teams find it. Feature request or a source that changed? Open it from the Issues tab — every one is read.