mcpField
P
pp-defillama

pp-defillama

github.com/mvanhorn其他2.1k45 次安装今天更新
代码仓库

关于 pp-defillama

pp-defillama 是调用只读 `defillama-pp-cli` 查询和分析 DefiLlama 数据的技能,适合通过命令行研究 DeFi 协议、链、代币价格、跨链桥和历史指标的 Agent 与分析人员。

主要功能

  1. 01查询协议和链的 TVL 数据
  2. 02获取历史图表与指标
  3. 03查看跨链桥交易量和交易记录
  4. 04查询代币价格与发行数据
  5. 05读取资金池、费用和国库数据

适用场景

  1. 01比较协议或区块链的 TVL
  2. 02回顾 DeFi 历史指标趋势
  3. 03研究跨链桥交易量与活动
  4. 04检查代币价格或发行数据

MCP 相关

README 介绍了供 AI Agent 使用的 DefiLlama MCP 服务,包含 23 个工具并需要 API 方案,同时提供了设置说明链接。该技能描述的 CLI 是独立的只读接口。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-defillama

安装后在 Claude Code 中输入/pp-defillama确认已加载。

详细介绍

Defillama — Printing Press CLI

前提条件:安装 CLI

此技能使用 defillama-pp-cli 二进制文件。**调用此技能中的任何命令前,必须先确认 CLI 已安装。**如果未安装,请先安装:

  1. 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到 $HOME/.local/bin;在 Windows 上,默认安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install defillama --cli-only
    
  2. 验证:defillama-pp-cli --version
  3. 确保报告的安装目录已添加到将调用此技能的 Agent/运行时的 $PATH 中。

如果 npx 安装失败(没有 Node、处于离线状态等),请改用 Go 直接安装(需要 Go 1.26.6 或更高版本):

go install github.com/mvanhorn/printing-press-library/library/other/defillama/cmd/defillama-pp-cli@latest

如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。验证成功前,请勿继续使用此技能的命令。

使用 AI?

DefiLlama 提供两种通过 AI 使用我们数据的方式:

资源适用对象描述
llms.txtAI 助手(ChatGPT、Claude、Cursor 等)将此链接粘贴到 AI 助手中,即可使用针对大模型优化的文档
MCP ServerAI Agent将 Agent 直接连接到 DefiLlama 数据——提供 23 个工具,需订阅 API 计划

快速入门(MCP)——将以下内容粘贴到 AI Agent 中:

Read https://raw.githubusercontent.com/DefiLlama/defillama-skills/refs/heads/master/defillama-setup/SKILL.md and follow the instructions to connect to DefiLlama MCP

需要更高的速率限制或优先支持?我们提供每月 300 美元的高级计划。前往 https://defillama.com/subscription 获取。

SDK

JavaScript — npm install @defillama/api — GitHub

Python — pip install defillama-sdk — GitHub

快速入门(JavaScript):

import { DefiLlama } from '@defillama/api'

const client = new DefiLlama()
const protocols = await client.tvl.getProtocols()

快速入门(Python):

from defillama_sdk import DefiLlama

client = DefiLlama()
protocols = client.tvl.getProtocols()

不适用此 CLI 的场景

对于需要创建、更新、删除、发布、评论、点赞、邀请、下单、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。此打印 CLI 仅提供用于检查、导出、同步和分析的只读命令。

命令参考

batch-historical — 管理批量历史数据

  • defillama-pp-cli batch-historical — period 和 searchWidth 接受的字符串:可使用常见的图表 K 线周期表示法,如 ‘4h’ 等,其中:W = 周,D = 天

block — 管理区块

  • defillama-pp-cli block <chain> <timestamp> — 对区块链的区块执行二分搜索,查找最接近指定时间戳的区块。

bridges — 管理桥

  • defillama-pp-cli bridges get — 获取桥接交易量摘要及按链划分的交易量明细
  • defillama-pp-cli bridges get-bridgedaystats — 获取桥接的 24 小时代币和地址交易量明细
  • defillama-pp-cli bridges get-bridgevolume — 获取桥、链或特定链上桥接的历史交易量
  • defillama-pp-cli bridges get-transactions — 获取指定日期范围内某座桥的所有交易
  • defillama-pp-cli bridges list — 列出所有桥及其近期桥接交易量摘要。

