使用 HuahuaDaily MCP 查询投资组合、交易、市场数据、截图导入,并发送经 App 确认的交易/导入请求。
&/(HuahuaDaily). 兼容性是一项面向实际任务的技能,主要用于此 SKILL. md 故意使用最小的普通代理技能格式: YAML 前置只包含名称和描述, 之后是 Markdown 指令。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
This SKILL.md intentionally uses the smallest common Agent Skills format: YAML frontmatter with only name and description, followed by Markdown instructions. Platform-specific setup for Codex, Codex CLI, Claude Code, Claude Desktop, OpenClaw, and other MCP clients belongs in README/configuration, not in this file.
花花日记 MCP 让 Agent 读取用户授权的云端同步数据、基金行情、交易流水和系统公告,识别截图,并向 App 发送待确认请求。
Agent 不直接写入交易、不直接导入持仓、不覆盖云同步。所有买入、卖出、持仓导入、自选导入、交易记录导入,都必须由用户在 App 确认页最终确认。
社区授权、取消授权、关注/取消关注、社区收益同步是直接后端写操作,不走 App 待确认页。只有用户明确确认该社区操作时才调用;不要把它们描述为“已发送到 App 等待确认”。
MCP 可读取完整持仓、交易流水、原始云端实时同步主数据和截图内容,可能包含金额、成本、收益率等敏感投资数据。回答时不要主动暴露超过用户问题所需的明细。
首次使用或不确定能力时,调用:
get_tool_manifest()
用途:
Token 缺失、无效或过期时,提示用户在 App「小窝 / 设置 → Agent 访问令牌」重新生成,并配置环境变量 HUAHUA_AGENT_TOKEN。
如果当前 MCP client 支持运行时传 token,也可以调用:
set_token({"token": "HUAHUA_AGENT_TOKEN_VALUE"})
确认当前账号信息(昵称、UID、会员状态):
get_current_user()
适合回答"我是谁""我的会员什么时候到期"等问题。
本节所有持仓、交易、分组、标签、自选和原始同步数据读取,都以云端实时同步主数据为准:固定读取结构化组合快照,不读取旧版同步大包。不要把 history_snapshot 或 /api/cloud-snapshots 历史备份快照当成当前持仓数据源。
首选:
get_summary()
返回重点:
totalMarketValue:总市值。todayProfit:今日收益。todayProfitRate:今日/昨日收益率,口径为 todayProfit / totalDayBaseMarketValue × 100%,不要用当前总市值重算。totalDayBaseMarketValue:todayProfitRate 使用的归属日组合期初市值。totalHoldingProfit:持有收益。totalHoldingReturnRate:持有收益率。cumulativeProfit:累计收益;这是本 App 已记录交易推导的累计,仅在用户明确询问历史累计或该字段时使用。dataUpdatedAt:云端实时同步主数据时间。回答时必须说明 dataUpdatedAt。如果时间明显旧,提醒用户在 App 开启实时同步或点击「从云端同步恢复 / 手动同步」相关入口。
不要为了资产概况先调用 get_raw_sync_data()。
首选:
get_records({"include_transactions": false})
返回重点:
holdings:有持仓的基金。watchlist:自选或清仓观察项。groups:分组。summary:汇总。dataUpdatedAt:云端实时同步主数据时间。云端实时同步主数据会保存最后一次官方净值作为恢复基线,但不会保存盘中估值等高频行情。get_records 会主动拉取最新行情用于今日收益,但持仓市值仍以主数据中的官方 lastNav 为准;若需要盘中估算口径,再调用 get_item_estimate 获取 estimatedNav。
当前 App 口径:持仓市值和持有收益只按云端主数据中的官方 lastNav 计价;盘中估算只用于 dayProfit(今日收益),不会回填持仓市值。cumulativeProfit 是本 App 已记录交易推导的累计收益,不代表用户所有平台/历史清仓买卖的完整累计收益。get_records 会读取云端主数据里的 userPreferences.fundDataSourceMode 和基金级 dataSourceMode,自动按用户选择的行情源请求估值。
如果用户要求交易流水、成本来源、审计收益,再调用:
get_transactions({"code": "", "include_pending": true})
或:
get_records({"include_transactions": true})
先调用:
get_sync_meta()
返回重点:
updated_at:云端实时同步主数据更新时间。etag:云端主数据指纹。data_source:structured_portfolio 表示结构化实时同步主数据。size_bytes:主数据大小。has_restorable_sync_payload:是否可由新版 App 安全恢复。empty_portfolio_confirmed:是否是用户确认过的空组合主数据;为 true 且可恢复时,不要误判为云端损坏。history_snapshot:最新云端历史快照摘要,只用于恢复、回滚和灾备,不代表当前主数据。需要完整检查时调用:
get_raw_sync_data({"include_json_text": false})
检查重点:
data.funds 是否存在且非空。meta.is_confirmed_empty_portfolio_snapshot=true,这是用户确认清空组合后的合法空组合主数据。data.groups、data.watchlistGroups 是否存在。data.globalTags 是否存在。data.nightWatchCodes、data.purchaseLimitWatchItems、data.marketIndexSelection 是否存在。meta.contains_ledger 通常为 false,这是正常的。只有用户明确要求导出原始 JSON 文本时,才设置 include_json_text=true。默认不要返回大段 JSON。
分组:
get_groups()
标签:
get_tags()
使用规则:
get_groups() 用于解释持仓账户分组、自选分组。get_tags() 用于解释全局标签和每只基金绑定标签。先读取用户在 App 保存的观察列表:
get_purchase_limit_watchlist()
再按需对返回的代码调用 get_batch_fund_fees(codes) 或 get_fund_fees(code) 查看申购状态、QDII/限大额日累计限购金额和确认天数。旧版本或尚未同步过该功能的云端主数据可能没有 purchaseLimitWatchItems,此时 has_customized=false。
查询实时估算:
get_item_estimate({"codes": ["110022"]})
用途:
注意:
codes 最多 50 个。default_data_source_mode(huahua/a/b/c)和 data_source_mode_by_code,对齐 App 的多行情源设置。先搜索:
search_item({"query": "易方达消费"})
处理规则:
按需调用:
get_item_detail({"code": "110022"})
get_item_history({"code": "110022"})
get_fund_source_previews({"code": "110022"})
get_fund_fees({"code": "110022"})
get_item_dividends({"code": "110022"})
get_fund_period_rank({"code": "110022"})
get_batch_fund_period_ranks({"codes": ["110022", "161725"]})
get_fund_timeline({"code": "110022"})
get_fund_profile({"code": "110022"})
get_batch_fund_profiles({"codes": ["110022", "161725"]})
选择规则:
get_item_estimate。get_fund_source_previews。get_item_history。get_fund_fees(单只)或 get_batch_fund_fees(批量,最多 50 只)。get_item_dividends。get_fund_period_rank(单只)或 get_batch_fund_period_ranks(批量,最多 50 只)。get_fund_timeline;若用户指定行情源,传 source_mode。get_item_detail。此工具较重,不要作为日常行情首选。get_night_estimate(需会员,美股交易时段有效);用户在 App 添加的夜盘自选基金列表用 get_night_watchlist,通常先调这个再传给 get_night_estimate。get_fund_profile。包含费率、排名、持仓、行业、分红、风险指标等。get_batch_fund_profiles(最多 20 只)。读取 data,并检查
complete、missingCodes、timedOut;缺失表示服务端在 20 秒预算内未取得,
不得臆造画像或把部分结果当完整结果。任何非法基金代码都会使调用直接
失败,不会被静默跳过。用户只问指数结构、均线、收益或强弱时,直接使用服务端指标接口,不要为了 一个指数拉取个人持仓上下文:
get_index_metrics({"codes": ["399006", "000688", "KS11"]})
省略 codes 返回全部已启用指数。必须检查 complete、rankingEligible、
asOf、freshness、historyFreshness、historyExpectedAsOf、
historyFreshnessBasis、historyLagCalendarDays 和 technicalValueBasis;
历史新鲜度按所属市场当前时刻已完成的预期收盘日判断,calendar lag
仅作跨度展示。historyFreshness=stale 或 unknown 时不得使用对应 MA、收益或
排名结论,即使实时价格本身可用。不得调用
get_instrument_history 自行计算 MA、收益、回撤、波动或排名。
概览:
get_overview()
主要指数:
get_indices()
板块风向:
get_sector_wind()
板块结构、均线和强弱排名直接调用:
get_sector_metrics()
该工具一次返回全部已配置行业/主题 ETF 代理的服务端预计算指标;必须检查
historyBasis、technicalValueBasis、asOf、freshness、
historyFreshness、historyExpectedAsOf、historyFreshnessBasis、
historyLagCalendarDays 和 rankingEligible。fund_nav_fallback 仅作降级展示,
不参与场内强弱排名。交易日历不可证明完整时,
historyFreshness=unknown 且必须退出排名。
不得再调用
get_instrument_history 自行计算 MA、收益、回撤、波动或排名。
get_fund_flow() 的 sectorFlow 正常同时包含 industry 与 concept。
始终检查 sectorFlow.freshness、partial、categoriesPresent 和
categoriesFailed。若某一分类由完整 last-good 快照补齐,还会返回
categoryFreshness 与 categoryPolledAt;字段存在时必须检查,不得把补齐分类
描述成当前轮询时点的实时数据。
今日涨跌榜:
get_daily_rank()
上一交易日涨跌榜:
get_yesterday_rank()
是否交易日:
get_status()
持有人排行:
get_holder_ranking()
返回 App 内持有人数最多的 30 只基金,含持有人数和涨跌幅。
资金流向:
get_fund_flow()
返回 fundFlow(基金资金流)、sectorFlow(板块资金流)、polledAt(数据时间)。
先检查 sectorFlow 是否非空;非空时 byCategory.industry 与
byCategory.concept 始终存在。同时检查 categoriesPresent、
categoriesFailed、partial 和 sectorFlow.freshness。若响应包含
categoryFreshness 和 categoryPolledAt,再按分类核对它们,
不得把上游缺失或 last-good 补齐解释为当前轮零流入。
需要 PRO 会员权限。适合回答"主力资金在买什么板块""哪些基金被大额申购/赎回"等问题。
目录:
get_instrument_catalog()
实时行情:
get_instrument_quotes({"codes": ["000300", "000001"]})
这里必须使用 get_instrument_catalog 返回的标准代码;程序化查询严格按请求
集合返回,不会自动补默认标的或截断成 App 卡片数量。
分时走势:
get_instrument_timeline({"code": "000300"})
历史数据:
get_instrument_history({"code": "000300", "period": "1m"})
默认沪深300:
get_benchmark_history({"code": "sh000300"})
常用代码:
sh000300:沪深300。sh000001:上证指数。sz399001:深证成指。510300。需要基金自身走势时,再调用 get_item_history(code)。
QDII 基金投资美股/港股,北京时间夜间才是它们的交易时段。夜盘估值在美股交易时段(21:30–次日04:00 夏令时)提供实时持仓穿透。
推荐流程(无需用户报代码):先用 get_night_watchlist() 读用户在 App 添加的夜盘自选列表,再用其结果调 get_night_estimate():
get_night_watchlist()
// 返回 {"codes": ["016665", "018147", ...], "count": N, "has_customized": true, "dataUpdatedAt": "..."}
若 has_customized=false(用户未自定义过),codes 为空,应提示用户先去 App 夜盘页面添加自选基金,或允许用户手动指定一组代码。
get_night_estimate({"codes": ["016665", "018147"]})
force: true 可跳过服务端缓存强制刷新,默认 false。view: "last_close" 可查询上一收盘快照口径,默认 forecast。
返回每只基金的:
estimatedChangePercent:盘后复合涨跌幅(股价×汇率)。estimatedNav:估算净值。breakdown:穿透到个股的持仓明细、股价涨跌、汇率变动、贡献度。status:ready(数据就绪)/ pending(等待开盘)/ closed(休市)。注意:
has_customized 会是 false。下一个交易日:
get_next_trading_day({"date": "2026-05-13"})
基金确认日期:
calculate_trading_dates({
"date": "2026-05-13",
"time_mode": "PRE_MARKET",
"confirm_days": 2
})
参数:
time_mode: PRE_MARKET 表示收盘前,POST_MARKET 表示收盘后。confirm_days: T+1/T+2/T+3 等,未知时先用 get_fund_fees(code) 获取 confirm_days;该工具也返回 daily_purchase_limit 等限购字段。先确认:
发送请求:
request_transaction({
"item_code": "110022",
"item_name": "易方达消费行业股票",
"record_type": "BUY",
"amount": 1000,
"date": "2026-05-13",
"note": "Agent 发起",
"group_name": "我的账户"
})
规则:
record_type 只能是 BUY 或 SELL。查看:
get_agent_requests()
用户明确要求忽略/撤销时:
update_agent_request({
"request_id": "请求 id",
"status": "DISMISSED"
})
不要替 App 把请求标记为 PROCESSED,除非用户明确要求且你知道这只是状态处理,不代表真实交易执行。
仅当用户明确要求生成并保存个人报告时使用:
submit_personal_strategy_report({
"title": "7月1日 个人组合复盘",
"summary": "今日组合主要受科技和黄金方向影响。",
"payload": {
"kind": "evening",
"date": "2026-07-01",
"body": "个人报告正文",
"sections": [
{
"id": "portfolio",
"title": "组合影响",
"items": [
{
"label": "科技方向",
"text": "结合用户授权读取的持仓和公开行情做个人化说明。",
"impact": "mixed",
"confidence": "medium"
}
]
}
],
"riskNotes": ["不构成投资建议,仅供复盘参考。"]
},
"client_message_id": "personal:2026-07-01:evening"
})
规则:
messages:write scope;如需同一个 token 同时读取持仓并投递个人报告,使用 agent:full messages:write。agent:full 不含个人报告写入;不要使用 hermes:write。user_id,不得声称发送给所有用户。/api/hermes/reports;公开 MCP 不提供管理员公共报告写入工具。持仓截图(本地路径):
import_holding_screenshots({
"image_paths": ["/absolute/path/holding.png"],
"import_type": "HOLDINGS"
})
自选截图(务必传 import_type: "WATCHLIST"):
import_holding_screenshots({
"image_paths": ["/absolute/path/watchlist.png"],
"import_type": "WATCHLIST"
})
Base64:
import_holding_screenshots({
"images_base64": [
{"filename": "holding.png", "mime": "image/png", "base64": "..."}
],
"import_type": "HOLDINGS"
})
本地路径模式会让 MCP server 读取并上传用户机器上的对应图片文件。只使用用户明确提供或当前对话中产生的截图路径;不要猜测、遍历或尝试读取无关文件。无法确认来源时优先使用 images_base64。
import_type 说明:
HOLDINGS(默认):持仓页面通常不显示基金代码,后端按名称四步匹配(可能出现模糊匹配)。WATCHLIST:自选页面明确显示 6 位代码,后端用专门 prompt 提取代码并精确匹配;AI 漏识别代码时回退名称匹配。自选场景务必传此值,否则会强制走名称模糊匹配。返回重点:
items:识别条目。summary.total:总条数。summary.unmatched:未匹配数量。resolution_required:是否需要轻确认。resolution_reason:轻确认原因。用途:
import_type="HOLDINGS")。import_type="WATCHLIST")。识别后不要直接声称导入完成。
本地路径:
import_transaction_screenshots({
"image_paths": ["/absolute/path/transactions.png"]
})
Base64:
import_transaction_screenshots({
"images_base64": [
{"filename": "transactions.png", "mime": "image/png", "base64": "..."}
]
})
同样地,image_paths 只可用于用户明确提供的截图文件路径。
返回重点:
type: BUY 或 SELL。fund_name:截图识别名称。fund_code:匹配代码。fund_real_name:标准基金名。matched:是否匹配。date、time_mode、amount、shares。skip / skip_reason:应跳过的条目。resolution_required / resolution_reason。只在对话里确认“识别歧义”,不要让用户在对话里完成大型表格审核。
需要轻确认的情况:
resolution_required=true。match_status=unmatched。matched=false。amount。shares。轻确认完成后,修改 items 中对应字段,再发送到 App。
持仓导入:
request_import_review({
"import_type": "HOLDINGS",
"items": [...],
"source_note": "Agent 识别持仓截图"
})
自选导入:
request_import_review({
"import_type": "WATCHLIST",
"items": [...],
"source_note": "Agent 识别自选截图"
})
交易记录导入:
request_import_review({
"import_type": "TRANSACTIONS",
"items": [...],
"source_note": "Agent 识别交易记录截图"
})
限制:
import_type 只能是 HOLDINGS、WATCHLIST、TRANSACTIONS。items 最多 300 条。调用后必须告诉用户:
查看某基金弹幕:
get_danmaku({"code": "110022"})
发送弹幕:
send_danmaku({
"fund_code": "110022",
"text": "今天波动有点大"
})
规则:
send_danmaku。text 最多 30 字。系统公告:
get_notices({"since": 0})
since 是 Unix 秒时间戳;默认 0 表示拉取最近公告。
排行榜:
get_community_ranking({"tab": "weekly"})
tab 可选 weekly(周收益)、monthly(月收益)、total(总收益)。
我的排名:
get_community_my_rank()
用户详情(十大重仓前5):
get_community_user({"uid": "12345678"})
搜索用户(UID / 昵称):
search_community_users({"query": "花花"})
关注/粉丝数:
get_community_stats()
关注列表:
get_community_following()
社区通知(排名变化、被关注等):
get_community_notices({"since": 0})
授权管理:
// 查询授权状态
get_community_authorization()
// 授权参与排行(须向用户确认)
authorize_community({"show_amount": false, "anonymous": false})
// 取消授权,退出排行
revoke_community_authorization()
关注操作:
// 关注/取消关注(取反操作)
follow_community_user({"target_uid": "12345678"})
规则:
get_community_notices 与 get_notices 不同:前者是个人社区通知,后者是系统公告。follow_community_user 是取反操作:已关注则取消,未关注则添加。用户完成 JCTI(韭彩测试指标)答题后,可提交四维分数获取 AI 个性化分析:
analyze_jcti({
"personality_id": "tepulang",
"ye": 85,
"wen": 60,
"sui": 30,
"duan": 45
})
参数:
personality_id:人格 ID,可选 tepulang(特普朗)、jiuhuang(韭黄)、faguo-dushen(法国赌神)、ji-wuli(姬无力)、yingshengchong(应声虫)、shanmu(山姆)、taozhongren(套中人)、tuoluowang(陀螺王)。ye / wen / sui / duan:野、稳、随、短四个维度的分数,每项 0-100。返回 AI 生成的个性化投资人格分析文本。需要 VIP 或 PRO 会员。
最新版本:
get_app_version()
返回版本号、更新日志、下载地址、是否强制更新。
版本历史:
get_app_versions({"page": 1, "page_size": 5})
适合回答"最新版本有什么新功能""历史更新记录"等问题。
401:Token 无效或过期,要求用户重新生成。403:权限不足或会员状态不满足;Agent Token 和多数 MCP 能力需要 PRO,部分行情/JCTI 能力可能要求 VIP 或 PRO。相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章