Skip to main content
Glama
HeinzTempl

mcp-markenrecherche

by HeinzTempl

mcp-markenrecherche

Vorrecherche für Marken mit Wortbestandteil — in der EU und in nationalen Registern, direkt aus dem Chat.

Ein MCP-Server für die Kanzlei: Du sagst deinem Sprachmodell (Claude Desktop, Cherry Studio, Msty …), welches Zeichen du für welche Waren oder Dienstleistungen prüfen willst, und bekommst eine belegte Trefferliste, einen Klassifizierungsvorschlag und am Ende einen Aktenvermerk. Die rechtliche Beurteilung bleibt bei dir. Kein Treffer wird erfunden, jede Lücke wird benannt.

Pre-filing clearance search for word and word/figurative marks (EUIPO API, TMview, Nice classification) as an MCP server. German documentation — the target audience is Austrian and German-speaking practitioners.


Was du bekommst

Eine Recherche in einem Satz. „Prüf mir KIRVO für Software und IT-Beratung in Österreich und der EU." Das Modell klassifiziert, lässt den Server die Register abfragen, zieht für die kritischen Treffer den Vollauszug und schreibt den Aktenvermerk — mit Ampel je Treffer, Suchprotokoll und den offenen Punkten.

Belegte Treffer statt Modellwissen. Jeder Treffer trägt Registernummer, Amt, Inhaber, Klassen, Status, Anmeldetag und den Abrufzeitpunkt aus dem Register. Was der Server nicht abfragen konnte, steht als Recherchelücke im Ergebnis — nie stillschweigend weggelassen.

Varianten, die du händisch nie alle suchen würdest. Der Server bildet aus dem Zeichen Wortstämme, Schreibweisen (C/K, PH/F, Doppelkonsonanten …), Wildcards und lautgleiche Wortanfänge und fragt jede Variante ab. Ein Kunstwort wie KIRVO liefert so auch CIRVO, GIRVO oder KIRBO, ein zusammengesetztes Zeichen auch die Serienmarken mit demselben Stamm. Die Treffer werden nach Schriftbild und Klang sortiert, die ähnlichsten zuerst.

Klassifizierung gegen die amtliche Datenbank. „Welche Klassen und Begriffe für ein Unternehmen, das Physiotherapie und Trainingsgeräte anbietet?" — das Modell schlägt vor, der Server prüft jeden Begriff gegen die harmonisierte Datenbank der EUIPO und sagt, ob er so akzeptiert wird oder ein Beanstandungsrisiko trägt.

Ein Aktenvermerk, der im Akt bestehen kann. Auftrag, Rechercheumfang, Klassifizierung, Trefferübersicht, Bewertung der gelben und roten Treffer nach § 10 MSchG / Art 8 UMV, absolute Eintragungshindernisse, Empfehlung, Recherchelücken, Suchprotokoll. Der Systemprompt dafür liegt bei (prompts/systemprompt_beispiel.md).

Related MCP server: patent-mcp

Was du nicht bekommst

Das ist eine Vorrecherche. Sie sagt dir, ob eine amtliche Ähnlichkeitsrecherche oder eine kommerzielle Vollrecherche nötig ist — sie ersetzt keine von beiden.

Gefunden wird nur, was einen Wortbestandteil hat. Reine Bildmarken und die grafische Seite von Wort-Bild-Marken bleiben außen vor. Nicht registrierte Kennzeichenrechte (Firmenwortlaut, Domains, Etablissementbezeichnungen) sind nicht abgedeckt. Und die nationalen Register laufen über TMview, das nur für gelegentliche Abfragen ausgelegt ist (Details unten).

Typische Fragen an den Agenten

„Welche Nizza-Klassen kommen für ein Unternehmen in Frage, das Mähroboter verkauft und wartet?"

„Prüf das Zeichen SARUMO für Kosmetik und Nahrungsergänzung, Gebiet Österreich und EU."

„Gibt es in Klasse 30 ältere Marken, die wie VANDELIX klingen?"

„Zieh mir den Vollauszug zu 018512783 und sag mir, ob das Verzeichnis mit Software-Wartung kollidiert."

„Ist ‚Software-Wartung für Zahnärzte' ein harmonisierter Begriff in Klasse 42?"

Das Modell entscheidet selbst, welche Werkzeuge es dafür braucht. Für eine vollständige Recherche ist recherche_lauf der Kern; alles andere sind Einzelabfragen und Vollauszüge.

Einrichtung

