Unified AI-friendly tools over Messari's standardized lending subgraphs
graph-lending-mcp
MCP server that exposes unified AI-friendly tools over Messari's standardized lending subgraphs on The Graph.
One natural-language query → fan out across 40+ lending protocols on multiple chains → get back structured, comparable data.
Features
- 19 MCP tools covering protocols, markets, rates, positions, events, snapshots, and cross-protocol analytics
- 40+ lending protocols across Ethereum, Polygon, Arbitrum, Avalanche, BSC, Optimism, Base, and more
- Cross-protocol comparison — compare TVL, revenue, users across any set of protocols in one call
- Graceful failure handling — dead subgraphs don't crash queries; failures are reported alongside successes
- Schema-version aware — automatically selects compatible queries for v1.x, v2.x, and v3.x subgraphs
Tools
| Tool | Description |
|---|---|
list_protocols |
List all registered protocols with live TVL data |
get_protocol |
Detailed protocol stats (TVL, revenue, users, pool counts) |
get_markets |
List markets for a protocol, sorted by any field |
get_market |
Detailed single market data including rates, caps, and positions |
get_interest_rates |
Interest rates across all markets, with optional side/type filters |
get_account |
Account overview with position counts and activity |
get_positions |
Open positions for an address, with optional side filter |
get_deposits |
Recent deposit events, filterable by market and account |
get_borrows |
Recent borrow events |
get_repays |
Recent repay events |
get_withdrawals |
Recent withdrawal events |
get_liquidations |
Recent liquidation events with profit data |
get_flashloans |
Recent flashloan events |
get_daily_financials |
Daily financial snapshots (TVL, volume, revenue) |
get_market_snapshots |
Daily market-level snapshots with rates and activity |
get_usage_metrics |
Daily user activity and transaction counts |
compare_protocols |
Side-by-side comparison of multiple protocols |
top_markets_by_tvl |
Top markets across all protocols, optionally filtered by network |
query_subgraph |
Raw GraphQL escape hatch for any registered subgraph |
Setup
Prerequisites
- Node.js 18+
- A Graph API key from The Graph Studio
Install & Build
git clone https://github.com/PaulieB14/graph-lending-mcp.git
cd graph-lending-mcp
npm install
npx tsc
Configure in Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"graph-lending": {
"command": "node",
"args": ["/path/to/graph-lending-mcp/dist/index.js"],
"env": {
"GRAPH_API_KEY": "your-api-key-here"
}
}
}
}
Architecture
src/
├── index.ts # MCP server entry — registers all 19 tools
├── registry.ts # Protocol → subgraph ID mapping (see SUBGRAPHS.md)
├── client.ts # GraphQL fetch with retry, timeout, fan-out
├── queries.ts # All GraphQL query constants
└── tools/
├── protocol.ts # list_protocols, get_protocol
├── markets.ts # get_markets, get_market
├── rates.ts # get_interest_rates
├── positions.ts # get_account, get_positions
├── events.ts # deposits, borrows, repays, withdrawals, liquidations, flashloans
├── snapshots.ts # daily_financials, market_snapshots, usage_metrics
└── cross.ts # compare_protocols, top_markets_by_tvl
All queries use Messari's standardized lending schema — same entities and fields across every protocol.
Subgraph Registry
See SUBGRAPHS.md for the full list of registered subgraphs with their status, network, schema version, and notes.
License
MIT
Tools (19)
list_protocolsList all registered protocols with live TVL dataget_protocolDetailed protocol stats (TVL, revenue, users, pool counts)get_marketsList markets for a protocol, sorted by any fieldget_marketDetailed single market data including rates, caps, and positionsget_interest_ratesInterest rates across all markets, with optional side/type filtersget_accountAccount overview with position counts and activityget_positionsOpen positions for an address, with optional side filterget_depositsRecent deposit events, filterable by market and accountget_borrowsRecent borrow eventsget_repaysRecent repay eventsget_withdrawalsRecent withdrawal eventsget_liquidationsRecent liquidation events with profit dataget_flashloansRecent flashloan eventsget_daily_financialsDaily financial snapshots (TVL, volume, revenue)get_market_snapshotsDaily market-level snapshots with rates and activityget_usage_metricsDaily user activity and transaction countscompare_protocolsSide-by-side comparison of multiple protocolstop_markets_by_tvlTop markets across all protocols, optionally filtered by networkquery_subgraphRaw GraphQL escape hatch for any registered subgraphEnvironment Variables
GRAPH_API_KEYrequiredAPI key from The Graph StudioConfiguration
{"mcpServers": {"graph-lending": {"command": "node", "args": ["/path/to/graph-lending-mcp/dist/index.js"], "env": {"GRAPH_API_KEY": "your-api-key-here"}}}}