categories — 管理类别

  • defillama-pp-cli categories — 所有协议的类别概览

chain-assets — 管理链资产

  • defillama-pp-cli chain-assets — 获取所有链的资产

chains — 管理链

  • defillama-pp-cli chains — 获取所有链的当前 TVL

chart — 管理图表

  • defillama-pp-cli chart get — period 和 searchWidth 接受的字符串:可使用常见的图表蜡烛周期表示法,例如“4h”等,其中:W = 周,D = 天
  • defillama-pp-cli chart get-fork — 返回一个由 [timestamp, value] 对组成的数组,表示特定协议所有分叉的 TVL 随时间的变化。
  • defillama-pp-cli chart get-metric — 返回一个由 [timestamp, value] 对组成的数组,表示指标总值随时间的变化。
  • defillama-pp-cli chart get-oracle — 返回一个由 [timestamp, value] 对组成的数组,表示特定链的预言机 TVL 随时间的变化。
  • defillama-pp-cli chart get-oracle-2 — 返回一个由 [timestamp, value] 对组成的数组,表示特定预言机/协议的 TVL 随时间的变化。
  • defillama-pp-cli chart get-oracle-3 — 返回一个对象数组,其中包含时间戳,以及按预言机/协议细分的特定链 TVL 值。
  • defillama-pp-cli chart get-oracle-4 — 返回一个对象数组,其中包含时间戳,以及按链细分的特定预言机/协议 TVL 值。
  • defillama-pp-cli chart get-pool — 获取池的历史 APY 和 TVL
  • defillama-pp-cli chart get-treasury — 返回一个由 [timestamp, value] 对组成的数组,表示协议金库价值随时间的变化。
  • defillama-pp-cli chart get-treasury-2 — 返回一个由 [timestamp, { chain: value }] 对组成的数组,显示各链的金库价值随时间的变化。
  • defillama-pp-cli chart get-treasury-3 — 返回一个由 [timestamp, { token: value }] 对组成的数组,显示各代币的金库价值随时间的变化。
  • defillama-pp-cli chart get-tvl — 返回一个由 [timestamp, value] 对组成的数组,表示协议的 TVL 随时间的变化。
  • defillama-pp-cli chart get-tvl-2 — 返回一个由 [timestamp, { chain: value }] 对组成的数组,显示所选指标在各链上的值随时间的变化。
  • defillama-pp-cli chart get-tvl-3 — 返回一个由 [timestamp, { token: value }] 对组成的数组,显示各代币的 TVL 随时间的变化。
  • defillama-pp-cli chart list — 返回一个由 [timestamp, value] 对组成的数组,表示所有预言机的 TVL 总值随时间的变化。
  • defillama-pp-cli chart list-fork — 返回一个对象数组,其中包含时间戳,以及按分叉协议细分的 TVL 值。
  • defillama-pp-cli chart list-oracle — 返回一个对象数组,其中包含时间戳,以及按链细分的 TVL 值。
  • defillama-pp-cli chart list-oracle-2 — 返回一个对象数组,其中包含时间戳,以及按预言机/协议细分的 TVL 值。

