Skip to main content
Glama

GleanMark Trademark Search

Find Similar Marks

get_similar_marks
Read-onlyIdempotent

Find USPTO trademarks similar to a given mark name. Uses examiner-style knockout search with phonetic, trigram, and component matching to identify potential conflicts. Returns similarity_score (mark-only similarity) and confusion_score (blended mark + commercial overlap). Useful for trademark clearance searches.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of similar marks to return
mark_textYesTrademark name to find similar marks for
include_deadNoInclude dead/abandoned trademarks in results
nice_classesNoFilter by Nice Classification classes (similar marks in same classes are higher risk)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
query_markYes
risk_summaryYes
similar_marksYes
open_in_gleanmarkNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / similar_marks / items / properties / detail_url
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / similar_marks / items / properties / owner_detail_url
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "open_in_gleanmark": {
      +      "type": "string"
      +    },
      +    "query_mark": {
      +      "type": "string"
      +    },
      +    "risk_summary": {
      +      "type": "string"
      +    },
      +    "similar_marks": {
      +      "items": {
      +        "properties": {
      +          "filing_date": {
      +            "type": "string"
      +          },
      +          "mark_name": {
      +            "type": "string"
      +          },
      +          "nice_classes": {
      +            "items": {
      +              "type": "integer"
      +            },
      +            "type": "array"
      +          },
      +          "owner": {
      +            "type": "string"
      +          },
      +          "risk_level": {
      +            "enum": [
      +              "High",
      +              "Medium",
      +              "Low"
      +            ],
      +            "type": "string"
      +          },
      +          "serial_number": {
      +            "type": "string"
      +          },
      +          "similarity_score": {
      +            "type": "number"
      +          },
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "query_mark",
      +    "risk_summary",
      +    "similar_marks"
      +  ],
      +  "type": "object"
      +}
  3. Changed8 schema fields changed
    • addedInput schema / properties / include_dead / description
      Added value: +"Include dead/abandoned trademarks in results"
    • addedInput schema / properties / limit / description
      Added value: +"Maximum number of similar marks to return"
    • addedInput schema / properties / mark_text / maxLength
      Added value: +200
    • addedInput schema / properties / mark_text / minLength
      Added value: +1
    • changedInput schema / properties / nice_classes / description
      Previous value: -"Filter by Nice Classification classes"New value: +"Filter by Nice Classification classes (similar marks in same classes are higher risk)"
    • addedInput schema / properties / nice_classes / items / maximum
      Added value: +45
    • addedInput schema / properties / nice_classes / items / minimum
      Added value: +1
    • addedInput schema / properties / nice_classes / maxItems
      Added value: +5
  4. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context by explaining the examiner-style matching approach and the semantic difference between similarity_score and confusion_score.

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 three sentences with no filler. It front-loads the core purpose, then efficiently adds matching method, output semantics, and the intended use case—every sentence earns its place.

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, complete parameter descriptions, and safety annotations, the description covers what an agent needs to invoke the tool. The only minor gap is not explicitly routing to or distinguishing from very similar sibling tools such as run_knockout_search and compare_marks.

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 100%, so all four parameters are already documented. The description reinforces mark_text as the core input and clarifies the meaning of the score outputs, but it does not add meaning beyond the schema for limit, include_dead, or nice_classes.

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 the verb ('Find'), the resource ('USPTO trademarks'), and the input ('a given mark name'). It further distinguishes the tool by explaining the matching method (phonetic, trigram, component) and the scored outputs (similarity_score, confusion_score), making it identifiable among siblings.

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 explicitly names a use case: trademark clearance searches. It does not state exclusions or directly compare with alternative sibling tools like run_knockout_search or compare_marks, but the intended context is clear enough for an agent to select it.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources