DeFi Llama MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DeFi Llama MCP ServerWhat's the total TVL on Arbitrum?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DeFi Llama MCP Server
An MCP server for DeFi Llama — connect any MCP-compatible client to free DeFi protocol data.
What is this?
An MCP (Model Context Protocol) server that gives AI assistants and agents access to DeFi Llama's free DeFi data API — protocol TVL, chain TVL, yield pools, stablecoins, cross-chain bridges, DEX volumes, and protocol fees — through natural language.
Use it with Claude Desktop, Cursor, Windsurf, Cline, Continue, or any MCP-compatible client to ask questions about DeFi protocols, track TVL movements, compare yields, and explore the on-chain economy.
Related MCP server: MoltLlama
Why use this?
No API key required — DeFi Llama is a free public API
8 built-in tools — covers the most common DeFi data queries
Clean markdown output — results read naturally in chat
Rate-limited automatically — polite 500ms throttle across all endpoints
Tools
Tool | Description |
| Search DeFi protocols by name — returns top results with TVL, chains, category |
| Get detailed TVL breakdown for a specific protocol (chain distribution, history, description) |
| Get total TVL for a specific chain (Ethereum, Arbitrum, Base, Solana, etc.) |
| Get yield/APY data for lending pools and staking, filter by chain / project / min TVL |
| Get stablecoin market cap data and rankings |
| Get cross-chain bridge TVL and volume data |
| Get DEX trading volumes across chains |
| Get protocol fee and revenue data |
Quick Start
1. Add to your MCP client
Add this to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"defillama": {
"command": "npx",
"args": ["-y", "defillama-mcp-server"]
}
}
}That's it. npx downloads and runs it automatically. No API key, no install step.
2. Use it
Ask your AI assistant things like:
"What are the top DeFi protocols by TVL on Ethereum?"
"Search for Aave and show me the chain breakdown"
"What's the total TVL on Arbitrum?"
"Show me the highest yield stablecoin pools on Base with at least $10M TVL"
"List the top 5 stablecoins by market cap"
"Which bridges have the most TVL?"
"Show me DEX trading volumes for the last 24h"
"What are the protocols with the most fees?"
Example Output
search_protocols
Top 5 protocols matching "aave" (by TVL):
- **Aave** (AAVE) — TVL: $12.45B | Category: Lending | Chains: Ethereum, Arbitrum, Polygon, Base, Optimism, +6 | Slug: `aave`
- **Aave v2** (AAVE) — TVL: $4.20B | Category: Lending | Chains: Ethereum, Polygon, Avalanche | Slug: `aave-v2`
- **Aave v3** (AAVE) — TVL: $8.10B | Category: Lending | Chains: Ethereum, Arbitrum, Polygon, Base, Optimism | Slug: `aave-v3`get_yields
Top 5 yield pools (chain: Ethereum | min TVL: $10.00M | min APY: 0%):
- **Lido** — stETH on Ethereum 🟢 | APY: 3.42% (3.42% base) | TVL: $23.45B
- **Aave v3** — USDC on Ethereum 🟢 | APY: 4.85% (1.50% base + 3.35% reward) | TVL: $1.85B
- **Compound v3** — USDC on Ethereum 🟢 | APY: 5.12% (3.20% base + 1.92% reward) | TVL: $890.45Mget_tvl_by_chain
Ethereum — Chain TVL
- **Total TVL:** $115.32B
- **Native Token:** ETH
- **CoinGecko ID:** ethereum
### Top Tokens by TVL
- **ETH** (Ether): $67.23B
- **USDC** (USD Coin): $4.12B
- **USDT** (Tether): $3.45B
- **WBTC** (Wrapped BTC): $2.89B
- **WSTETH** (Wrapped stETH): $2.34BUse Cases
DeFi Research
"Search for Aave and show me the chain breakdown" — find protocols, compare TVL across chains, and understand where value is concentrated. Works with any protocol in DeFi Llama's database of 3,000+ projects.
Yield Optimization
"Show me the highest yield stablecoin pools on Base with at least $10M TVL" — filter yield opportunities by chain, project, minimum TVL, and asset type. Find safe yields without hunting through dashboards.
Chain Analysis
"What's the total TVL on Arbitrum?" — get chain-level stats including top tokens by TVL. Useful for understanding where liquidity is flowing and which chains are growing.
Stablecoin Intelligence
"List the top 5 stablecoins by market cap" — track stablecoin market caps, circulating supply, and price deviations. Essential for understanding DeFi's dollar-denominated liquidity.
Cross-Chain Monitoring
"Which bridges have the most TVL?" — monitor cross-chain bridge activity and volume. Track which bridges are gaining or losing share.
Protocol Revenue Tracking
"What are the protocols with the most fees?" — analyze protocol fee generation and revenue. Useful for fundamental analysis and comparing protocol economics.
Security
No API key required — uses DeFi Llama's free public API. No authentication needed.
Read-only — only fetches public DeFi data from DeFi Llama's API. No writes, no mutations.
No local file access — does not read or write any files on your machine.
No shell access — does not execute commands or spawn processes.
Rate-limited — automatically caps requests to be a polite API citizen.
Open source — MIT licensed. Inspect the code at GitHub.
Troubleshooting
"Protocol not found" errors
Use search_protocols first to find the correct DeFi Llama slug. Protocol slugs are lowercase with hyphens (e.g. aave-v3, lido), not ticker symbols.
Slow responses
DeFi Llama's /protocols and /pools endpoints return multi-MB responses. The server throttles to ~2 calls/second. For large queries, results may take 1-2 seconds.
Server won't start
Make sure Node.js 18+ is installed: node --version. If using npx, ensure npm is up to date: npm install -g npm@latest.
MCP client can't connect
Verify the config path is correct. Claude Desktop uses ~/Library/Application Support/Claude/claude_desktop_config.json on macOS and %APPDATA%\Claude\claude_desktop_config.json on Windows. Restart the client after config changes.
Requirements
Node.js 18+
No API key needed (DeFi Llama is a free public API)
Rate Limits
DeFi Llama doesn't publish hard rate limits, but the server automatically throttles requests to ~2 calls/second (500ms minimum interval) to be a polite citizen. The /protocols and /pools endpoints are large (multi-MB), so the throttle also helps avoid unnecessary load.
Data Sources
Protocols & TVL:
https://api.llama.fiYields:
https://yields.llama.fiStablecoins:
https://stablecoins.llama.fi
All endpoints are free and require no authentication. Full API documentation: https://defillama.com/docs/api
Development
git clone https://github.com/nova/defillama-mcp-server.git
cd defillama-mcp-server
npm install
npm run build
npm startLicense
MIT
Available Tools
8 toolsget_bridgesA
Get cross-chain bridge data ranked by total value locked. Returns bridge name, TVL, 24h volume, and 7d volume. Useful for comparing bridge liquidity and identifying which bridges handle the most cross-chain capital flow.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses ranking and return fields but does not mention data source, pagination, or ordering details beyond the ranking criterion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, each providing distinct value: action, returned data, and usage context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and no output schema. The description covers the essential action, fields, and usage, but could be more explicit about the output being a list and the currency of TVL.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the sole parameter 'limit' with a clear description, yielding 100% schema coverage. The tool description adds no additional parameter semantics, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves cross-chain bridge data ranked by TVL, with a specific verb and resource. It enumerates the returned fields, which distinguishes it from sibling tools focused on other asset types or metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use case context: comparing bridge liquidity and identifying dominant capital flows. However, it doesn't explicitly mention alternatives or when not to use this tool, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dex_volumesA
Get decentralized exchange trading volumes ranked by 24h volume. Returns DEX name, 24h/7d/30d volume, and 24h change percentage. Useful for comparing DEX activity, identifying volume trends, and finding which exchanges dominate on-chain trading.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It clearly states the tool returns DEX name, 24h/7d/30d volume, and 24h change percentage, and notes the ranking by 24h volume. This gives the agent a solid understanding of the output without needing an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states exactly what the tool does, and the second sentence adds return details and use cases. There is no redundant or unnecessary text, making it highly efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no nested objects, no output schema), the description is complete: it explains the output fields, the ranking logic, and the intended use cases. This is more than sufficient for an agent to invoke the tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the only parameter, 'limit', with 'Max results (default 25)'. The description does not add any additional meaning about the parameter beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get decentralized exchange trading volumes ranked by 24h volume.' This clearly distinguishes it from sibling tools that focus on bridges, stablecoins, yields, or TVL, so the agent can readily identify what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating it is 'useful for comparing DEX activity, identifying volume trends, and finding which exchanges dominate on-chain trading.' While it doesn't explicitly name alternatives or state when not to use it, the context is sufficient for typical agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_protocol_feesA
Get protocol fee and revenue data ranked by 24h fees. Returns protocol name, 24h/7d/30d fees, and 24h revenue where available. Useful for comparing protocol economics, identifying which DeFi protocols generate the most fees, and analyzing revenue trends.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the ranking criterion, the fields returned, and that revenue is included 'where available,' which is important behavioral context. It lacks details on data freshness or units but is fairly transparent for a read-only data tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and every sentence adds value. It is concise without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description fully explains the return values: protocol name, 24h/7d/30d fees, and 24h revenue where available. This is sufficient for a simple tool with one optional parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the only parameter (limit) with a description and default, so the baseline is 3. The description does not add extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Get protocol fee and revenue data ranked by 24h fees.' It also lists the return fields, distinguishing it from sibling tools like get_protocol_tvl or get_yields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use cases: 'comparing protocol economics, identifying which DeFi protocols generate the most fees, and analyzing revenue trends.' This implies when to use it, though it does not explicitly mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_protocol_tvlA
Get detailed TVL breakdown for a specific DeFi protocol by slug. Returns current TVL, chain-by-chain TVL distribution, 24h/7d TVL change percentages, category, description, website, and sampled TVL history. Use search_protocols to find the slug first.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Protocol slug (e.g. 'aave', 'uniswap', 'lido'). Use search_protocols to find slugs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the full set of return data (current TVL, chain distribution, change percentages, category, description, website, sampled history), which is significant behavioral detail. It does not mention error handling, rate limits, or pagination, but for a read-only get tool, the output specification is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences: the first states the purpose and return fields, the second provides a critical prerequisite. Every sentence earns its place; no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is comprehensive: it explains the input requirement, the return payload, and the prerequisite to find the slug. The level of detail is sufficient for an agent to use the tool correctly without further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% description coverage, including examples and the instruction to use search_protocols. The tool description repeats this guidance without adding new parameter semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'detailed TVL breakdown for a specific DeFi protocol by slug,' listing the exact data returned. It distinguishes itself from siblings like get_tvl_by_chain (chain-level vs protocol-level) and search_protocols (search vs retrieval).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to 'Use search_protocols to find the slug first,' providing a clear prerequisite and directing to the correct tool for finding slugs. It does not explicitly mention when not to use it or contrast with get_tvl_by_chain, but the protocol-specific scope is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stablecoinsA
Get stablecoin market data ranked by circulating supply. Returns symbol, peg type, circulating market cap, price, and number of chains each stablecoin is deployed on. Useful for comparing stablecoin adoption and identifying multi-chain stablecoins.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavior. It transparently lists the output fields and the ranking order (by circulating supply), making clear this is a read-only data query. It does not mention caveats like rate limits or update frequency, but it is sufficiently transparent for a simple data retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence front-loads the core purpose and ranking, the second lists returned fields and use cases. Every word earns its place, with no redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description is complete: it states the data returned, the ordering, and practical use cases. The schema covers the limit param, and the sibling tools are distinct enough that context is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'limit' is fully documented in the schema (with default and description), so the description does not need to add param details. The description does not mention 'limit', but schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets stablecoin market data ranked by circulating supply, and lists specific returned fields (symbol, peg type, market cap, price, chain count). This differentiates it from sibling tools like get_bridges or get_yields, which focus on other DeFi metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides use cases ('comparing stablecoin adoption' and 'identifying multi-chain stablecoins'), giving context on when to use it. However, it does not explicitly state when not to use it or name alternatives, so it falls short of the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tvl_by_chainA
Get total TVL for a specific blockchain (Ethereum, Arbitrum, Base, Solana, BSC, Polygon, etc.). Returns chain-level TVL, native token symbol, CoinGecko/CMC IDs, and top 10 tokens on that chain ranked by TVL. Useful for comparing chain activity and identifying where capital is concentrated.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Chain name (e.g. 'Ethereum', 'Arbitrum', 'Base', 'Solana', 'BSC', 'Polygon') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It transparently describes what the tool returns (chain TVL, native token symbol, IDs, top 10 tokens), implying a read-only operation. It does not mention rate limits or edge cases, but for a simple read tool, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place: purpose, return details, and use case. It is front-loaded with the action verb and resource, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple tool with one required parameter and no output schema. The description sufficiently explains what the tool does, what input is needed, and what output to expect, making it complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single 'chain' parameter, including examples. The description repeats those examples but adds no new parameter-level information (e.g., format, constraints, default behavior) beyond what the schema already specifies. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets total TVL for a specific blockchain, listing example chains. It is easily distinguished from siblings like get_protocol_tvl (protocol-level) and get_dex_volumes (DEX volumes), establishing a unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case ('comparing chain activity and identifying where capital is concentrated'), but it does not explicitly mention alternatives or when not to use the tool. Sibling names imply differentiation, but the description itself lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_yieldsA
Search yield/APY opportunities across DeFi lending pools and staking. Returns pool name, chain, project, APY (with base + reward breakdown), TVL, and stablecoin indicator. Filter by chain, project, minimum TVL, or minimum APY. Impermanent-loss pools excluded by default.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Filter by chain (e.g. 'Ethereum', 'Arbitrum', 'Base', 'Solana') | |
| limit | No | Max results (default 20) | |
| min_apy | No | Minimum APY % (default 0) | |
| min_tvl | No | Minimum TVL in USD (default $1M) | |
| project | No | Filter by project (e.g. 'Aave', 'Lido', 'Compound') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It states what the tool returns (pool name, chain, project, APY breakdown, TVL, stablecoin indicator) and discloses a notable default exclusion (impermanent-loss pools). It does not mention auth requirements, rate limits, or side effects, but the read-only nature is implied by 'Search' and the absence of mutation verbs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences: purpose, return fields, and filters/exclusion. Each sentence adds distinct value with no redundancy. It front-loads the main operation and efficiently communicates key behaviors, making it quick to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and no output schema, the description covers the essential context: what it does, what it returns, and how to filter. It also provides a default behavior (exclusion of impermanent-loss pools). Minor gaps include lack of default sort order or exact matching semantics, but the description is complete enough for effective selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's mention of filters ('chain, project, minimum TVL, or minimum APY') simply restates what the schema already documents. It adds no new syntactic or semantic details beyond the schema, such as value formats or matching behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Search' and clearly identifies the resource: 'yield/APY opportunities across DeFi lending pools and staking.' It enumerates return fields and filters, distinguishing it from sibling tools like get_bridges or get_dex_volumes, which address different DeFi data domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear context: this is the tool to search for yield/APY opportunities. While it doesn't explicitly name alternative tools or state when not to use it, the context is unambiguous and sufficient for an agent to select it. It also notes a behavioral default ('Impermanent-loss pools excluded by default') which implies how results are pre-filtered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_protocolsA
Search DeFi protocols by name or symbol. Returns matching protocols ranked by TVL, each with name, symbol, TVL, category, chains, and slug. Use the slug in get_protocol_tvl for detailed data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (default 10) | |
| query | Yes | Search term (e.g. 'aave', 'uniswap', 'lido') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the return fields and ranking by TVL, but does not state whether the operation is read-only, whether there are rate limits, pagination, or what happens on no matches. It is not misleading but lacks depth for a completely transparent view.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action verb 'Search', and every sentence provides value: the first explains the search and return structure, the second tells how to proceed using the slug. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter search tool with no output schema, the description is nearly complete: it states the search behavior, the result fields, ranking, and the next step with a sibling tool. Minor gaps like handling empty results or result ordering are not critical, and the schema covers 'limit'. Overall, it is enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% description coverage (query and limit both described), so the baseline is 3. The description does not add much beyond mapping 'name or symbol' to the query parameter, and the schema already covers examples. No additional parameter semantics are contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches DeFi protocols by name or symbol and returns a ranked list with specified fields (name, symbol, TVL, category, chains, slug). This specific verb+resource+fields structure distinguishes it from siblings, especially get_protocol_tvl which is explicitly referenced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides direct usage guidance by telling the user to use the returned slug with get_protocol_tvl for detailed data. This implies the correct sequence of search-then-detail, and distinguishes when to use this tool. It does not explicitly mention when not to use other siblings, but the context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v1.0.4- First observed
get_bridges - First observed
get_dex_volumes - First observed
get_protocol_fees - First observed
get_protocol_tvl - First observed
get_stablecoins - First observed
get_tvl_by_chain - First observed
get_yields - First observed
search_protocols
TDQS
Each tool targets a distinct data category (bridges, stablecoins, protocols, chains, yields, DEX volumes, fees). Even the two TVL-related tools are clearly separated between protocol-level and chain-level, making misselection unlikely.
All tools follow a verb_noun pattern with 'get_' except for 'search_protocols', which uses 'search_' instead. This minor inconsistency is offset by the otherwise uniform naming style, so no real confusion arises.
With 8 tools, the server is well-scoped for a data aggregation service like DeFi Llama. Each tool represents a major data section without redundancy, fitting comfortably within the ideal 3-15 range.
The tool set covers the core DeFi metrics: TVL (protocol and chain), yields, stablecoins, DEX volumes, bridges, and fees. Some granular data (e.g., token-specific details or historical charts) is missing, but the available surface supports most common research workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
DefiLlama MCP — DeFi analytics from DefiLlama (free, no auth)
Enable AI assistants to interact seamlessly with the DefiLlama API by translating MCP tool calls i…
DefiLlama MCP — TVL, yields, volumes, fees, and protocol analytics for DeFi.
Query cryptocurrency on-chain data, OHLCV prices, market data, and Research & QuickTake insights.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables querying DeFi data through DeBank API, including wallet balances, token prices, NFT collections, protocol positions, transaction history, gas prices, and security analysis across 93+ blockchains through natural language.163MIT
- FlicenseNot gradedqualityDmaintenanceReal-time DeFi data for AI agents. Provides yields, TVL, prices, DEX volumes, fees, and contract data via 8 MCP endpoints, powered by DeFiLlama.-
- AlicenseBqualityDmaintenanceEnables Claude to access DeFi data via DefiLlama API, including protocol TVL, chain TVL, token prices, and stablecoin information.79MIT
- AlicenseAqualityAmaintenanceEnables AI agents to interact with DefiLlama's DeFi data aggregator, providing access to TVL, DEX volumes, protocol statistics, and more via the Model Context Protocol.2253ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/friendlygeorge/defillama-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server