get_protocol_details
Retrieve historical TVL data for DeFi protocols with breakdowns by token and chain. Use this tool to analyze protocol performance and asset distribution across networks.
Instructions
GET /api/protocol/{protocol}
Get historical TVL of a protocol and breakdowns by token and chain.
Parameters:
protocol: protocol slug (e.g., 'aave')
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| protocol | Yes |
Implementation Reference
- defillama_server.py:82-92 (handler)Handler function for the 'get_protocol_details' tool. It is registered via @mcp.tool() decorator. Fetches historical TVL and breakdowns for a given protocol from DefiLlama API using the shared make_request helper.@mcp.tool() async def get_protocol_details(protocol: str) -> str: """GET /api/protocol/{protocol} Get historical TVL of a protocol and breakdowns by token and chain. Parameters: protocol: protocol slug (e.g., 'aave') """ result = await make_request('GET', f'/api/protocol/{protocol}') return str(result)
- defillama_server.py:82-82 (registration)Registration of the 'get_protocol_details' tool using the @mcp.tool() decorator.@mcp.tool()
- defillama_server.py:83-83 (schema)Input schema: protocol (str). Output: str (JSON response). Docstring provides description.async def get_protocol_details(protocol: str) -> str:
- defillama_server.py:30-38 (helper)Shared utility function used by get_protocol_details (and other tools) to make HTTP requests to the DefiLlama API.async def make_request(method: str, endpoint: str, params: Optional[Dict[str, Any]] = None) -> Any: """Make a request to the DefiLlama API.""" try: response = await client.request(method, endpoint, params=params) response.raise_for_status() return response.json() except Exception as e: return f"Error: {str(e)}"