Skip to main content
Glama

GleanMark Trademark Search

Look Up Trademark by Serial Number

lookup_trademark
Read-onlyIdempotent

Get detailed information about a specific USPTO trademark by its serial number. Returns owner, status, filing dates, goods/services, correspondent (attorney/law firm of record — use this for "which firm represents/is correspondent for" questions), and more.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
serial_numberYesUSPTO serial number (exactly 8 digits)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
foundYes
trademarkYes
serial_numberYes
open_in_gleanmarkNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / trademark / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "attorney": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "filing_date": {
      -        "type": "string"
      -      },
      -      "goods_services": {
      -        "type": "string"
      -      },
      -      "live_dead": {
      -        "type": "string"
      -      },
      -      "mark_name": {
      -        "type": "string"
      -      },
      -      "mark_type": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "nice_classes": {
      -        "items": {
      -          "type": "integer"
      -        },
      -        "type": "array"
      -      },
      -      "owner": {
      -        "type": "string"
      -      },
      -      "registration_date": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "registration_number": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "serial_number": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "type": "string"
      -      },
      -      "status_code": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "attorney": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "filing_date": {
      +        "type": "string"
      +      },
      +      "goods_services": {
      +        "type": "string"
      +      },
      +      "live_dead": {
      +        "type": "string"
      +      },
      +      "mark_name": {
      +        "type": "string"
      +      },
      +      "mark_type": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "nice_classes": {
      +        "items": {
      +          "type": "integer"
      +        },
      +        "type": "array"
      +      },
      +      "owner": {
      +        "type": "string"
      +      },
      +      "owner_detail_url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "registration_date": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "registration_number": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "serial_number": {
      +        "type": "string"
      +      },
      +      "status": {
      +        "type": "string"
      +      },
      +      "status_code": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "found": {
      +      "type": "boolean"
      +    },
      +    "open_in_gleanmark": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "serial_number": {
      +      "type": "string"
      +    },
      +    "trademark": {
      +      "anyOf": [
      +        {
      +          "properties": {
      +            "attorney": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "filing_date": {
      +              "type": "string"
      +            },
      +            "goods_services": {
      +              "type": "string"
      +            },
      +            "live_dead": {
      +              "type": "string"
      +            },
      +            "mark_name": {
      +              "type": "string"
      +            },
      +            "mark_type": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "nice_classes": {
      +              "items": {
      +                "type": "integer"
      +              },
      +              "type": "array"
      +            },
      +            "owner": {
      +              "type": "string"
      +            },
      +            "registration_date": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "registration_number": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "serial_number": {
      +              "type": "string"
      +            },
      +            "status": {
      +              "type": "string"
      +            },
      +            "status_code": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "serial_number",
      +    "found",
      +    "trademark"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / serial_number / description
      Previous value: -"USPTO serial number (8 digits)"New value: +"USPTO serial number (exactly 8 digits)"
  4. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the list of return fields and the correspondent usage note, which provides useful behavioral context beyond the annotations. It does not contradict any annotation, and the added information is relevant for the agent's decision-making.

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 a single sentence that front-loads the core purpose ('Get detailed information about a specific USPTO trademark by its serial number') and then lists key fields. It is efficient, though the list of fields makes it slightly longer than necessary. No wasted words; the correspondent note is purposeful.

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 tool has an output schema, the description does not need to explain return values. It is a simple one-parameter lookup, and the description covers the main purpose, typical fields, and a specific usage hint. The only minor gap is not explicitly stating when not to use it, but the context and annotations are sufficient for an agent to use it 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?

The input schema has 100% coverage for the single parameter serial_number, with a description 'USPTO serial number (exactly 8 digits)' that is clear. The tool description only says 'by its serial number,' which adds no new meaning beyond the schema. Per the baseline, with high schema coverage, a score of 3 is appropriate.

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 clear verb ('Get'), a specific resource ('detailed information about a specific USPTO trademark'), and the key identifier ('by its serial number'). It also enumerates the fields returned (owner, status, filing dates, etc.), making it unambiguous what the tool does. It differentiates from siblings that target narrower aspects (e.g., get_correspondent_marks) by virtue of being the general serial-number-based lookup.

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 an explicit usage hint: 'use this for "which firm represents/is correspondent for" questions,' which helps route the agent. It does not explicitly contrast with alternatives, but the serial-number-by-lookup nature makes the primary use case obvious. The note about correspondent questions is a clear when-to-use pointer, though it could have named a sibling like get_correspondent_marks as an alternative for that specific need.

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