Du brauchst Python ab 3.12, uv und einen EUIPO-Zugang.

  1. EUIPO-Zugang. Auf https://dev.euipo.europa.eu mit deinem EUIPO-Konto einloggen, eine App anlegen und die Produkte Trademark search und Goods And Services abonnieren. „Key" ist die Client-ID. Die EUIPO schaltet die Subscriptions nach Prüfung frei (Pass und Adressnachweis werden verlangt); bis dahin antwortet die API mit 403. Zum Testen gibt es ein eigenes Sandbox-Portal (https://dev-sandbox.euipo.europa.eu) mit eigenen Keys und eingefrorenem Datenbestand — Sandbox-Treffer gehören in keinen Aktenvermerk.

  2. Konfiguration. .env.example nach .env kopieren und Keys eintragen:

    EUIPO_CLIENT_ID=…
    EUIPO_CLIENT_SECRET=…
    EUIPO_ENV=production        # oder sandbox (dann EUIPO_SANDBOX_CLIENT_ID/_SECRET)
  3. Im Chat-Programm eintragen. Claude Desktop und Cherry Studio nehmen denselben Eintrag (Cherry: „Add Server → Import from JSON"; bei Cherry den absoluten Pfad zu uv verwenden, which uv zeigt ihn):

    {
      "mcpServers": {
        "marken": {
          "command": "uv",
          "args": ["--directory", "/pfad/zu/mcp-markenrecherche", "run", "python", "src/server.py"]
        }
      }
    }

    Beim ersten Start richtet uv die Umgebung selbst ein.

  4. Systemprompt. prompts/systemprompt_beispiel.md in den Assistenten kopieren, die Platzhalter (Kanzlei, Anwalt, Ich- oder Wir-Form) ausfüllen. Ohne Prompt funktionieren die Werkzeuge auch, aber der Aktenvermerk kommt erst mit ihm in Form.

Erste Probe: „Prüf bitte den Zugang" — das Modell ruft marken_status auf und meldet, ob EUIPO und TMview erreichbar sind.

Werkzeuge

Werkzeug

Was es tut

recherche_lauf

Der vollständige Lauf: Varianten bilden, Register abfragen, deduplizieren, nach Ähnlichkeit sortieren; liefert Trefferliste, Suchprotokoll und Recherchelücken. register Standard ["EU","AT"], dazu "WO", "DE", "CH"

eutm_get, tmview_get

Vollauszug einer EU-Marke bzw. einer nationalen Marke mit Waren-/Dienstleistungsverzeichnis, Inhaber, Status, Fristen

nizza_suggest, nizza_validate, nizza_klassenueberschriften

Klassifizierung: Begriffe vorschlagen, gegen die harmonisierte Datenbank prüfen, Klassenüberschriften nachschlagen

eutm_search, tmview_search, varianten

Einzelabfragen und Einblick, welche Varianten der Lauf bildet

marken_status

Zugang und Erreichbarkeit prüfen

Quellen und ihre Grenzen

EUIPO (Unionsmarken und internationale Registrierungen mit EU-Benennung) über die offiziellen APIs Trademark Search und Goods and Services. Stabil, vollständig, mit Verzeichnis.

TMview (nationale Register wie AT, DE, CH sowie WIPO) über die Schnittstelle, die die TMview-Weboberfläche selbst benutzt. Es gibt dafür keine dokumentierte API; sie kann sich ohne Ankündigung ändern, und die Nutzungsbedingungen von tmdn.org sind auf manuelle Nutzung ausgelegt. Der Server hält deshalb 1,5 Sekunden Pause zwischen den Anfragen, stellt je Lauf nur wenige, und hört beim ersten Anzeichen einer Sperre sofort auf — dann steht das im Ergebnis als Lücke, und du prüfst das nationale Register von Hand nach. Zwei, drei Recherchen am Tag sind unauffällig; Serienläufe sind es nicht. Nutzung auf eigene Verantwortung.

Wie der Ähnlichkeitsscore zu lesen ist

Jeder Treffer bekommt einen Wert zwischen 0 und 1 aus Schriftbild (Editierdistanz), Klang (Kölner Phonetik) und der Frage, ob das eine Zeichen im anderen enthalten ist; bei Mehrwortzeichen zählt der Durchschnitt der prägenden Bestandteile. Ab 0,85 gilt ein Treffer als „hoch", ab 0,65 als „mittel". Der Wert ist eine Sortierhilfe: Er sagt, wo du zuerst hinschaust, nicht, ob Verwechslungsgefahr besteht. Das entscheidet die Bewertung nach Zeichen- und Warenähnlichkeit, Kennzeichnungskraft und Publikum — und die machst du.

Für Entwickler

Python 3.12, FastMCP, httpx. Tests: uv run --extra dev pytest. Die Variantenlogik liegt in src/varianten.py, die Anbindungen in src/euipo_client.py und src/tmview_client.py, die Werkzeuge in src/server.py. Statusfilter, Nachfrist bei abgelaufenen Marken (Art 53 Abs 3 UMV), Deduplizierung von IR mit EU-Benennung und die Erkennung des TMview-Bot-Schutzes sind im Code kommentiert. Die Antworten der Werkzeuge sind deutsch beschriftet; die erste Zeile jeder Werkzeugbeschreibung trägt ein englisches Stichwort, damit auch englisch angesprochene Modelle das richtige Werkzeug finden.

Lizenz

MIT — siehe LICENSE. Keine Gewähr für Vollständigkeit oder Richtigkeit der Rechercheergebnisse.

Available Tools

10 tools
eutm_getEutm GetA

[EU trade mark record] Vollständiger Registerauszug einer Unionsmarke / IR mit EU-Benennung nach Anmeldenummer (z. B. 018945321 oder W01234567). Enthält das Waren-/Dienstleistungsverzeichnis je Klasse.

ParametersJSON Schema
NameRequiredDescriptionDefault
nummerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears the full burden. It discloses that the tool returns a complete extract and includes the class-wise Waren-/Dienstleistungsverzeichnis, but it does not address error behavior, authorization, or side effects. The read-only nature is inferable from 'Get' and 'Registerauszug' but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loads the core purpose ('Vollständiger Registerauszug ... nach Anmeldenummer'), and every clause adds information. No redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with an output schema, the description is nearly complete: it defines the input and the key content of the result. It only lacks explicit routing to or away from sibling tools and error-case behavior, which are minor for the core call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description fully compensates for the single parameter by explaining that 'nummer' is the application number and giving concrete examples ('018945321 oder W01234567'). This removes ambiguity about format and accepted input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns the complete register extract ('Vollständiger Registerauszug') for an EU trade mark or IR with EU designation, identified by application number. It also adds the distinguishing detail that it contains the goods/services list per class, which separates it from sibling status and search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied: pass an application number when you need a full EU trade mark extract with class-wise goods/services. However, it does not explicitly say when to prefer this over marken_status, tmview_get, or eutm_search, nor does it mention any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

marken_statusMarken StatusA

[status] Prüft Konfiguration und Erreichbarkeit der EUIPO-API (Umgebung, Credentials, Token). Immer zuerst aufrufen, wenn ein Recherchelauf fehlschlägt.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of disclosing behavior. It transparently states that the tool checks configuration and API reachability rather than performing a search or mutation. It does not explicitly state side-effects are absent, but 'status' and 'Prüft' strongly imply a non-destructive diagnostic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The first sentence states what the tool does, and the second provides a concrete trigger for use. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter status/diagnostic tool with an output schema and a clear usage rule, the description is complete. It tells the agent what is checked, what system is involved, and when to call it. The output schema covers return-value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is complete, so there is nothing for the description to add about parameters. The baseline of 4 applies because parameter semantics are not a concern here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Prüft') and names the exact resource (EUIPO-API configuration and reachability), with concrete aspects enumerated (Umgebung, Credentials, Token). This clearly distinguishes it from the sibling search and retrieval tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to call this tool first: whenever a search run fails. This gives the agent a clear decision rule and positions it as a diagnostic prerequisite, which is exactly the kind of usage guidance needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nizza_klassenueberschriftenNizza KlassenueberschriftenB

[Nice class headings] Amtliche Klassenüberschriften der Nizza-Klassifikation (alle 45 oder Auswahl) — zur Orientierung über den Ähnlichkeitsbereich, nicht als Verzeichnis (Klassenüberschriften decken seit IP Translator nicht die ganze Klasse ab).

ParametersJSON Schema
NameRequiredDescriptionDefault
klassenNo
spracheNode

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It does disclose that headings are official but non-exhaustive, which is meaningful behavioral context. It does not mention language behavior, selection semantics, or whether the operation is read-only, but the output schema likely covers return structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the object and purpose. The caveat about IP Translator is integrated without unnecessary expansion. Minor redundancy exists with the bracketed English label, but it does not meaningfully hurt usability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema supplies return-shape information, but the input semantics are incomplete for an agent that needs to invoke non-default behavior. The description does not clarify accepted sprache values or the exact relationship between klassen values and 'all 45 or selection'. This leaves moderate ambiguity for a tool with no annotation support and 0% schema description coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. 'Alle 45 oder Auswahl' partially explains the klassen parameter but does not specify how to encode 'all' vs. a selection in the schema or what null means. The sprache parameter is not described at all, leaving a key input undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource: official Nice Classification class headings, and states the purpose ('zur Orientierung über den Ähnlichkeitsbereich'). It also adds a key limitation ('nicht als Verzeichnis'), which helps distinguish it from a comprehensive classification lookup, though it does not explicitly differentiate it from sibling Nizza tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear intended-use context: use for orientation about similarity range, not as an authoritative directory. It also warns that class headings do not cover the whole class since IP Translator, providing a when-not-to-rely-on-it signal. However, it does not explicitly direct the agent to alternative sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nizza_suggestNizza SuggestA

[Nice classification suggestions] Klassifizierungsvorschlag: liefert zu einem Freitext (Ware/Dienstleistung im Klartext, z. B. 'Wartung von Software' oder 'Physiotherapie') die passenden harmonisierten Begriffe (TMclass/HDB) mit Nizza-Klasse. Zwei Wege in einem Aufruf: Vorschlagsliste der EUIPO und Volltextsuche in den Begriffen. Optional auf eine Klasse einschränken.

ParametersJSON Schema
NameRequiredDescriptionDefault
klasseNo
spracheNode
freitextYes
max_trefferNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses that the tool combines EUIPO suggestion list lookup and full-text search in a single call, and that an optional class filter exists. It does not cover output details or edge cases, but the output schema covers the return structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: one dense sentence that starts with the core purpose, then adds the two-mode behavior and the optional class restriction. There is no redundant restatement of the title or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema available and a relatively simple parameter set, the description provides the essential input semantics and behavioral model. It is slightly incomplete regarding usage routing and the two undocumented parameters, but it is adequate for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains freitext as a free-text goods/services input and klasse as an optional class restriction, but it does not describe sprache or max_treffer, which are left to their names and defaults. This is only partial compensation for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('liefert') and a clear resource ('passenden harmonisierten Begriffen ... mit Nizza-Klasse') for a free-text goods/services input. It also distinguishes itself by naming the two lookup modes in one call, making it easy to tell apart from siblings like nizza_validate or nizza_klassenueberschriften.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool: when you have a free-text goods/services description and need Nice classification suggestions. However, it does not explicitly state when to prefer this tool over alternatives or mention any exclusions/conditions, so the usage guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nizza_validateNizza ValidateA

[Nice classification validation] Prüft ein Waren-/Dienstleistungsverzeichnis gegen die harmonisierte Datenbank der EUIPO. begriffe im Format 'Klasse: Begriff' (z. B. '42: Wartung von Computersoftware'); mehrere Begriffe derselben Klasse einzeln angeben. Rückgabe je Begriff: harmonisiert ja/nein und formale Fehler. Nicht harmonisierte Begriffe sind im Bericht als Beanstandungsrisiko zu kennzeichnen (Klasse muss angegeben sein — ohne Klasse kein Eintrag).

ParametersJSON Schema
NameRequiredDescriptionDefault
spracheNode
begriffeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It reveals per-term return semantics (harmonized yes/no and formal errors), the special report treatment of non-harmonized terms as objection risk, and the hard requirement that class must be supplied. This is substantial context beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, then gives necessary input and output behavior. The final clause 'Klasse muss angegeben sein — ohne Klasse kein Eintrag' is slightly redundant, but overall every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description does not need to detail return structure. It covers purpose, input format, required class, and validation-result behavior. Minor gaps remain around the 'sprache' parameter and potential batch or formatting limits, but the description is adequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does explain the required 'begriffe' parameter in detail, including format and class requirement, but the optional 'sprache' parameter is never mentioned. The name and default 'de' hint at language, but the description still leaves one parameter undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'Prüft ein Waren-/Dienstleistungsverzeichnis gegen die harmonisierte Datenbank der EUIPO' (validates a goods/services list against the harmonized EUIPO database). This clearly distinguishes it from sibling tools such as nizza_suggest (suggesting terms) and nizza_klassenueberschriften (class headings).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear operational guidance: terms must be in 'Klasse: Begriff' format, multiple terms of the same class must be entered individually, and class is required ('ohne Klasse kein Eintrag'). It does not explicitly mention when to choose this tool over alternatives, but the validation context and input constraints are clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recherche_laufRecherche LaufA

[trade mark clearance search — main tool] Vollständiger Recherchelauf in einem Aufruf über mehrere Register: bildet die Suchvarianten, fragt jede gegen die Register ab, dedupliziert, bewertet die Zeichenähnlichkeit (Schriftbild, Klang, Enthaltensein) und liefert EINE sortierte Trefferliste plus Suchprotokoll und Recherchelücken. register: Standard ["EU","AT"] — EU = Unionsmarken + IR mit EU-Benennung über die EUIPO-API; AT/DE/CH/WO/… = nationale Register bzw. WIPO über TMview. klassen: angemeldete UND angrenzende Klassen; ohne Klassen klassenübergreifend. zusatz_varianten: eigene Suchstrings (mit * als Wildcard), z. B. Übersetzungen. Treffer unter min_aehnlichkeit werden nur gezählt; gelistet werden höchstens max_gelistet (die ähnlichsten zuerst).

ParametersJSON Schema
NameRequiredDescriptionDefault
umfangNonormal
klassenNo
zeichenYes
registerNo
nur_lebendNo
max_gelistetNo
max_variantenNo
max_pro_varianteNo
min_aehnlichkeitNo
zusatz_variantenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it delivers: it discloses the full pipeline (variant generation, per-register querying, deduplication, similarity scoring), default registers, class handling, wildcard support, and the threshold/listing behavior for low-similarity hits. This goes well beyond a generic verb+resource statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well structured: the first sentence states the core purpose and pipeline, followed by labeled clarifications for key parameters and thresholds. Every sentence adds meaningful operational information, and the format is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 10-parameter tool with no annotations, the description covers a lot: pipeline, defaults, edge-case behavior, and output contents. However, it leaves several parameters under-specified and does not reference sibling tools for routing. The output schema exists, so return-value details are not required, but the missing parameter semantics keep it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains register, klassen, zusatz_varianten, min_aehnlichkeit, and max_gelistet, but several parameters remain unexplained: umfang, max_varianten, max_pro_variante, and nur_lebend. Some are guessable from names, but not enough clarity for an agent invoking all 10 params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies this as the main trademark clearance search tool: a complete multi-register search that builds variants, queries registers, deduplicates, scores similarity, and returns one sorted hit list. It is clearly differentiated from sibling tools like tmview_get or eutm_search by being the aggregated 'main tool'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the context clear: this is the comprehensive search across multiple registers, used when a full clearance search is needed. It does not explicitly name sibling alternatives or state when to prefer a direct register query, but the 'main tool' framing and multi-register scope provide strong usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tmview_getTmview GetA

[TMview record] Vollauszug einer Marke aus TMview nach ST13-Kennung (z. B. AT501972000001736), inkl. Waren-/Dienstleistungsverzeichnis, Inhaber, Vertreter, Widersprüche und Link zur Amtsseite (See-IP bei AT-Marken).

ParametersJSON Schema
NameRequiredDescriptionDefault
st13Yes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the burden of behavioral disclosure. It transparently lists the included data (goods/services, owner, representative, oppositions, office link, See-IP for AT), which helps set expectations. However, it does not explicitly state that the operation is read-only, how errors like an invalid ST13 are handled, or any access constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one dense sentence that front-loads the core action and then enumerates the returned components. It is efficient with no filler, though the long comma-separated list would be slightly easier to parse as structured bullets.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter retrieval tool with an output schema present, the description covers the essential behavior and output scope well. It lacks only marginal details such as error behavior or prerequisites, which are not critical for an agent to invoke the tool correctly with a valid ST13.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates by explaining st13 as an ST13-Kennung with a concrete example (AT501972000001736). This adds real meaning beyond the bare string type in the schema, though it could describe the ST13 format more formally.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb-resource pair ('Vollauszug einer Marke aus TMview') and the lookup key (ST13-Kennung), and lists the returned record components. It distinguishes itself from search and EU-get siblings by the TMview scope and ST13 identifier, though it does not explicitly name a sibling for contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied: call this tool when you have a specific ST13 identifier and want the full TMview record. There is no explicit statement about when not to use it or which alternative (e.g., tmview_search, eutm_get) to prefer, leaving the agent to infer from the tool name and sibling context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

variantenVariantenA

[search variants] Bildet deterministisch die Suchvarianten für ein Wortzeichen (Stamm, Wildcards, Schreibweisen, Konsonantenskelett, bei umfang='breit' auch Vokaltausch). Zeigt, was recherche_lauf abfragen wird — für das Suchprotokoll und um Varianten zu ergänzen. umfang: knapp | normal | breit.

ParametersJSON Schema
NameRequiredDescriptionDefault
umfangNonormal
zeichenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It discloses deterministic behavior, enumerates the kinds of variants generated, and explains that 'umfang='breit'' additionally enables vowel swapping. It also clarifies that the tool only shows what 'recherche_lauf' will query, signaling a read/computation-oriented operation. It does not mention auth, rate limits, or side effects, but the described behavior makes these seem unnecessary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the tool category and core action. Each sentence contributes: variant generation, relation to 'recherche_lauf', and the 'umfang' parameter values. The dense technical phrasing and dashes slightly reduce readability, but there is no wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, the description does not need to explain return values. It covers the tool's purpose, its role in the search workflow, its deterministic nature, and the main parameter. The main gap is the lack of explicit read-only/safety wording and any constraints on the 'zeichen' input, but for a simple variant-generation helper the description is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the bare schema. It gives meaning to 'zeichen' as the word token for which variants are built, and it documents the 'umfang' values 'knapp | normal | breit', including the concrete effect of 'breit'. This goes beyond the schema, which only provides a type and default. It does not fully define the boundary between 'knapp' and 'normal', but the core parameter semantics are sufficiently clarified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete operation: 'Bildet deterministisch die Suchvarianten für ein Wortzeichen' and lists the variant categories it generates. It also differentiates the tool from the actual search workflow by saying it shows what 'recherche_lauf' will query, which helps separate it from search-oriented siblings. However, it does not explicitly contrast itself with the other sibling tools, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: the tool is meant 'für das Suchprotokoll und um Varianten zu ergänzen' and it reveals what 'recherche_lauf' will query, implying it is a preparation/helper step before running a search. It does not state when not to use it or name alternative variants-generating tools, so the guidance is clear but not exhaustive.

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.

  1. 10 tool updatesv0.1.0
    • First observedeutm_get
    • First observedeutm_search
    • First observedmarken_status
    • First observednizza_klassenueberschriften
    • First observednizza_suggest
    • First observednizza_validate
    • First observedrecherche_lauf
    • First observedtmview_get
    • First observedtmview_search
    • First observedvarianten

TDQS

A3.9/5.0

Scored across 10 tools

Disambiguation4/5

Each tool has a clear primary purpose, but eutm_search/tmview_search and eutm_get/tmview_get differ only by data source, which could cause misselection if an agent doesn't read the descriptions carefully. The nizza_* tools are distinct and the main recherche_lauf is clearly a composite workflow.

Naming Consistency3/5

Names use a consistent lowercase-with-underscore style, but the pattern is mixed: some are source_action (eutm_get, tmview_search), others are bare nouns (varianten, recherche_lauf, marken_status), and classification tools share the nizza_ prefix. This is readable but not as uniform as a strict verb_noun convention.

Tool Count5/5

With 10 tools, the server is well-scoped for trademark search and classification. Each tool addresses a distinct part of the workflow (status, record retrieval, search, variant generation, composite search, and Nizza support) without unnecessary bloat.

Completeness5/5

The tool set covers the full word-mark clearance workflow: generating variants, searching multiple registers, retrieving full records, and validating/suggesting Nice classifications. No critical gaps are apparent for the stated domain; the main search tool returns a consolidated and scored result.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive trademark information services, including fuzzy company search, detailed trademark status tracking, and statistical analysis. Users can analyze trademark portfolios by tracking application trends, registration data, and category distributions for specific companies.
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    AI-powered patent search and analysis across 220M+ global patents. Semantic search, prior art discovery, novelty/patentability reports, and patent content retrieval.
    Apache 2.0
  • F
    license
    A
    quality
    D
    maintenance
    Enables users to search and monitor European regulatory publications including GDPR, ISO27001, and AI Act. Supports creating monitoring topics, generating compliance briefs, and setting up notifications for regulatory updates.
    5
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A trademark research and monitoring MCP server that provides access to a normalized trademark corpus across 30+ registers, with provenance on every record, watch/monitoring capabilities, conflict research via Nice class, and portfolio management tools—without returning legal verdicts, leaving availability judgments to qualified professionals.
    6
    MIT