RMS Location Intelligence MCP Server
Provides access to the Moody's RMS Location Intelligence API for property catastrophe risk analysis, with 114+ data product layers covering multiple perils and regions.
README
RMS Location Intelligence MCP Server
MCP server providing access to the Moody's RMS Location Intelligence API for property catastrophe risk analysis.
Overview
This server wraps the RMS Location Intelligence API, offering 114+ data product layers covering:
- Earthquake (eq)
- Windstorm (ws)
- Flood (fl)
- Wildfire (wf)
- Convective storm (cs)
- Winter storm (wt)
- Terrorism (tr)
Coverage spans 20+ regions worldwide including US, EU, CA, AU, CN, JP, and more.
Project Structure
C:/Users/khano3/li-rms-mcp/
├── server.py # Main FastMCP server (5 tools, 659 lines)
├── layers.py # Layer catalog (114 layers, 210 lines)
├── requirements.txt # Python dependencies
├── .env # API credentials (not committed)
├── .gitignore
├── docs/ # API documentation (53 pages)
└── README.md
Available Tools
1. list_layers
Browse the catalog of 114 data product layers by region, peril, or type.
2. geocode
Convert addresses or coordinates to standardized RMS geocodes with location IDs.
3. lookup_layer
Query a single data layer (hazard, loss cost, risk score, etc.) for a location.
4. composite_lookup
Query multiple layers efficiently in a single request.
5. geocode_reference
Access reference data for countries, admin divisions, postal codes, etc.
Layer Types
- hazard: Raw hazard metrics (requires location only)
- risk_score: Risk scores 0-100 (requires location + building characteristics)
- loss_cost: Expected annual loss (requires location + characteristics + coverage values)
- mmi: Modified Mercalli Intensity (earthquake only, location only)
- depth: Flood depth estimates (location only)
- distance: Distance to features (fault, coast, fire station, etc.)
- special: Custom data products (varies by layer)
Installation
cd C:/Users/khano3/li-rms-mcp
py -m pip install -r requirements.txt
Configuration
Create .env file (already configured):
LI_API_KEY=YOUR_API_KEY_HERE
LI_BASE_URL=https://api-euw1.rms.com
Usage
Start server (stdio)
py server.py
Start server (HTTP)
MCP_TRANSPORT=http PORT=3000 py server.py
Example Workflows
1. Explore available data
list_layers(region="us", peril="eq")
# Returns: us_eq_loss_cost, us_eq_risk_score, us_mmi, us_distance_to_fault
2. Geocode an address
geocode(
country_code="US",
street_address="55 Water St",
city="New York",
admin1_code="NY",
postal_code="10041"
)
3. Query single layer
lookup_layer(
layer="us_eq_risk_score",
country_code="US",
latitude=40.7028,
longitude=-74.0131,
construction="C1",
occupancy="COM1"
)
4. Multi-peril analysis
composite_lookup(
layers=[
{"name": "us_eq_loss_cost"},
{"name": "us_fl_loss_cost"},
{"name": "us_wf_loss_cost"}
],
country_code="US",
latitude=37.7749,
longitude=-122.4194,
construction="W1",
occupancy="RES1",
building_value=500000,
contents_value=250000
)
Data Requirements by Layer Type
| Layer Type | Location | Characteristics | Coverage Values |
|---|---|---|---|
| hazard | ✓ | ||
| mmi | ✓ | ||
| depth | ✓ | ||
| distance | ✓ | ||
| risk_score | ✓ | ✓ | |
| loss_cost | ✓ | ✓ | ✓ |
Characteristics: construction, occupancy, year_built, num_stories Coverage Values: building_value, contents_value, bi_value
Architecture
- Pattern: edfx-omar MCP pattern (Python + FastMCP + async httpx)
- Transport: stdio (default) or HTTP
- Authentication: API key via Authorization header
- Credentials: .env file with dotenv
- Error handling: httpx automatic retry + raise_for_status()
- Response formatting: JSON with 80k char truncation
Development
Git History
1ec7814 feat: add all 5 tools + main block
c035afe feat: server core — auth, body builder, FastMCP instance
6bceae2 feat: add complete layer catalog
43320c9 chore: project scaffolding
Testing
# Verify layer catalog
py -c "import sys; sys.path.insert(0, '.'); from layers import LAYERS; print(f'{len(LAYERS)} layers')"
# Test tool loading
py -c "import sys; sys.path.insert(0, '.'); from server import list_layers; print(list_layers(region='us')[:200])"
API Documentation
Full API documentation (53 pages) available in docs/ directory.
Next Steps
- Register in
.mcp.json - Smoke test with Claude
- Integration testing with real API calls
- Performance optimization if needed
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.