Skip to main content
Glama

European IP Data & Analytics — IPRATE

Find published IP representatives

find_ip_representatives
Read-onlyIdempotent

Find up to five firms or attorneys from the selected static release. Use this for a name, jurisdiction, right type, released leading Nice class, or released leading-client match. At least one filter is required.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoRepresentative name fragment, matched against released profile identities.
tierNoOptional released national or European route.
limitNoMaximum results; hard maximum five.
windowNoOptional released long or recent analytical window.
right_typeNoIP right type.
client_nameNoNamed client to match against leading-client evidence already public on profiles.
jurisdictionNoISO 3166-1 alpha-2 jurisdiction code, or EU for the European route.
nice_classesNoOne to five Nice class numbers; trademark only.
representative_typeNoReturn firms, attorneys, or both.both

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYesTool result. Which fields are present depends on status.
as_ofYesGeneration time of the selected static release.
linksYes
statusYes
coverageYes
release_idYes
limitationsYes
source_urlsYesPublic URLs to cite.
server_versionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "as_of": {
      +      "description": "Generation time of the selected static release.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "coverage": {
      +      "properties": {
      +        "availability": {
      +          "type": "string"
      +        },
      +        "error_type": {
      +          "type": "string"
      +        },
      +        "exclusions": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "hold_state": {
      +          "type": "string"
      +        },
      +        "jurisdiction": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "right_type": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "static_assets": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "tier": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "data": {
      +      "description": "Tool result. Which fields are present depends on status.",
      +      "properties": {
      +        "items": {
      +          "items": {
      +            "properties": {
      +              "city": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "home_country_code": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "matching_cohort": {
      +                "properties": {
      +                  "jurisdiction": {
      +                    "type": "string"
      +                  },
      +                  "leading_clients": {
      +                    "items": {
      +                      "properties": {
      +                        "quoted_name": {
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        },
      +                        "rank": {
      +                          "type": [
      +                            "number",
      +                            "null"
      +                          ]
      +                        },
      +                        "share_pct": {
      +                          "type": [
      +                            "number",
      +                            "null"
      +                          ]
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    "type": [
      +                      "array",
      +                      "null"
      +                    ]
      +                  },
      +                  "published_rating": {
      +                    "description": "Rating copied from the release: score, tier code (Q1 Elite to Q4 Select), confidence grade, rank.",
      +                    "properties": {
      +                      "confidence": {
      +                        "type": [
      +                          "string",
      +                          "null"
      +                        ]
      +                      },
      +                      "rank": {
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "score": {
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "tier": {
      +                        "type": [
      +                          "string",
      +                          "null"
      +                        ]
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "released_activity": {
      +                    "properties": {
      +                      "case_units": {
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "registration_rate": {
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "time_to_grant_days": {
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "total_firms_filing": {
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "volume_per_year": {
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "right_type": {
      +                    "type": "string"
      +                  },
      +                  "tier": {
      +                    "type": "string"
      +                  },
      +                  "top_classes": {
      +                    "items": {
      +                      "properties": {
      +                        "class_code": {
      +                          "type": [
      +                            "string",
      +                            "number",
      +                            "null"
      +                          ]
      +                        },
      +                        "class_label": {
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        },
      +                        "rank": {
      +                          "type": [
      +                            "number",
      +                            "null"
      +                          ]
      +                        },
      +                        "share_pct": {
      +                          "type": [
      +                            "number",
      +                            "null"
      +                          ]
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    "type": [
      +                      "array",
      +                      "null"
      +                    ]
      +                  },
      +                  "window": {
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "profile_url": {
      +                "type": "string"
      +              },
      +              "quoted_name": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "representative_id": {
      +                "type": "number"
      +              },
      +              "representative_type": {
      +                "type": "string"
      +              },
      +              "text_provenance": {
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "message": {
      +          "description": "Explanation when status is not ok.",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "limitations": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "links": {
      +      "properties": {
      +        "explore": {
      +          "type": "string"
      +        },
      +        "methodology": {
      +          "type": "string"
      +        },
      +        "request_analysis": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "release_id": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "server_version": {
      +      "type": "string"
      +    },
      +    "source_urls": {
      +      "description": "Public URLs to cite.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "enum": [
      +        "ok",
      +        "no_results",
      +        "ambiguous",
      +        "not_public",
      +        "not_covered",
      +        "source_unavailable",
      +        "invalid_request"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "data",
      +    "as_of",
      +    "release_id",
      +    "coverage",
      +    "limitations",
      +    "source_urls",
      +    "links",
      +    "server_version"
      +  ],
      +  "type": "object"
      +}
  2. 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, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely useful behavioral context not present in the structured fields: results are capped ('up to five') and at least one filter must be supplied — the latter is important since the schema marks zero required parameters. It omits nothing critical for a static read.

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?

Two sentences, no filler, with the result cap and source scope front-loaded before the usage guidance and the mandatory-filter constraint. Every clause 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?

With an output schema present, return values need not be explained, and the description covers what the tool returns (firms/attorneys), how many (up to five), and the input constraint. It is nearly complete; only the distinction from get_ip_representative_profile and 'search' is left implicit.

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 100%, so the baseline is 3 and the schema carries the parameter burden. The description nonetheless maps its filter list onto the actual parameters (name, jurisdiction, right_type, nice_classes, client_name) and adds the cross-parameter rule that at least one must be set, which the schema's empty required array does not convey.

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 states a specific verb and resource ('Find up to five firms or attorneys') plus a scope qualifier ('from the selected static release'), which is enough for an agent to know it is a search/lookup tool. It does not explicitly name or differentiate itself from the closest sibling, get_ip_representative_profile, which retrieves a single representative, 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?

'Use this for a name, jurisdiction, right type, released leading Nice class, or released leading-client match' gives clear trigger conditions, and 'At least one filter is required' states the entry constraint. It stops at 4 because it never says when NOT to use it or which sibling to prefer for a single-profile lookup.

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.