dat — 管理 dat

  • defillama-pp-cli dat get — 返回特定机构的详细数据,包括 mNAV 计算结果(已实现、实际、最大值)
  • defillama-pp-cli dat list — 返回持有数字资产的机构的综合数据,包括 mNAV 计算结果(已实现、实际

emission — 管理发行

  • defillama-pp-cli emission <protocol> — 解锁指定代币/协议的数据。

emissions — 管理发行数据

  • defillama-pp-cli emissions — 列出所有代币及其基本信息

entities — 管理实体

  • defillama-pp-cli entities — 列出所有实体

equities — 管理股票

  • defillama-pp-cli equities list — 返回 DefiLlama 跟踪的所有上市公司的列表,并提供每家公司的当前市场摘要数据
  • defillama-pp-cli equities list-v1 — 返回指定股票代码的 SEC 文件(10-K、10-Q 等)列表,按提交日期降序排列(最新的在前)。
  • defillama-pp-cli equities list-v1-2 — 返回每日 OHLCV 数据条,每条为包含六个数字的数组:Unix 时间戳(以秒为单位,UTC)、开盘价、最高价、最低价、收盘价、成交量。
  • defillama-pp-cli equities list-v1-3 — 返回每日收盘价,每条为包含两个元素的数组:ISO 8601 日期时间字符串,随后是数值价格。
  • defillama-pp-cli equities list-v1-4 — 返回指定股票代码的损益表、资产负债表和现金流量表
  • defillama-pp-cli equities list-v1-5 — 返回单个股票代码的当前市场数据。

etfs — 管理 ETF

  • defillama-pp-cli etfs list — 资产层面的历史资金流
  • defillama-pp-cli etfs list-snapshot — 获取 ETF 及其指标(资产管理规模、资金流、费用等)

fdv — 管理 fdv

  • defillama-pp-cli fdv <period> — 根据类别表现获取叙事图表(按市值对单个代币加权)

forks — 管理分叉

  • defillama-pp-cli forks — 所有协议分叉的概览

hacks — 管理黑客攻击

  • defillama-pp-cli hacks — Hacks 仪表板上所有黑客攻击的概览

historical-chain-tvl — 管理历史链 TVL

  • defillama-pp-cli historical-chain-tvl get — 获取某条链的历史 TVL(不包括流动性质押和重复计算的 TVL)
  • defillama-pp-cli historical-chain-tvl list — 获取所有链上 DeFi 的历史 TVL(不包括流动性质押和重复计算的 TVL)

historical-liquidity — 管理历史流动性

  • defillama-pp-cli historical-liquidity <token> — 提供指定链上合约的名称

inflows — 管理资金流入

  • defillama-pp-cli inflows <protocol> <timestamp> — 列出协议在指定日期的资金流入和流出金额

metrics — 管理指标

  • defillama-pp-cli metrics get — 返回指定维度的汇总指标,包括总量以及不同时间段的百分比变化
  • defillama-pp-cli metrics get-financialstatement — 返回协议元数据、方法详情以及汇总财务报表数据(年度、季度、月度)。
  • defillama-pp-cli metrics get-treasury — 返回协议元数据以及当前金库数据和各链明细。
  • defillama-pp-cli metrics get-tvl — 返回协议元数据以及当前 TVL 数据、各链明细和其他汇总指标。
  • defillama-pp-cli metrics list — 返回一个对象,将分叉名称映射到由该协议分叉而来的协议名称数组。
  • defillama-pp-cli metrics list-oracle — 返回一个对象,将预言机名称映射到使用该预言机的协议名称数组。

oracles — 管理预言机

  • defillama-pp-cli oracles — 所有协议预言机的概览

overview — 管理概览

  • defillama-pp-cli overview get — 列出所有 DEX,并附带其交易量摘要和数据类型历史数据,可按链筛选
  • defillama-pp-cli overview get-fees — 列出所有协议,并附带其费用和收入摘要以及按链划分的数据类型历史数据
  • defillama-pp-cli overview get-options — 列出所有期权 DEX,并附带其交易量摘要和数据类型历史数据,可按链筛选
  • defillama-pp-cli overview list — 列出所有 DEX,并附带其交易量摘要和数据类型历史数据
  • defillama-pp-cli overview list-derivatives — 列出所有衍生品,并附带其交易量摘要,可按链筛选
  • defillama-pp-cli overview list-fees — 列出所有协议,并附带其费用和收入摘要以及数据类型历史数据
  • defillama-pp-cli overview list-openinterest — 列出所有未平仓合约 DEX,并附带其未平仓合约摘要
  • defillama-pp-cli overview list-options — 列出所有期权 DEX,并附带其交易量摘要和数据类型历史数据

percentage — 管理百分比

  • defillama-pp-cli percentage <coins> — period 接受的字符串:可使用常见图表周期表示法,如 ‘4h’ 等,其中:W = 周,D = 天,H = 小时

pools — 管理池

  • defillama-pp-cli pools — 获取所有池的最新数据,包括预测等增强信息

prices — 管理价格

  • defillama-pp-cli prices get — 此 API 旨在尽可能为更多代币定价,包括从未交易过的特殊代币
  • defillama-pp-cli prices get-first — 获取代币最早的价格记录时间戳
  • defillama-pp-cli prices get-historical — 价格来源说明请参阅 /prices/current。

protocol — 管理协议

  • defillama-pp-cli protocol <protocol> — 获取协议的历史 TVL,以及按代币和链划分的明细

protocols — 管理协议

  • defillama-pp-cli protocols — 列出 defillama 上的所有协议及其 TVL

raises — 管理融资

  • defillama-pp-cli raises — 查看 Raises 仪表板上的所有融资概况

rwa — 管理 RWA

  • defillama-pp-cli rwa get — 返回所请求链上具有链上市值、活跃市值或 DeFi 活跃 TVL 的当前 RWA 资产。
  • defillama-pp-cli rwa get-chart — 返回某条链的历史链上市值、活跃市值和 DeFi 活跃 TVL 总额。
  • defillama-pp-cli rwa list — 返回当前现实世界资产(RWA)条目,其中包含按链划分的链上市值、活跃市值和 DeFi 活跃 TVL 映射。
  • defillama-pp-cli rwa list-chart — 返回时间序列条目,其中每列对应所选 RWA 指标的一条链。
  • defillama-pp-cli rwa list-list — 返回用于发现、搜索和筛选的轻量级 RWA 列表。
  • defillama-pp-cli rwa list-stats — 返回 RWA 汇总数据。对于默认的按链表格,请读取 byChain[chain].base: assetIssuers。

stablecoin — 获取稳定币仪表板的数据

  • defillama-pp-cli stablecoin <asset> — 获取某种稳定币的历史市值和历史链分布

stablecoinchains — 管理 stablecoinchains

  • defillama-pp-cli stablecoinchains — 获取每条链上所有稳定币当前市值总和

stablecoincharts — 管理 stablecoincharts

  • defillama-pp-cli stablecoincharts get — 获取某条链上所有稳定币的历史市值总和
  • defillama-pp-cli stablecoincharts list — 获取所有稳定币的历史市值总和

stablecoinprices — 管理 stablecoinprices

  • defillama-pp-cli stablecoinprices — 获取所有稳定币的历史价格

stablecoins — 获取稳定币仪表板的数据

  • defillama-pp-cli stablecoins get — 获取各链的稳定币主导率,以及该链最大稳定币的信息
  • defillama-pp-cli stablecoins list — 列出所有稳定币及其流通量

summary — 管理汇总数据

  • defillama-pp-cli summary get — 获取 DEX 交易量汇总及历史数据
  • defillama-pp-cli summary get-derivatives — 获取特定永续合约协议的交易量详情
  • defillama-pp-cli summary get-fees — 获取协议费用和收入汇总及历史数据
  • defillama-pp-cli summary get-options — 获取期权 DEX 交易量汇总及历史数据

token-protocols — 管理代币协议

  • defillama-pp-cli token-protocols <symbol> — 列出所有协议中某种代币的数量。数据用于 Token Usage 页面

treasuries — 管理资金库

  • defillama-pp-cli treasuries — 列出 Treasuries 仪表板上的所有协议

tvl — 获取 TVL 数据

  • defillama-pp-cli tvl <protocol> — 简化版端点,仅返回一个数字,即协议当前的 TVL

usage — 管理用量

  • defillama-pp-cli usage — 获取 API 密钥剩余的额度;额度会在每月 1 日重置

yields — 获取收益率/APY 仪表板的数据

  • defillama-pp-cli yields get — 获取借贷市场中某个资金池的历史借款成本 APY;资金池 ID 应从 /poolsBorrow 获取
  • defillama-pp-cli yields list — 获取多个 LSD 的 APY 利率
  • defillama-pp-cli yields list-perps — 获取各交易所永续合约的资金费率和未平仓合约量,包括去中心化和中心化交易所
  • defillama-pp-cli yields list-poolsborrow — 获取借贷市场中资产的借款成本 APY
  • defillama-pp-cli yields list-poolsold — 与 /pools 相同,但还包含一个新参数 pool_old,该参数通常包含资金池地址(但不保证)
找到合适的命令

知道想做什么,但不知道该用哪个命令时,可以直接询问 CLI:

defillama-pp-cli which "<capability in your own words>"

which 会根据自然语言能力查询,从此 CLI 精选的功能索引中找到最匹配的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有足够确定的匹配项,此时请改用 --help 或缩小查询范围。

身份验证设置

无需身份验证。

运行 defillama-pp-cli doctor 以验证设置。

Agent 模式

在任何命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。

  • 可通过管道传递 — JSON 输出到 stdout,错误输出到 stderr

  • 可筛选 — --select 保留部分字段。点分路径可深入嵌套结构;数组会逐项遍历。对于内容冗长的 API,这对控制上下文大小至关重要:

    defillama-pp-cli batch-historical --coins example-value --agent --select id,name,status
    
  • 可预览 — --dry-run 显示请求,但不会发送

  • 适合离线使用 — 同步/搜索命令在本地 SQLite 存储可用时可以使用它

  • 非交互式 — 绝不会提示输入,每项输入都通过标志传入

  • 只读 — 请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他会更改数据的请求

响应封装

从本地存储或 API 读取数据的命令会将输出封装在来源信息中:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

解析 .results 获取数据,并查看 .meta.source 以确定数据来自实时来源还是本地。仅当 stdout 是终端且未设置机器可读格式标志(--json、--csv、--compact、--quiet、--plain、--select)时,才会将人类可读的 N results (live) 摘要输出到 stderr;通过管道传递的/由 Agent 使用的命令以及指定了格式的运行,stdout 中只会输出纯 JSON。

Agent 反馈

当你(或 Agent)发现此 CLI 有异常之处时,请记录下来:

defillama-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
defillama-pp-cli feedback --stdin < notes.txt
defillama-pp-cli feedback list --json --limit 10

条目会存储在本地的 ~/.local/share/defillama-pp-cli/feedback.jsonl 中。只有在设置了 DEFILLAMA_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 DEFILLAMA_FEEDBACK_AUTO_SEND=true 时,才会发送 POST 请求。默认情况下,反馈仅保存在本地。

记录让你感到意外的地方,而不是提交错误报告。简短、具体、单行即可:这些记录会逐渐累积,发挥更大作用。

输出传递

每条命令都接受 --deliver <sink>。输出会发送到指定的目标,同时也会输出到 stdout,或取代 stdout 输出,因此 Agent 无需手动通过管道传递命令结果。支持三种目标:

目标效果
stdout默认;仅输出到 stdout
file:<path>以原子方式将输出写入 <path>(临时文件 + 重命名)
webhook:<url>将输出正文 POST 到 URL(使用 --compact 时为 application/json 或 application/x-ndjson)

不支持的协议会被拒绝,并返回包含受支持协议列表的结构化错误。Webhook 请求失败时会返回非零退出代码,并将 URL 和 HTTP 状态写入 stderr。

命名配置

配置是保存的一组标志值,可在多次调用中重复使用。当计划任务中的 Agent 每次运行都以相同配置调用同一命令时,可以使用配置——这就是 HeyGen 的“Beacon”模式。

defillama-pp-cli profile save briefing --json
defillama-pp-cli --profile briefing batch-historical --coins example-value
defillama-pp-cli profile list --json
defillama-pp-cli profile show briefing
defillama-pp-cli profile delete briefing --yes

显式指定的标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,供进行自省的 Agent 在运行时发现它们。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
5API 错误(上游问题)
7请求过于频繁(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、为 help 或 --help → 显示 defillama-pp-cli --help 的输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 请参阅上方的先决条件
  3. 其他情况 → 直接使用(将其作为带有 --agent 的 CLI 命令执行)

MCP 服务安装

  1. 安装 MCP 服务:
    go install github.com/mvanhorn/printing-press-library/library/other/defillama/cmd/defillama-pp-mcp@latest
    
  2. 注册到 Claude Code:
    claude mcp add defillama-pp-mcp -- defillama-pp-mcp
    
  3. 验证:claude mcp list

直接使用

  1. 检查是否已安装:which defillama-pp-cli 如果未找到,请提供安装选项(参见此技能顶部的先决条件)。
  2. 根据用户查询,从上方的独特功能和命令参考中选择最合适的命令。
  3. 使用 --agent 标志执行:
    defillama-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果存在歧义,请查看子命令帮助:defillama-pp-cli <command> --help。

评论

支持 Markdown