Skip to main content
Glama

capabilities

Get legal entity profile by LEI from the GLEIF register

entity_lei_profile
Read-onlyIdempotent

Return the registry-authoritative GLEIF record for a Legal Entity Identifier — legal and previous names, legal and headquarters addresses, jurisdiction, legal form, entity and registration status, renewal dates (with days until renewal), managing LOU, corroboration level, BIC codes and the named local registry. Use when: Look up everything the LEI register holds for this identifier. Not for: You only have a company name — use entity.lei.search first. Related: entity_lei_search; company_uk_profile; company_uk_status; company_us_profile. Price: USD 0.004/call (x402), 0.003 (account key).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
leiYes20-character ISO 17442 Legal Entity Identifier (18 alphanumerics + 2 check digits). Case-insensitive. The structure is checked before payment, so a wrong-shaped LEI is rejected on the 402 (details.input_validation). The ISO 7064 MOD 97-10 checksum cannot be expressed as a schema pattern and is verified at execution: it fails with INVALID_INPUT before any upstream call and before settlement, so a bad checksum is never charged for.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYesCapability output; full JSON Schema at https://api.eckari.com/v1/capabilities/entity.lei.profile
metaYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed8 schema fields changed
    • changedInput schema / properties / lei / description
      Previous value: -"20-character ISO 17442 Legal Entity Identifier. Case-insensitive. The ISO 7064 MOD 97-10 checksum is validated locally, so a malformed LEI is rejected without an upstream call."New value: +"20-character ISO 17442 Legal Entity Identifier (18 alphanumerics + 2 check digits). Case-insensitive. The structure is checked before payment, so a wrong-shaped LEI is rejected on the 402 (details.input_validation). The ISO 7064 MOD 97-10 checksum cannot be expressed as a schema pattern and is verified at execution: it fails with INVALID_INPUT before any upstream call and before settlement, so a bad checksum is never charged for."
    • removedOutput schema / properties / data / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / data / description
      Added value: +"Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/entity.lei.profile"
    • removedOutput schema / properties / data / properties
      Removed value: -{
      -  "bic": {
      -    "description": "Business Identifier Codes (ISO 9362) mapped to this LEI by GLEIF. Empty when none are mapped.",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "category": {
      -    "description": "GLEIF entity category (e.g. GENERAL, BRANCH, FUND, SOLE_PROPRIETOR, INTERNATIONAL_ORGANIZATION).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "conformity_flag": {
      -    "description": "GLEIF data-quality conformity flag (e.g. CONFORMING, NON_CONFORMING, NOT_APPLICABLE).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "creation_date": {
      -    "description": "ISO 8601 timestamp of entity creation as reported to GLEIF, or null.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "entity_status": {
      -    "description": "Legal entity status recorded by GLEIF (e.g. ACTIVE, INACTIVE, NULL).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "expiration": {
      -    "additionalProperties": false,
      -    "description": "Entity expiry as reported to GLEIF; null when the entity has not expired.",
      -    "properties": {
      -      "date": {
      -        "description": "ISO 8601 expiry timestamp.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "reason": {
      -        "description": "GLEIF expiry reason (e.g. DISSOLVED, CORPORATE_ACTION, VOLUNTARY).",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "date",
      -      "reason"
      -    ],
      -    "type": [
      -      "object",
      -      "null"
      -    ]
      -  },
      -  "golden_copy_date": {
      -    "description": "Publish timestamp of the GLEIF golden copy this record was served from, exactly as GLEIF reports it. GLEIF republishes the golden copy three times a day (observed publish timestamps 00:00, 08:00 and 16:00 UTC), so a record can be up to about eight hours behind the LOU's latest update. Present means the answer is near_live rather than live; null when GLEIF states no publish date.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "headquarters_address": {
      -    "additionalProperties": false,
      -    "description": "Headquarters address as held by GLEIF; often differs from the legal address (which may be a registered agent).",
      -    "properties": {
      -      "city": {
      -        "description": "City or town.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "country": {
      -        "description": "ISO 3166-1 alpha-2 country code.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "lines": {
      -        "description": "Street address lines in GLEIF order.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "postal_code": {
      -        "description": "Postal code as held by GLEIF.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "region": {
      -        "description": "ISO 3166-2 subdivision code, or null.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "lines",
      -      "city",
      -      "region",
      -      "country",
      -      "postal_code"
      -    ],
      -    "type": [
      -      "object",
      -      "null"
      -    ]
      -  },
      -  "jurisdiction": {
      -    "description": "Legal jurisdiction as an ISO 3166 country or subdivision code (e.g. GB, US-CA).",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "legal_address": {
      -    "additionalProperties": false,
      -    "description": "Registered legal address as held by GLEIF.",
      -    "properties": {
      -      "city": {
      -        "description": "City or town.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "country": {
      -        "description": "ISO 3166-1 alpha-2 country code.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "lines": {
      -        "description": "Street address lines in GLEIF order.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "postal_code": {
      -        "description": "Postal code as held by GLEIF.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "region": {
      -        "description": "ISO 3166-2 subdivision code, or null.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "lines",
      -      "city",
      -      "region",
      -      "country",
      -      "postal_code"
      -    ],
      -    "type": [
      -      "object",
      -      "null"
      -    ]
      -  },
      -  "legal_form": {
      -    "additionalProperties": false,
      -    "description": "Entity legal form from the ISO 20275 Entity Legal Forms code list.",
      -    "properties": {
      -      "code": {
      -        "description": "ISO 20275 ELF code (e.g. H1UM), or null.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "other": {
      -        "description": "Free-text legal form when no ELF code applies.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "code",
      -      "other"
      -    ],
      -    "type": [
      -      "object",
      -      "null"
      -    ]
      -  },
      -  "legal_name": {
      -    "description": "Registered legal name as held by GLEIF, or null when the record carries no legal name. Never falls back to the LEI itself — an identifier is not a name.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "legal_name_language": {
      -    "description": "ISO language code of the legal name, or null.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "lei": {
      -    "description": "20-character ISO 17442 Legal Entity Identifier, upper-cased.",
      -    "type": "string"
      -  },
      -  "other_names": {
      -    "description": "Other or previous names GLEIF holds for the entity, in GLEIF order.",
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "language": {
      -          "description": "ISO language code of the name, or null.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "name": {
      -          "description": "The alternative or previous name.",
      -          "type": "string"
      -        },
      -        "type": {
      -          "description": "GLEIF name type (e.g. PREVIOUS_LEGAL_NAME, TRADING_OR_OPERATING_NAME).",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "name",
      -        "type",
      -        "language"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "registered_as": {
      -    "description": "The entity's identifier in that local registry. When ra_code is RA000585 this is a UK company number usable with company.uk.profile and company.uk.status.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "registered_at": {
      -    "additionalProperties": false,
      -    "description": "Business registry the entity is registered at, as an ISO 17442 Registration Authority code.",
      -    "properties": {
      -      "other": {
      -        "description": "Free-text authority name when the entity's registry has no RA code.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "ra_code": {
      -        "description": "Registration Authority code (e.g. RA000585 is UK Companies House). RA999999 means no listed authority.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "ra_code",
      -      "other"
      -    ],
      -    "type": "object"
      -  },
      -  "registration": {
      -    "additionalProperties": false,
      -    "description": "State of the LEI registration itself, as distinct from the entity's own status.",
      -    "properties": {
      -      "corroboration_level": {
      -        "description": "GLEIF validation level (e.g. FULLY_CORROBORATED, PARTIALLY_CORROBORATED, ENTITY_SUPPLIED_ONLY).",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "initial_date": {
      -        "description": "ISO 8601 timestamp the LEI was first issued.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "last_update": {
      -        "description": "ISO 8601 timestamp the record was last updated.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "managing_lou": {
      -        "description": "LEI of the Local Operating Unit maintaining this record.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "next_renewal": {
      -        "description": "ISO 8601 timestamp the registration is next due for renewal.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "status": {
      -        "description": "LEI registration status (e.g. ISSUED, LAPSED, RETIRED, ANNULLED, MERGED, DUPLICATE).",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "validated_as": {
      -        "description": "The identifier used at the validating registry.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "validated_at": {
      -        "additionalProperties": false,
      -        "description": "Registry against which the LOU validated the record.",
      -        "properties": {
      -          "other": {
      -            "description": "Free-text authority name when no RA code applies.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "ra_code": {
      -            "description": "Registration Authority code used for validation.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "ra_code",
      -          "other"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "initial_date",
      -      "last_update",
      -      "next_renewal",
      -      "managing_lou",
      -      "corroboration_level",
      -      "validated_at",
      -      "validated_as"
      -    ],
      -    "type": "object"
      -  },
      -  "related": {
      -    "additionalProperties": false,
      -    "description": "What relationship data GLEIF holds for this entity. False means the relationship is not reported (often with a documented reporting exception), which is a valid registry answer, not an error.",
      -    "properties": {
      -      "children_available": {
      -        "description": "True when GLEIF publishes direct child relationships for this entity.",
      -        "type": "boolean"
      -      },
      -      "direct_parent_available": {
      -        "description": "True when GLEIF publishes a direct accounting-consolidation parent record for this entity.",
      -        "type": "boolean"
      -      },
      -      "ultimate_parent_available": {
      -        "description": "True when GLEIF publishes an ultimate accounting-consolidation parent record for this entity.",
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "direct_parent_available",
      -      "ultimate_parent_available",
      -      "children_available"
      -    ],
      -    "type": "object"
      -  },
      -  "sub_category": {
      -    "description": "GLEIF entity sub-category, or null.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  }
      -}
    • removedOutput schema / properties / data / required
      Removed value: -[
      -  "lei",
      -  "legal_name",
      -  "legal_name_language",
      -  "other_names",
      -  "legal_address",
      -  "headquarters_address",
      -  "jurisdiction",
      -  "legal_form",
      -  "category",
      -  "sub_category",
      -  "entity_status",
      -  "creation_date",
      -  "expiration",
      -  "registered_at",
      -  "registered_as",
      -  "registration",
      -  "bic",
      -  "conformity_flag",
      -  "golden_copy_date",
      -  "related"
      -]
    • addedOutput schema / properties / meta / properties / attribution_url
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
    • addedOutput schema / properties / meta / properties / retrieved_at / format
      Added value: +"date-time"
    • addedOutput schema / properties / meta / required
      Added value: +[
      +  "capability",
      +  "version",
      +  "retrieved_at",
      +  "source",
      +  "freshness",
      +  "request_id"
      +]
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by detailing the input validation behavior (checksum checked before execution, never charged for bad checksums) and pricing. This provides behavioral context beyond the annotations, though it could be slightly more explicit about the read-only nature.

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 well-structured with sections for purpose, usage guidance, related tools, and pricing. It front-loads the core functionality. However, the list of return fields is somewhat redundant given the output schema, making it slightly longer than necessary. Still, it remains concise overall.

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?

Given the single parameter, rich annotations, and presence of an output schema, the description covers all necessary context: purpose, when to use, alternatives, pricing, validation behavior, and related tools. It is fully complete for the tool's complexity.

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 provides 100% coverage for the single parameter 'lei', with a detailed description including pattern, length, and checksum validation. The tool description adds 'Legal Entity Identifier' but does not significantly augment the schema's semantics. Given 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 clearly states 'Return the registry-authoritative GLEIF record for a Legal Entity Identifier' and lists specific fields (names, addresses, jurisdiction, etc.), using a specific verb and resource. It distinguishes from the sibling entity_lei_search, which is used when the input is a company name rather than an LEI.

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?

The description includes explicit 'Use when' and 'Not for' sections, stating to use when looking up everything the LEI register holds, and not for company name searches (directing to entity_lei_search). It also lists related tools, providing clear guidance on when to use this tool versus alternatives.

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.

TDQS

A4.4/5.0
Disambiguation4/5

Tools are largely distinct, targeting specific entities (UK company, US company, domain, LEI, FX, location, parcel, weather) or sub-aspects (e.g., accounts vs. charges vs. directors). Overlap exists between company.uk.profile and company.uk.status (both contain status info, but the latter is cheaper and focused). Also, company.uk.filings and company.us.filings_latest could be confused if an agent generalizes 'filings' across jurisdictions.

Naming Consistency5/5

All tools follow a consistent pattern: domain_entity_subject (e.g., company_uk_accounts, domain_expiry, weather_us_alerts). Underscores and lower case are used throughout. Verbs are implied by the noun (e.g., 'search' for lookup, 'detect' for identification). No mixed conventions or unpredictable names.

Tool Count4/5

24 tools is on the high side but still reasonable for a general-purpose data server spanning multiple domains (company, domain, entity, fx, location, parcel, weather). Each domain gets a cohesive set, and the documentation justifies each tool. Could be slightly leaner if some niche tools (e.g., domain_expiry vs. registration) were merged, but overall scoping is acceptable.

Completeness4/5

Each domain offers good coverage: UK company tools cover CRUD-like operations (profile, status, search, filings, charges, directors, owners, registered office); similarly for US companies (profile, filings, resolve, latest filings). Weather has forecast, observation, alerts. Parcel only detects carrier (no tracking). Missing features like advanced filtering on company filings or less common domains, but core workflows are covered.

Resources