rotki MCP:核隐私模式、加载范围和查询完整性
链小知 · 进阶 · 核验 · 依官方文档整理
按v1.44.1官方源码检查已有AI查询回执,区分缓存余额、历史事件、价格缺失和结果截断。
开始前准备
- 准备已有脱敏的rotki版本、MCP工具输入/输出和隐私模式记录;未配置的用户可仅据本文形成待核清单。
- 依据官方文档及v1.44.1源码,未安装、购买套餐、启动MCP、登录、调用本地或外部API,也未向AI传输账户数据。
1. 先固定版本、权限与backend状态
本文的工具字段依据v1.44.1固定源码;先记录已有实例版本及查询回执。MCP除info外要求Basic或更高,Free/Supporter的premium_required不等于零资产。
info提供mcp.version,以及backend.connected、unlocked、version和message。后端能连接但数据库未解锁仍不能用来确认账户数据;桌面通常用127.0.0.1:4445/mcp,Docker认证方式不同。本文不启动、安装、接入或解锁实例。
检查结果:版本、Premium门槛和backend连接/解锁状态各自有证据或未知。
2. 核隐私模式和旧数据处理
balanced默认遮蔽地址、交易哈希和用户账户名,但保留生成的描述及交易场所;strict还遮蔽自由文本,仍保留金额、资产、日期、对手方和位置。raw不遮蔽。本地运行不表示AI服务商收不到查询结果。
官方说明更改模式后需要重新加载分析数据;源码在同步到新模式时清空旧分析缓存,未重载可能返回no_tables_loaded或privacy_mode_changed。仅核已有privacy_mode和回执,不修改设置或把“已遮蔽”写成“没有任何数据外传”。
检查结果:记录实际privacy_mode及重载结果,AI收到的数据范围可说明。
3. 核加载表和时间输入
refresh_analytics_data默认tables为history_events;balances需要显式选择。from_timestamp/to_timestamp为0表示无边界,可接受Unix秒或毫秒,历史表timestamp本身为毫秒。核已有具体值与所求日期一致,不靠页面显示日期猜输入单位。
include_ignored_assets默认false,include_values默认false;需历史估值时应核原请求是否true。balances加载的是最新缓存快照且range_scoped=false,不按历史日期过滤,也不强制刷新链上余额。
检查结果:历史事件范围、忽略资产、估值开关和余额快照口径分别记录。
4. 先核加载完整性和价格缺口
history_events的source.completeness可为complete、truncated_by_max_events或stopped_early;source.rows_loaded表示本次真正可查询行数。backend_metadata.entries_found是后端序列化前估计,不用两者差值计算“覆盖率”。
include_values=true时才加入price、value和price_missing;历史价格只读本地缓存,缺价格得到NULL而非0。核source.value_currency、priced_rows与unpriced_rows,不能默认金额都是USD,也不能把忽略NULL的汇总写成完整总值。complete只说明所加载范围,不能保证原链索引无遗漏。
检查结果:完整性、实际加载行数、估值币种及缺价格行数均有记录。
5. 按schema和taxonomy检查汇总口径
list_tables与describe_table用于确认已加载表、实际列、sqlite_type及null_fraction/all_null;未经核实不套字段。get_event_taxonomy说明direction和event_group,informational行是注释,不能与真实资金事件重复累计。
amount为十进制字符串,amount_float仅能同资产汇总;income不能只按staking事件类型筛,否则可能把退出本金当收益。aggregate_by_group_ids=true每组只取代表事件,并未合并买卖两侧;要核交换两侧须按组关联,不能直接汇总代表行数量。
检查结果:字段类型、事件方向、资产单位和分组方式明确,无本金/注释重复计入。
6. 分开查询结果截断和数据加载截断
query_sql只接受单条只读SELECT/WITH,在已加载的SQLite分析副本上查询。源码默认返回上限500行,max_rows实际限制为1至5000;对照row_count、returned_rows和result_truncated。
结果截断与source.completeness不完整是两层问题。截断的列表不能靠AI把缺失行补出来;即使汇总结果只有一行,也仍需确认底层加载范围和价格完整。没有原回执或出现错误时,结论保持未验证。
检查结果:查询行数、返回行数、结果截断与源加载完整性分列。
怎样确认完成
- 留下范围、原始字段、结果与待核项的对应记录;没有实际文件或回执时保持未验证。
常见错误与边界
- info成功不表示其他工具已授权或后端数据已解锁。
- 源码字段限固定版本;未来版本及当前实例需另核,未执行工具或性能测试。