FinTech Hodl Base DeFi risk intel MCP
This MCP server provides access to risk scores, yields, and plain-English risk reports for the top Base DeFi opportunities. It exposes 16 tools to query opportunities, yields, lending rates, and yield farming data, supporting both free delayed access and paid real-time data via x402 USDC payments.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://intel.fintechhodl.com/mcpWhat you can do with it
- Query risk scores and yields for Base DeFi opportunities
- Retrieve detailed risk cards and dependency data
- Compare quoted vs realized APY for vaults and lending markets
- Rank yield farming pools by risk-adjusted returns
Source and maintenance
Protocol and capabilities
- Server
- fintechhodl-intel 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 16 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Tools
16 advertised
search_opportunities
Search and filter every tracked Base yield opportunity, with total risk and opportunity scores. Useful for finding candidates and their ids before buying a card, score, history or dependency graph. Free, at most 60 calls an hour per client. Free; at most 60 calls an hour per client.
{
"type": "object",
"properties": {
"q": {
"type": "string",
"pattern": "^[A-Za-z0-9 ._-]{0,60}$",
"examples": [
"usdc morpho"
],
"description": "Search words over protocol, market and asset names (letters, digits, spaces, dots, dashes, underscores; at most 60)."
},
"type": {
"enum": [
"lending",
"vault",
"staking",
"fixed_yield",
"lp",
"stable_lp",
"concentrated",
"rwa"
],
"type": "string",
"description": "Opportunity type."
},
"asset": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,20}$",
"examples": [
"USDC"
],
"description": "Token symbol the opportunity holds."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "At most this many results (default 20)."
},
"capital": {
"type": "number",
"maximum": 1000000000,
"minimum": 1,
"examples": [
10000
],
"description": "Capital in USD for the expected-return figures (default 10000)."
},
"min_apy": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Lowest APY to include, in percent."
},
"duration": {
"type": "integer",
"maximum": 1825,
"minimum": 1,
"examples": [
365
],
"description": "Holding period in days for the expected-return figures (default 365)."
},
"risk_max": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Highest total risk score to include (0-100, lower is lower modelled risk)."
},
"management": {
"enum": [
"passive",
"active",
"any"
],
"type": "string",
"description": "Passive (hold), active (needs rebalancing) or any (default)."
},
"stable_only": {
"type": "boolean",
"description": "Only opportunities whose principal is a stablecoin."
},
"include_direct": {
"type": "boolean",
"description": "Also list plain token holdings."
}
},
"additionalProperties": false
}get_yields
Realized APY for Base vaults and lending markets: the APY depositors actually earned over 7 and 30 days, read from on-chain share prices, next to the quoted APY, with a verdict (matches, overstated, understated) and a risk score. Useful for finding the best yields on Base and spotting advertised yields that are not being paid. Ids work with every other route. 404 for unknown paths and 400 for invalid arguments, before any payment; 503 while data refreshes; charged only for a 200. Price: $0.01 USDC on Base (x402), charged only for a successful answer.
{
"type": "object",
"properties": {
"sort": {
"enum": [
"risk_adjusted",
"realized_apy",
"quoted_apy",
"sustainable_apy",
"tvl"
],
"type": "string",
"description": "Order: risk_adjusted (default) ranks by opportunity score; realized_apy by the 30-day realized APY; sustainable_apy by the APY expected once incentives fade."
},
"type": {
"enum": [
"lending",
"vault",
"staking",
"fixed_yield",
"lp",
"stable_lp",
"concentrated",
"rwa"
],
"type": "string",
"description": "Opportunity type."
},
"asset": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,20}$",
"examples": [
"USDC"
],
"description": "Token symbol, e.g. USDC or WETH."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many items (default 20)."
},
"min_apy": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Minimum quoted APY, percent."
},
"risk_max": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Maximum risk score (0-100, lower is lower modelled risk)."
},
"stable_only": {
"type": "boolean",
"description": "Only stablecoin principal."
},
"realized_only": {
"type": "boolean",
"description": "Only opportunities with a realized on-chain APY."
}
},
"additionalProperties": false
}get_lending_rates
Lending rates on Base: supply APY for every tracked money market and lending vault (Aave, Morpho, Compound, Moonwell and others), quoted next to the APY lenders actually earned over 7 and 30 days, read on-chain, with a risk score. Useful for choosing where to lend USDC, ETH or stablecoins. Ids work with every other route. 404 for unknown paths and 400 for invalid arguments, before any payment; 503 while data refreshes; charged only for a 200. Price: $0.01 USDC on Base (x402), charged only for a successful answer.
{
"type": "object",
"properties": {
"sort": {
"enum": [
"risk_adjusted",
"realized_apy",
"quoted_apy",
"sustainable_apy",
"tvl"
],
"type": "string",
"description": "Order: risk_adjusted (default) ranks by opportunity score; realized_apy by the 30-day realized APY; sustainable_apy by the APY expected once incentives fade."
},
"asset": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,20}$",
"examples": [
"USDC"
],
"description": "Token symbol, e.g. USDC or WETH."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many items (default 20)."
},
"min_apy": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Minimum quoted APY, percent."
},
"risk_max": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Maximum risk score (0-100, lower is lower modelled risk)."
},
"stable_only": {
"type": "boolean",
"description": "Only stablecoin principal."
},
"realized_only": {
"type": "boolean",
"description": "Only opportunities with a realized on-chain APY."
}
},
"additionalProperties": false
}get_yield_farming
Yield farming opportunities on Base: liquidity pools, concentrated liquidity (Aerodrome Slipstream) and auto-compounding vaults, ranked risk-adjusted, with quoted APY split into fees and token rewards, the sustainable APY once incentives fade, TVL, a risk score, and realized APY where measured. Useful for picking farms worth their risk. Ids work with every other route. 404 for unknown paths and 400 for invalid arguments, before any payment; 503 while data refreshes; charged only for a 200. Price: $0.01 USDC on Base (x402), charged only for a successful answer.
{
"type": "object",
"properties": {
"sort": {
"enum": [
"risk_adjusted",
"realized_apy",
"quoted_apy",
"sustainable_apy",
"tvl"
],
"type": "string",
"description": "Order: risk_adjusted (default) ranks by opportunity score; realized_apy by the 30-day realized APY; sustainable_apy by the APY expected once incentives fade."
},
"type": {
"enum": [
"lp",
"stable_lp",
"concentrated",
"vault"
],
"type": "string",
"description": "lp, stable_lp (stablecoin pairs), concentrated (concentrated liquidity) or vault (auto-compounding vaults)."
},
"asset": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,20}$",
"examples": [
"USDC"
],
"description": "Token symbol, e.g. USDC or WETH."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many items (default 20)."
},
"min_apy": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Minimum quoted APY, percent."
},
"risk_max": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Maximum risk score (0-100, lower is lower modelled risk)."
},
"stable_only": {
"type": "boolean",
"description": "Only stablecoin principal."
},
"realized_only": {
"type": "boolean",
"description": "Only opportunities with a realized on-chain APY."
}
},
"additionalProperties": false
}list_prices
The list of paid routes with their prices. Free.
{
"type": "object",
"properties": {},
"additionalProperties": false
}get_opportunity_card
Full risk card for one Base yield opportunity: 0-100 risk score with the main risks and their evidence, yield sources, sustainable APY, expected return, liquidity, dependencies and recent risk events. Useful before depositing into, recommending or comparing a Base yield. The id comes from the free /api/v1/opportunities. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.01 USDC on Base (x402), charged only for a successful answer. In this MCP server, ids come from search_opportunities.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"e0672197-9f3e-4414-bca5-e6b4c90aa469"
],
"description": "Opportunity id, as returned by the free /api/v1/opportunities route."
},
"capital": {
"type": "number",
"maximum": 1000000000,
"minimum": 1,
"examples": [
10000
],
"description": "Capital in USD for the expected-return figures (default 10000)."
},
"duration": {
"type": "integer",
"maximum": 1825,
"minimum": 1,
"examples": [
365
],
"description": "Holding period in days for the expected-return figures (default 365)."
}
},
"additionalProperties": false
}get_opportunity_score
Scoring breakdown for one opportunity: total risk, the eight risk dimensions with every factor and its input, sustainability, liquidity, slippage, position size and confidence. Useful for auditing or explaining a risk score. The id comes from the free /api/v1/opportunities. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.01 USDC on Base (x402), charged only for a successful answer. In this MCP server, ids come from search_opportunities.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"e0672197-9f3e-4414-bca5-e6b4c90aa469"
],
"description": "Opportunity id, as returned by the free /api/v1/opportunities route."
},
"capital": {
"type": "number",
"maximum": 1000000000,
"minimum": 1,
"examples": [
10000
],
"description": "Capital in USD for the expected-return figures (default 10000)."
},
"duration": {
"type": "integer",
"maximum": 1825,
"minimum": 1,
"examples": [
365
],
"description": "Holding period in days for the expected-return figures (default 365)."
}
},
"additionalProperties": false
}get_history
Daily history of one opportunity's APY, TVL and risk scores. Useful for checking whether a yield is stable or newly inflated, and for trend charts. The id comes from the free /api/v1/opportunities. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.01 USDC on Base (x402), charged only for a successful answer. In this MCP server, ids come from search_opportunities.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"e0672197-9f3e-4414-bca5-e6b4c90aa469"
],
"description": "Opportunity id, as returned by the free /api/v1/opportunities route."
},
"days": {
"type": "integer",
"maximum": 730,
"minimum": 1,
"examples": [
30
],
"description": "Look-back in days (default 30)."
}
},
"additionalProperties": false
}get_dependency_graph
What one opportunity depends on: protocols, stablecoins and their issuers, oracles, bridges and vault curators, as a graph. Useful for finding hidden shared exposure before combining positions. The id comes from the free /api/v1/opportunities. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.01 USDC on Base (x402), charged only for a successful answer. In this MCP server, ids come from search_opportunities.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"e0672197-9f3e-4414-bca5-e6b4c90aa469"
],
"description": "Opportunity id, as returned by the free /api/v1/opportunities route."
}
},
"additionalProperties": false
}get_closure
Everything an entity (protocol, asset, stablecoin, curator) depends on, transitively, as a graph. Useful for tracing what a protocol or stablecoin ultimately relies on. Entity ids appear in dependency graphs, for example protocol:morpho-blue. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.01 USDC on Base (x402), charged only for a successful answer.
{
"type": "object",
"required": [
"entity"
],
"properties": {
"entity": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"protocol:morpho-blue",
"protocol:aave-v3"
],
"description": "Entity id: protocol:<slug>, stablecoin:<id>, oracle:<name>, curator:<name> or issuer:<name>, as found in dependency graphs."
}
},
"additionalProperties": false
}get_dependents
Which tracked Base opportunities depend on an entity (protocol, stablecoin, oracle, curator), with their total TVL. Useful for sizing the impact of an exploit, depeg or oracle failure. Entity ids appear in dependency graphs, for example protocol:morpho-blue. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.01 USDC on Base (x402), charged only for a successful answer.
{
"type": "object",
"required": [
"entity"
],
"properties": {
"entity": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"protocol:morpho-blue",
"protocol:aave-v3"
],
"description": "Entity id: protocol:<slug>, stablecoin:<id>, oracle:<name>, curator:<name> or issuer:<name>, as found in dependency graphs."
}
},
"additionalProperties": false
}get_yield_premium
Why one opportunity pays more than a reference: the APY gap in percentage points, explained by risk dimensions, incentives and extra dependencies. Useful for judging whether a higher yield is worth its extra risk. The id comes from the free /api/v1/opportunities. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.01 USDC on Base (x402), charged only for a successful answer. In this MCP server, ids come from search_opportunities.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"e0672197-9f3e-4414-bca5-e6b4c90aa469"
],
"description": "Opportunity id, as returned by the free /api/v1/opportunities route."
},
"benchmark": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"e0672197-9f3e-4414-bca5-e6b4c90aa469"
],
"description": "Reference opportunity id (optional); by default a low-risk lending market on the same asset."
}
},
"additionalProperties": false
}get_protocol_risk
Risk profile of one protocol on Base: age, TVL history, audits, exploit history, governance (admin, timelock, multisig, upgradeability, pause) and the risk of its opportunities. Useful for due diligence on a protocol. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.02 USDC on Base (x402), charged only for a successful answer.
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"morpho-blue",
"aave-v3"
],
"description": "DeFiLlama protocol slug."
}
},
"additionalProperties": false
}get_stablecoin_risk
Peg and supply risk of one stablecoin on Base: price history, supply change, mechanism and the opportunities that hold it. Useful before holding or lending a stablecoin, or when a depeg is suspected. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.02 USDC on Base (x402), charged only for a successful answer.
{
"type": "object",
"required": [
"symbol"
],
"properties": {
"symbol": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,40}$",
"examples": [
"USDC",
"USDS"
],
"description": "Stablecoin symbol."
}
},
"additionalProperties": false
}get_risk_events
Recent risk events on Base DeFi: TVL drops, depegs, exploits, APY moves and Morpho vault setting changes, with severity. Useful for monitoring positions or screening protocols for recent trouble. Entity ids appear in dependency graphs. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.02 USDC on Base (x402), charged only for a successful answer.
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"examples": [
7
],
"description": "Look-back in days (default 7)."
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "At most this many events (default 100)."
},
"entity": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"protocol:morpho-blue",
"protocol:aave-v3"
],
"description": "Only events for this entity (optional)."
},
"severity": {
"enum": [
"low",
"medium",
"high",
"critical"
],
"type": "string",
"description": "Lowest severity to include (default low)."
}
},
"additionalProperties": false
}get_incidents
Labelled incidents (exploits, oracle failures, depegs, TVL collapses) affecting Base protocols and stablecoins. Useful for a protocol or stablecoin track record before trusting it with funds. Entity ids appear in dependency graphs. Unknown ids answer 404 and invalid arguments 400 before any payment; 503 while data refreshes; charged only for a 200. Price: $0.02 USDC on Base (x402), charged only for a successful answer.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "At most this many incidents (default 100)."
},
"entity": {
"type": "string",
"pattern": "^[A-Za-z0-9:._#+-]{1,120}$",
"examples": [
"protocol:morpho-blue",
"protocol:aave-v3"
],
"description": "Only incidents for this entity (optional)."
}
},
"additionalProperties": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 625 ms
- 95th percentile latency
- 625 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 625 ms · metadata changed · 16 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http fintech-hodl-base-defi-risk-intel-mcp https://intel.fintechhodl.com/mcpCodex
codex mcp add fintech-hodl-base-defi-risk-intel-mcp --url https://intel.fintechhodl.com/mcpCursor
{
"mcpServers": {
"fintech-hodl-base-defi-risk-intel-mcp": {
"url": "https://intel.fintechhodl.com/mcp"
}
}
}Cline
{
"mcpServers": {
"fintech-hodl-base-defi-risk-intel-mcp": {
"type": "streamableHttp",
"url": "https://intel.fintechhodl.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"fintech-hodl-base-defi-risk-intel-mcp": {
"type": "http",
"url": "https://intel.fintechhodl.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http fintech-hodl-base-defi-risk-intel-mcp https://intel.fintechhodl.com/mcpClaude Desktop
{
"mcpServers": {
"fintech-hodl-base-defi-risk-intel-mcp": {
"url": "https://intel.fintechhodl.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"fintech-hodl-base-defi-risk-intel-mcp": {
"serverUrl": "https://intel.fintechhodl.com/mcp"
}
}
}Let your agent find its tools
Find servers like FinTech Hodl Base DeFi risk intel MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run FinTech Hodl Base DeFi risk intel MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.