search_lei
Pack: gleif · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)
No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/search_lei for the schema, then POST the same URL with its arguments for the data.
Legal entities matching a name search, with their LEI codes, from the Global LEI Foundation.
Tool description as the model sees it
Search the GLEIF LEI registry by legal entity name. Returns matched entities with their 20-character LEI, jurisdiction, status, and BIC/ISIN cross-references. Use the LEI to resolve canonical identity across SEC, OpenSanctions, and counterparty databases.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | yes | Legal entity name (full or partial), e.g. “Apple Inc.” or “Siemens Aktiengesellschaft” |
country | string | no | Restrict to the legal address country. ISO 3166-1 alpha-2, e.g. “US”, “DE”, “JP”. Alpha-3 codes and country names are accepted for the common jurisdictions and converted; anything unrecognized is rejected with an error rather than silently returning zero rows. |
status | string | no | Entity status (ACTIVE | INACTIVE | NULL) or LEI registration status (ISSUED | LAPSED | ANNULLED | PENDING_TRANSFER | PENDING_ARCHIVAL | DUPLICATE | RETIRED | MERGED). GLEIF keeps these in two different fields; the tool routes the value to the right one. “LAPSED” means the LEI registration lapsed, not that the company is gone. |
page_size | number | no | 1-200 (default 25) |
Example call
Arguments
{
"query": "Apple Inc"
}
curl
curl -X POST https://gateway.pipeworx.io/gleif/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_lei","arguments":{"query":"Apple Inc"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('search_lei', {
"query": "Apple Inc"
});
More examples
{
"query": "Deutsche Bank",
"country": "DE",
"status": "ACTIVE",
"page_size": 50
}
Response shape
Always returns: total, results
| Field | Type | Description |
|---|---|---|
total | number | Total number of matching LEI records |
results | array | Matched LEI records with normalized fields |
Full JSON Schema
{
"type": "object",
"properties": {
"total": {
"type": "number",
"description": "Total number of matching LEI records"
},
"results": {
"type": "array",
"description": "Matched LEI records with normalized fields",
"items": {
"type": "object",
"properties": {
"lei": {
"type": "string",
"description": "20-character LEI code"
},
"legal_name": {
"type": [
"string",
"null"
],
"description": "Official legal entity name"
},
"other_names": {
"type": "array",
"description": "Alternative names for the entity",
"items": {
"type": "string"
}
},
"jurisdiction": {
"type": [
"string",
"null"
],
"description": "ISO jurisdiction code"
},
"category": {
"type": [
"string",
"null"
],
"description": "Entity category"
},
"legal_form": {
"type": [
"string",
"null"
],
"description": "Legal form ID or description"
},
"registered_as": {
"type": [
"string",
"null"
],
"description": "The company's own id in its national business register (e.g. Companies House number 00041424, Norwegian orgnr 923609016), whitespace stripped so it joins. Null when GLEIF publishes no id, and withheld for sole proprietors. Pair it with registration_authority: an id is only unique within its register."
},
"registration_authority": {
"type": [
"string",
"null"
],
"description": "GLEIF Registration Authority code for the register that registered_as belongs to: RA000585 = UK Companies House, RA000189 = INSEE Sirene, RA000413 = Japan NTA, RA000472 = Brønnøysund. RA999999 is GLEIF's \"other / not applicable\" sentinel and comes with no registered_as."
},
"entity_status": {
"type": [
"string",
"null"
],
"description": "Entity status (ACTIVE, LAPSED, etc.)"
},
"registration_status": {
"type": [
"string",
"null"
],
"description": "Registration status"
},
"initial_registration": {
"type": [
"string",
"null"
],
"description": "ISO date of initial registration"
},
"last_update": {
"type": [
"string",
"null"
],
"description": "ISO date of last update"
},
"next_renewal": {
"type": [
"string",
"null"
],
"description": "ISO date of next renewal"
},
"managing_lou": {
"type": [
"string",
"null"
],
"description": "Managing Local Operating Unit"
},
"legal_address": {
"type": [
"object",
"null"
],
"description": "Legal address of entity",
"properties": {
"lines": {
"type": "array",
"description": "Address lines",
"items": {
"type": "string"
}
},
"city": {
"type": [
"string",
"null"
],
"description": "City name"
},
"region": {
"type": [
"string",
"null"
],
"description": "Region or state"
},
"country": {
"type": [
"string",
"null"
],
"description": "ISO country code"
},
"postal_code": {
"type": [
"string",
"null"
],
"description": "Postal code"
}
}
},
"headquarters_address": {
"type": [
"object",
"null"
],
"description": "Headquarters address of entity",
"properties": {
"lines": {
"type": "array",
"description": "Address lines",
"items": {
"type": "string"
}
},
"city": {
"type": [
"string",
"null"
],
"description": "City name"
},
"region": {
"type": [
"string",
"null"
],
"description": "Region or state"
},
"country": {
"type": [
"string",
"null"
],
"description": "ISO country code"
},
"postal_code": {
"type": [
"string",
"null"
],
"description": "Postal code"
}
}
},
"bic": {
"type": "array",
"description": "Bank Identifier Codes",
"items": {
"type": "string"
}
},
"isins": {
"type": "array",
"description": "ISIN codes",
"items": {
"type": "string"
}
},
"gleif_url": {
"type": "string",
"description": "Direct link to GLEIF record"
}
}
}
}
},
"required": [
"total",
"results"
]
}
Connect
Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:
{
"mcpServers": {
"pipeworx": {
"url": "https://pipeworx.io/mcp"
}
}
}
Connect to just the gleif pack
{
"mcpServers": {
"gleif": {
"url": "https://gateway.pipeworx.io/gleif/mcp"
}
}
}
See Getting Started for client-specific install steps.