Skip to main content
Glama
GenAICPA

gleif-mcp-server

by GenAICPA

GLEIF MCP Server

CI PyPI version Python 3.10+ License: Apache-2.0 Code style: black

A Model Context Protocol (MCP) server that provides seamless access to the GLEIF (Global Legal Entity Identifier Foundation) REST API. This server enables AI assistants and other MCP-compatible applications to query legal entity information, including LEI records, issuer details, and hierarchical relationships between organizations.

Features

🔍 LEI Record Management

  • Search & Retrieve: Find LEI records by various criteria (legal name, LEI code, jurisdiction)

  • Fuzzy Matching: Approximate search with auto-completion for entity discovery

  • Live Data: Real-time access to the most current GLEIF database

🏢 Entity Information

  • Legal Entity Details: Complete legal name, jurisdiction, status, and registration info

  • Address Data: Headquarters and legal addresses with full geographical details

  • Entity Relationships: Parent-subsidiary relationships and ownership structures

🌍 Reference Data

  • Country Codes: ISO 3166 country code lookups and validation

  • Legal Forms: Entity Legal Form (ELF) code reference data

  • Issuer Network: Information about LEI issuing organizations (LOUs)

🔧 Developer Tools

  • Field Metadata: Comprehensive API field documentation and filtering capabilities

  • Pagination: Efficient handling of large result sets

  • Type Safety: Full Python type hints and Pydantic validation

Related MCP server: MCP REST API Server

Quick Start

Installation

pip install gleif-mcp-server

Start the MCP Server

# Start server on default port (8000)
gleif-mcp-server

# Or specify custom port
gleif-mcp-server --port 8080

Use as Python Client

from gleif_mcp import client

# Get specific LEI record
lei_data = client.get_lei_record("529900T8BM49AURSDO55")
print(f"Entity: {lei_data['entity']['legalName']}")

# Search for entities
results = client.search_lei_records("entity.legalName", "Citibank")
for record in results['data']:
    print(f"Found: {record['entity']['legalName']}")

# Fuzzy search with suggestions
suggestions = client.fuzzy_completions("entity.legalName", "Apple Inc")

MCP Integration

This server is compatible with any MCP client, including:

  • Claude Desktop: Add to your claude_desktop_config.json

  • Cline/Windsurf: Configure as an MCP server

  • Custom Applications: Use the standard MCP protocol

Configuration Example

{
  "mcpServers": {
    "gleif": {
      "command": "gleif-mcp-server",
      "args": []
    }
  }
}

API Coverage

The server provides access to all major GLEIF API endpoints:

Category

Endpoint

Description

LEI Records

/lei-records

Search and retrieve LEI records

LEI Records

/lei-records/{lei}

Get specific LEI record by code

Search

/lei-records/fuzzy-completions

Fuzzy matching for entity names

Search

/lei-records/auto-completions

Auto-complete suggestions

Issuers

/lei-issuers

List accredited LEI issuers

Issuers

/lei-issuers/{id}

Get specific issuer details

Reference

/countries

ISO 3166 country codes

Reference

/entity-legal-forms

ELF codes and descriptions

Metadata

/fields

API field catalog and filtering options

Development

Setup Development Environment

# Clone the repository
git clone https://github.com/GenAICPA/gleif-mcp-server.git
cd gleif-mcp-server

# Install in development mode
pip install -e ".[dev]"

# Install pre-commit hooks
pre-commit install

Run Tests

# Run all tests
pytest

# Run tests with coverage
pytest --cov=gleif_mcp

# Skip live API tests (for CI)
pytest -m "not live"

# Run only integration tests
pytest -m integration

Code Quality

# Format code
black gleif_mcp tests

# Lint code  
ruff check gleif_mcp tests

# Type checking
mypy gleif_mcp

Examples

Find Entity by Name

# Search for entities containing "Microsoft"
results = client.search_lei_records("entity.legalName", "*Microsoft*")

for entity in results['data'][:5]:  # Show first 5 results
    print(f"LEI: {entity['lei']}")
    print(f"Name: {entity['entity']['legalName']}")
    print(f"Country: {entity['entity']['jurisdiction']}")
    print("---")

Get Entity Hierarchy

# Get parent company information
lei = "529900T8BM49AURSDO55"  # Example LEI
record = client.get_lei_record(lei)

if record['entity'].get('parent'):
    parent_lei = record['entity']['parent']['lei'] 
    parent_data = client.get_lei_record(parent_lei)
    print(f"Parent: {parent_data['entity']['legalName']}")
# Get country information
country = client.get_country("US")
print(f"Country: {country['name']} ({country['code']})")

# List available legal forms
legal_forms = client.list_entity_legal_forms()
for form in legal_forms['data'][:10]:
    print(f"{form['code']}: {form['name']}")

Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Make your changes and add tests

  4. Ensure all tests pass and code is formatted

  5. Submit a pull request

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Acknowledgments

Support


Note: This is an unofficial implementation. GLEIF does not endorse or maintain this server.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    F
    maintenance
    A Model Context Protocol server that exposes Synapse Entities (Datasets, Projects, Folders, Files, Tables) with their annotations, enabling programmatic access to Synapse data resources through a RESTful API.
    7
    11
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A server implementation of the Model Context Protocol (MCP) that provides REST API endpoints for managing and interacting with MCP resources.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A server that implements the Model Context Protocol (MCP) with StreamableHTTP transport, enabling standardized interaction with model services through a RESTful API interface.
    340 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that wraps the Accela Construct API as a curated, capability-grouped tool set for Accela Civic Platform, safe by default with read-only access.
    1
    Apache 2.0