gleif-mcp-server
A Model Context Protocol server that provides access to the GLEIF REST API for querying legal entity information, LEI records, issuer details, and organizational relationships.
README
GLEIF MCP Server
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
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']}")
Country and Legal Form Lookup
# 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.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes and add tests
- Ensure all tests pass and code is formatted
- Submit a pull request
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Acknowledgments
- GLEIF for providing the comprehensive LEI database and API
- Model Context Protocol for the standard protocol specification
- FastAPI for the excellent web framework
Support
Note: This is an unofficial implementation. GLEIF does not endorse or maintain this server.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.