Antevo Trademark MCP
This MCP server provides public trademark screening tools, allowing agents to check name availability and access opposition deadlines. Signed-in tools enable watchlist management and holder investigations for authenticated users.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://trademark.antevo.ch/mcpWhat its tools do
16 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (12)
Can change data (4)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to antevo.ch ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Check if a trademark name is available
- View opposition deadlines
- Manage trademark watchlists
- Investigate trademark holders
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- antevo-trademark 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 16 advertised
- Resources
- 0 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
16 advertised
screen_mark — Screen a brand name
Screens one brand name against trademark registers. No account needed. Returns the registered and pending marks closest to the name (up to 25), each with a similarity tier, and the registers those marks are filed in. EU marks come from EUIPO's search; the other registers are read from Antevo's copy, refreshed from each office, so a filing from the last few days can be missing. It is a screen, not clearance.
{
"type": "object",
"title": "screen_markArguments",
"required": [
"mark"
],
"properties": {
"mark": {
"type": "string",
"title": "Mark"
}
}
}{
"title": "Screen a brand name",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_names — Screen a shortlist of names
Screens a shortlist of up to 15 candidate names in one call: the trademarks on file near each name, the companies registered under it, and whether its domains are registered. Ranks them fewest conflicts first: by how close the nearest mark is, then by companies registered under the name and domains taken, then by how many near marks there are. No account needed. Optional `classes` (Nice class numbers) make marks filed only in unrelated classes weigh less; without them, a mark in any class counts. The Swiss company register and the .ch and .com domains are always checked; `countries` ("UK", "SG") adds those company registers, and .sg for Singapore. Returns, for each name, a trademark verdict on what is on file (none_found, similar, close or identical), how many near marks were found, where they are filed and the closest three; per country, the companies registered under the same or a similar name (name and legal form only); and whether each domain is registered or appears unregistered. A source that did not answer says not_checked, never that nothing is on file, and names whose trademark screen did not finish are listed under not_checked. none_found means none were found, not that the name is free to use, and an unregistered domain can be taken at any time: it is a screen, not clearance, and a filing from the last few days can be missing.
{
"type": "object",
"title": "check_namesArguments",
"required": [
"names"
],
"properties": {
"names": {
"type": "array",
"items": {
"type": "string"
},
"title": "Names"
},
"classes": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Classes",
"default": null
},
"countries": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Countries",
"default": null
}
}
}{
"title": "Screen a shortlist of names",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}suggest_classes — Which classes to file in
Which Nice classes a business like this files in. No account needed, and no register is searched: it maps the description onto the Nice classification. The question people cannot answer for themselves: not "is my name taken" but "taken in WHAT". Nice has 45 classes and the numbering is opaque — software you download is class 9, software you log into is class 42, and selling other people's goods is class 35 whatever the goods are. Filing in one and not the other is the most expensive routine mistake in the process. Takes a description of the business and returns the classes similar businesses file in, with the reasoning for each and a closing caveat: this reports how similar businesses file, not what this one should file.
{
"type": "object",
"title": "suggest_classesArguments",
"required": [
"description"
],
"properties": {
"description": {
"type": "string",
"title": "Description"
}
}
}{
"title": "Which classes to file in",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}holder_read — Read a trademark holder
Who a holder is and how they file — the read on an adversary. Free. Computed from their whole register book: how much of it they let lapse, whether their marks cluster where they trade or spray across unrelated classes, and the leverage that gives counsel. Returns the evidence behind each finding; it draws no legal conclusions about the holder. Corporate identity from PermID comes with `attribution`, its CC BY 4.0 credit.
{
"type": "object",
"title": "holder_readArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
}
}
}{
"title": "Read a trademark holder",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}opposition_window — Opposition window for an office
How long you have to oppose a filing in a given trademark office, and from when. Twenty registers, each with the provision the window comes from. The trap this answers: most offices run opposition BEFORE registration, from publication of the application, but a minority — Switzerland, Germany, Japan, Sweden — register the mark first and run the window from publication of the REGISTRATION. Applying one office's rule to another invents a deadline that never existed. Accepts a country name, an office name or a two-letter code ('japan', 'JP', 'EU').
{
"type": "object",
"title": "opposition_windowArguments",
"required": [
"office"
],
"properties": {
"office": {
"type": "string",
"title": "Office"
}
}
}{
"title": "Opposition window for an office",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}filing_landscape — How busy a class is
Filing activity in a Nice class — volume by month and the busiest filers. Signed-in. Answers "how crowded is my space" and "who keeps filing near me". Pass a Nice class (9, 42, 36…), optionally an office code ('EM', 'US', 'GB', 'CH'), and a window in months. EVERY COUNT IS OF OUR MIRROR, NOT OF THE OFFICE, and the two differ by a lot for some offices right now. Each office carries its own `coverage`, and any office whose mirror is behind is named in `do_not_quote`: for those offices a low count means filings not yet ingested, not filings that were never made.
{
"type": "object",
"title": "filing_landscapeArguments",
"required": [
"nice_class"
],
"properties": {
"months": {
"type": "integer",
"title": "Months",
"default": 12
},
"nice_class": {
"type": "integer",
"title": "Nice Class"
},
"jurisdiction": {
"type": "string",
"title": "Jurisdiction",
"default": ""
}
}
}{
"title": "How busy a class is",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}my_conflicts — Conflicts on my watched names
Everything currently near the names this user watches.
{
"type": "object",
"title": "my_conflictsArguments",
"properties": {}
}{
"title": "Conflicts on my watched names",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}my_deadlines — My upcoming deadlines
Renewals and closing opposition windows for this user. Each deadline has a `kind`: `opposition` carries a real date; `window_pending` means a filing is still in examination and nothing is running yet; `window_unknown` means a live threat whose deadline cannot be dated; `window_closed` means opposition is gone and the route is cancellation.
{
"type": "object",
"title": "my_deadlinesArguments",
"properties": {}
}{
"title": "My upcoming deadlines",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}my_watches — Names I am watching
The names this user is watching.
{
"type": "object",
"title": "my_watchesArguments",
"properties": {}
}{
"title": "Names I am watching",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}company_file — A holder's whole book
A holder's WHOLE book across every office. Founder and up. Corporate identity from PermID (organisation, HQ, PermID) comes with `company.attribution`, its CC BY 4.0 credit.
{
"type": "object",
"title": "company_fileArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
}
}
}{
"title": "A holder's whole book",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}follow_filer — Follow a filer
Follow an adversary — every filing they make, anywhere. Studio and up. Different from watching a name: this catches what they do NEXT, which is usually a different name in a class the user doesn't hold.
{
"type": "object",
"title": "follow_filerArguments",
"required": [
"filer"
],
"properties": {
"filer": {
"type": "string",
"title": "Filer"
}
}
}{
"title": "Follow a filer",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}watch_mark — Watch a name
Start watching a brand name: new filings near it show up as conflicts. Optionally takes Nice classes as a comma-separated list ('9,42'); blank watches every class.
{
"type": "object",
"title": "watch_markArguments",
"required": [
"mark"
],
"properties": {
"mark": {
"type": "string",
"title": "Mark"
},
"classes": {
"type": "string",
"title": "Classes",
"default": ""
}
}
}{
"title": "Watch a name",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dismiss_conflict — Clear a conflict as not a threat
Clear one hit as not-a-threat. Reversible — it moves to the Cleared list. Takes `jurisdiction` and `app_no` exactly as they appear on a conflict in the user's conflict list. A cleared hit, such as an unrelated business or the user's own filing, stops being surfaced.
{
"type": "object",
"title": "dismiss_conflictArguments",
"required": [
"jurisdiction",
"app_no"
],
"properties": {
"app_no": {
"type": "string",
"title": "App No"
},
"applicant": {
"type": "string",
"title": "Applicant",
"default": ""
},
"mark_text": {
"type": "string",
"title": "Mark Text",
"default": ""
},
"jurisdiction": {
"type": "string",
"title": "Jurisdiction"
}
}
}{
"title": "Clear a conflict as not a threat",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}filer_activity — Activity from filers I follow
What the filers this user follows have filed lately. Studio and up.
{
"type": "object",
"title": "filer_activityArguments",
"properties": {}
}{
"title": "Activity from filers I follow",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}run_investigation — Investigate a holder (spends a credit)
Research a trademark holder on the open web and return a cited dossier: who they really are (an operating company, a shell, a known squatter), their notable trademark activity or disputes, and any red flags. Signed-in. Spends one credit — included credits first, then purchased ones. A failed run costs nothing, and calling again for the same holder within 30 minutes returns that dossier at no charge (`reused: true`). The dossier is AI-written from cited web sources: research to check, not register fact.
{
"type": "object",
"title": "run_investigationArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
}
}
}{
"title": "Investigate a holder (spends a credit)",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}get_credit_balance — My credit balance
How many credits this user can spend and what each paid tool costs, in credits. Free to call. `remaining` is what can be spent now: `monthly_left` (included with their plan, resets each month) plus `topup_balance` (bought, never expires). `prices` is credits per call, by tool.
{
"type": "object",
"title": "get_credit_balanceArguments",
"properties": {}
}{
"title": "My credit balance",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
0 advertised
Resources
0 advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1150 ms
- 95th percentile latency
- 1150 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1150 ms · metadata changed · 16 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http antevo-trademark-mcp https://trademark.antevo.ch/mcpCodex
codex mcp add antevo-trademark-mcp --url https://trademark.antevo.ch/mcpCursor
{
"mcpServers": {
"antevo-trademark-mcp": {
"url": "https://trademark.antevo.ch/mcp"
}
}
}Cline
{
"mcpServers": {
"antevo-trademark-mcp": {
"type": "streamableHttp",
"url": "https://trademark.antevo.ch/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"antevo-trademark-mcp": {
"type": "http",
"url": "https://trademark.antevo.ch/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http antevo-trademark-mcp https://trademark.antevo.ch/mcpClaude Desktop
https://trademark.antevo.ch/mcpWindsurf
{
"mcpServers": {
"antevo-trademark-mcp": {
"serverUrl": "https://trademark.antevo.ch/mcp"
}
}
}Let your agent find its tools
Find servers like Antevo Trademark MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Antevo Trademark MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.