MCP server exposing 11 tools for gleif.
This URL is a JSON-RPC 2.0 endpoint over HTTP. Issue POST requests with a JSON-RPC body. Browsers and search crawlers land here on GET.
POST https://gateway.pipeworx.io/gleif/mcp
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"tools/list"}
search_lei — 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. Name matching is whole-token AND against the REGISTERED legal name, so abbreviations that do not literally appear ("Microsoft Corp", "Toyota Motor Corp") match nothing on their own; this tool automatically retries with legal-form suffixes dropped, with the words joined ("Exxon Mobil" -> "ExxonMobil"), and finally against GLEIF fuzzy autocomplete. The response always reports `match_mode` and `searched_as` so you can see which query actually produced the rows.get_lei — Fetch the full Level 1 LEI record for a legal entity. Returns legal name, registered address, headquarters address, entity category, legal form, registration authority, LEI registration status (ISSUED / LAPSED / RETIRED / ...), jurisdiction, parent LEI (if any), and timestamps. Accepts a company NAME as well as a 20-character LEI — a name is resolved against the registry here and the match is echoed back as resolved_from_name. Answers "is this company's LEI still active or has it lapsed" and "where is this entity registered".get_lei_relationships — Fetch Level 2 corporate hierarchy for an LEI: direct parent, ultimate parent, and direct children. Use to map ownership trees across multinational groups. Accepts a company NAME as well as an LEI.isin_to_lei — Resolve an ISIN (12-character international securities identifier, e.g. "CH0038863350" or "DE0007164600") to the LEGAL ENTITY that issued the security: its LEI, registered legal name, jurisdiction, and status, via the official GLEIF ISIN-to-LEI mapping. Answers "who issued this security" / "which company is behind ISIN X" for non-US as well as US securities. An ISIN identifies one security while the issuer typically has many — the response says what it resolved TO. A valid ISIN with no mapping yet is reported as unmapped (the mapping lags new issuance), distinct from an invalid ISIN.lei_to_isins — List ALL ISINs (securities) issued by a legal entity, from the official GLEIF ISIN-to-LEI mapping. Accepts a 20-character LEI or a company NAME (resolved automatically and echoed back). Answers "what securities has this company issued" / "all ISINs for Nestlé". Returns the full set — bonds, share lines, ADRs — not a single value; an entity that exists but has no mapped ISINs returns an empty set with that stated.bic_to_lei — Resolve a SWIFT/BIC bank identifier code (8 or 11 characters, e.g. "DEUTDEFF" or "DEUTDEFFXXX") to the bank's legal entity: LEI, registered legal name, jurisdiction, and status, via the official GLEIF BIC-to-LEI mapping. Answers "which legal entity is behind this BIC" / "LEI for SWIFT code X" for cross-border bank identity (KYC, counterparty due diligence, payments). A branch BIC that has no mapping of its own falls back to the head office (the trailing "XXX" form) and says so.lei_hierarchy_tree — Walk the FULL corporate ownership hierarchy for an entity in one call: the ancestor chain from the entity up to its ultimate parent, plus a multi-level tree of subsidiaries below it (breadth-first over GLEIF Level 2 direct-child records, depth-limited, depth stated in the response). Accepts a 20-character LEI or a company NAME. Answers "everything this group ultimately controls" / "full subsidiary tree of Deutsche Bank" / "who is at the top of this entity's ownership chain" — use get_lei_relationships instead when one hop (direct parent + direct children) is enough.gleif_group_members — Every entity in a corporate group, across all jurisdictions, in ONE call — built on the GLEIF golden copy (every Level 2 relationship record). Give any member of the group (LEI or company name): the tool climbs to the group's ultimate accounting-consolidation parent and returns every entity that reports it as ultimate parent, every descendant over direct-parent links, and the international branches of any of them. Aggregates are over the WHOLE group (member_count, jurisdiction_count, by_jurisdiction); the member list is capped by `limit` and says so. Each member carries depth below the root, direct_parent_lei, consolidation % where reported, jurisdiction and LEI status. Answers "all subsidiaries of Siemens worldwide", "which countries does this group have legal entities in", "who is the ultimate parent of this company and what else does it own". Use this over lei_hierarchy_tree for large groups (that tool walks one node at a time and truncates at 150). Fund-management links (IS_FUND-MANAGED_BY / IS_SUBFUND_OF) are NOT ownership and are not included. Response carries data_as_of (the GLEIF publish time the answer reflects).gleif_lei_screen — Bulk screen of LEI registrations in a jurisdiction across all ~3.4M LEIs in the GLEIF golden copy. Filter by registration status (LAPSED, RETIRED, ANNULLED, ISSUED ...), entity status, category, most recent legal-entity event (MERGERS_AND_ACQUISITIONS, ABSORPTION, DISSOLUTION, LIQUIDATION, CHANGE_LEGAL_NAME ...), a name fragment, and a lookback window in days. Answers "which LEIs in Germany lapsed in the last 30 days", "Delaware entities retired this quarter", "UK entities with a merger event in the last 90 days", "new LEIs issued in Luxembourg this week". The window applies to status_date — the date the current status took effect: LAPSED = the renewal date that was missed, RETIRED/ANNULLED = entity expiration date (else last update), ISSUED = initial registration — or to the event date when event_type is given. Returns total (exact up to 100,000) plus a page of rows, newest first, with data_as_of. Sole-proprietor names are withheld (personal data); call get_lei for one record.decode_elf_code — Decode an ISO 20275 Entity Legal Form (ELF) code to its registered name, language, country and jurisdiction. This is the 4-character code GLEIF publishes as `legal_form` on every LEI record (get_lei, search_lei results) — "XJHM" decodes to Sweden's "Aktiebolag", for example. Two sentinel codes carry no country or jurisdiction: "8888" (no specific legal form recorded — used where the concept does not apply, e.g. some government entities) and "9999" (legal form not yet classified by the registering LOU); both are flagged via `is_sentinel` rather than answered as a plain lookup miss. get_lei already decodes this field inline as legal_form_decoded — call this tool directly only when you have a bare code from elsewhere.decode_registration_authority — Decode a GLEIF Registration Authority (RA) code to the national business register's name, website and jurisdiction(s). This is the code GLEIF publishes as `registration_authority` on every LEI record (get_lei, search_lei results), naming the register that assigned the entity's `registered_as` id — "RA000585" decodes to the UK's Companies House, for example. Bare digits are zero-padded and prefixed with "RA" automatically ("585" -> "RA000585"). get_lei already decodes this field inline as registration_authority_decoded — call this tool directly only when you have a bare code from elsewhere.Code samples (curl / TypeScript / one-click client install), schemas, and the live playground are on the pack page:
https://pipeworx.io/packs/gleif/
Pipeworx is an open MCP gateway connecting AI agents to live data. pipeworx.io