codes.onv/onv-mcp
codes.onv/onv-mcponv.codesstreamable-httpv1.0.3Scanned
量化策略回测、组合配置与多交易所执行(14 家通道)
44 tools: 16 can delete or cancel things, 23 change things and 5 only read.
- Reads private data · 0
- Reads text others write · 0
- Can send data out · 1
- 3 findings
Anlyon alternative
39 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
44 tools
Deletes or cancels 16Claude Code: deny
platform_ai_generate【策略】AI 生成策略代码(写操作,需用户确认):输入自然语言 prompt(可选 context 传入研究流水线结构化学徒上下文),返回策略代码与解释。(cost: ≈ 36–48 credits/次(按实际 tokens 结算))(写操作,外部调用将以 apikey 身份直接执行)No findings
Why it is in this group
- The name "platform_ai_generate" says "generate": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【策略】AI 生成策略代码(写操作,需用户确认):输入自然语言 prompt(可选 context 传入研究流水线结构化学徒上下文),返回策略代码与解释。(cost: ≈ 36–48 credits/次(按实际 tokens 结算))(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: AI 生成策略
- readOnlyHint: false
- destructiveHint: true
platform_ai_optimize【策略】AI 多轮优化策略(写操作,需用户确认):输入 prompt 描述策略目标,自动生成→回测→分析→改进(最多 maxRounds 轮,1-5,默认 3)。耗时较长。给了 initialCode 时第 1 轮不生成:直接回测这份既有代码作基线,第 2 轮起在其上改进(A3)。strategyParams 为指标参数覆盖(对齐 /api/cex/indi…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【策略】AI 多轮优化策略(写操作,需用户确认):输入 prompt 描述策略目标,自动生成→回测→分析→改进(最多 maxRounds 轮,1-5,默认 3)。耗时较长。给了 initialCode 时第 1 轮不生成:直接回测这份既有代码作基线,第 2 轮起在其上改进(A3)。strategyParams 为指标参数覆盖(对齐 /api/cex/indicator/backtest 的 params)。context 为可选结构化学徒上下文(B2-a,失败因子/评审结论/目标指标),独立注入 LLM。每轮回传 rounds[].params(本轮实际生效参数)与 rounds[].errorCode(失败原因可判定);全轮未产出代码时返回 502/429 + errorCode,不再返回空 finalCode。(cost: ≈ 34–38 credits/轮(按实际 tokens 结算))(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: AI 优化策略
- readOnlyHint: false
- destructiveHint: true
platform_cancel_order【持仓与执行】撤销未成交挂单(写操作,需确认):exchangeOrderId 与 clientOrderId 二选一。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)No findings
Why it is in this group
- The name "platform_cancel_order" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【持仓与执行】撤销未成交挂单(写操作,需确认):exchangeOrderId 与 clientOrderId 二选一。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 撤单
- readOnlyHint: false
- destructiveHint: true
platform_close_position【持仓与执行】平仓(写操作,需确认):按 credentialId + symbol 平掉持仓;closeScope=full 全平,传 size 时部分平。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)No findings
Why it is in this group
- The name "platform_close_position" says "close": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【持仓与执行】平仓(写操作,需确认):按 credentialId + symbol 平掉持仓;closeScope=full 全平,传 size 时部分平。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 平仓
- readOnlyHint: false
- destructiveHint: true
platform_dex_swap【持仓与执行】链上 DEX 兑换(写操作,需确认,动用真实资金):钱包地址自动取本人智能账户,不接受任意地址;大额授权需 approvalToken(由平台签发)。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【持仓与执行】链上 DEX 兑换(写操作,需确认,动用真实资金):钱包地址自动取本人智能账户,不接受任意地址;大额授权需 approvalToken(由平台签发)。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 链上兑换
- readOnlyHint: false
- destructiveHint: true
platform_factory_run【策略】发起策略工厂运行(写操作,需确认):sourceType=llm(描述生成)/search(条件扫描)/optimize(优化现有策略,需 strategyId)。同一用户同时只允许一个运行。(cost: base 5 + 10/1k bars(>10000 部分 5/1k) + 1/1k tokens credits)(写操作,外部调用将以 api…No findings
Why it is in this group
- The name "platform_factory_run" says "run": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【策略】发起策略工厂运行(写操作,需确认):sourceType=llm(描述生成)/search(条件扫描)/optimize(优化现有策略,需 strategyId)。同一用户同时只允许一个运行。(cost: base 5 + 10/1k bars(>10000 部分 5/1k) + 1/1k tokens credits)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 运行策略工厂
- readOnlyHint: false
- destructiveHint: true
platform_flat_all【持仓与执行】一键全平(写操作,需确认):默认 dryRun=true 只预演;确认执行须显式 dryRun=false。可按凭证/交易对/市场类型限定,marketType=spot 时清现货余额。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【持仓与执行】一键全平(写操作,需确认):默认 dryRun=true 只预演;确认执行须显式 dryRun=false。可按凭证/交易对/市场类型限定,marketType=spot 时清现货余额。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 一键全平
- readOnlyHint: false
- destructiveHint: true
platform_manage_strategy【策略】管理自己的策略(写操作,需用户确认)。action 为 create / update / delete;update/delete 需要 strategyId;create/update 用 data 传策略数据(data.name 必填,data.strategy_category 为 dex/defi)。(cost: free)(写操作,外部调…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【策略】管理自己的策略(写操作,需用户确认)。action 为 create / update / delete;update/delete 需要 strategyId;create/update 用 data 传策略数据(data.name 必填,data.strategy_category 为 dex/defi)。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 创建或修改策略
- readOnlyHint: false
- destructiveHint: true
platform_place_order【持仓与执行】真实下单(写操作,需确认,动用真实资金):credentialId 来自 platform_credentials,amount 为 USDT 名义金额;orderType=market|limit,限价单必填 price。执行前校验账号级「AI 实盘授权」,未开启一律拒绝。(cost: free)(写操作,外部调用将以 apikey 身份直接…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【持仓与执行】真实下单(写操作,需确认,动用真实资金):credentialId 来自 platform_credentials,amount 为 USDT 名义金额;orderType=market|limit,限价单必填 price。执行前校验账号级「AI 实盘授权」,未开启一律拒绝。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 下单
- readOnlyHint: false
- destructiveHint: true
platform_publish_strategy【策略】发布策略(写操作,需用户确认)。name 必填、category 为 dex/defi;code 为策略代码(可选);subscription_price 订阅价格;strategy_id 可指定已有草稿发布。发布为公开上架。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)Can send data outNo findings
Why it is in this group
- The name "platform_publish_strategy" says "publish": a word for a change that another call does not undo.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it destructive (destructiveHint: true).
What it can reach
- outboundThe name "platform_publish_strategy" says "publish": it sends or publishes something to other people.
Description, as the server wrote it 【策略】发布策略(写操作,需用户确认)。name 必填、category 为 dex/defi;code 为策略代码(可选);subscription_price 订阅价格;strategy_id 可指定已有草稿发布。发布为公开上架。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 发布策略
- readOnlyHint: false
- destructiveHint: true
platform_reset_breaker【账户与额度】人工解除熔断(写操作,需确认):须提供 recoveryCode;解除后策略恢复实盘执行。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)No findings
Why it is in this group
- The name "platform_reset_breaker" says "reset": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【账户与额度】人工解除熔断(写操作,需确认):须提供 recoveryCode;解除后策略恢复实盘执行。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 解除熔断
- readOnlyHint: false
- destructiveHint: true
platform_run_backtest【策略】提交回测任务(写操作,需用户确认)。strategy 为策略代码字符串或已有策略 ID(纯数字),symbol 为交易标的如 BTCUSDT,timeframe 可选 1m/5m/15m/30m/1H/4H/1D。params 为指标参数覆盖(可选,写入引擎 indicator_params,与代码内 # @param 默认值合并、此处优先),与同步…No findings
Why it is in this group
- The name "platform_run_backtest" says "run": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【策略】提交回测任务(写操作,需用户确认)。strategy 为策略代码字符串或已有策略 ID(纯数字),symbol 为交易标的如 BTCUSDT,timeframe 可选 1m/5m/15m/30m/1H/4H/1D。params 为指标参数覆盖(可选,写入引擎 indicator_params,与代码内 # @param 默认值合并、此处优先),与同步链 /api/cex/indicator/backtest 的 params 同口径。(cost: ≈ 27 credits/次(90d·1H))(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 运行回测
- readOnlyHint: false
- destructiveHint: true
platform_set_breaker【账户与额度】更新账户熔断配置(写操作,需确认):enabled 开关,可设日亏损上限、连续失败次数、gas 尖峰上限。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)No findings
Why it is in this group
- The name "platform_set_breaker" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【账户与额度】更新账户熔断配置(写操作,需确认):enabled 开关,可设日亏损上限、连续失败次数、gas 尖峰上限。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 设置熔断
- readOnlyHint: false
- destructiveHint: true
platform_set_risk_config【账户与额度】更新账户级风控配置(写操作,需确认):config 为要修改的字段对象(如日亏损上限、单笔上限)。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)No findings
Why it is in this group
- The name "platform_set_risk_config" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【账户与额度】更新账户级风控配置(写操作,需确认):config 为要修改的字段对象(如日亏损上限、单笔上限)。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 修改风控配置
- readOnlyHint: false
- destructiveHint: true
platform_subscribe_guide【账户与额度】订阅引导(写操作,需用户确认):为指定 Agent 生成订阅引导信息(周期可选 day/week/month/year),确认后返回订阅链接与支付信息,不自动扣费。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)No findings
Why it is in this group
- The name "platform_subscribe_guide" says "subscribe": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【账户与额度】订阅引导(写操作,需用户确认):为指定 Agent 生成订阅引导信息(周期可选 day/week/month/year),确认后返回订阅链接与支付信息,不自动扣费。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 获取订阅指引
- readOnlyHint: false
- destructiveHint: true
platform_subscribe_plan【账户与额度】购买平台套餐(写操作,需用户确认):plan_id 必填(来自 platform_plans),period 可选 day/week/month/year,payment_method 可选 chain/x402。创建支付订单,支付在平台完成。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)No findings
Why it is in this group
- The name "platform_subscribe_plan" says "subscribe": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 【账户与额度】购买平台套餐(写操作,需用户确认):plan_id 必填(来自 platform_plans),period 可选 day/week/month/year,payment_method 可选 chain/x402。创建支付订单,支付在平台完成。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)
Annotations the server declares
- title: 订阅策略
- readOnlyHint: false
- destructiveHint: true
Changes things 23Claude Code: ask
platform_account_overview【持仓与执行】我的跨所账户总览:各交易所余额、持仓与币种归并(无凭证返回空)。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【持仓与执行】我的跨所账户总览:各交易所余额、持仓与币种归并(无凭证返回空)。(cost: free)
Annotations the server declares
- title: 账户总览
- readOnlyHint: true
- destructiveHint: false
platform_backtest_history【策略】查询回测历史(可指定策略 ID 过滤)。参数 strategyId 可选。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【策略】查询回测历史(可指定策略 ID 过滤)。参数 strategyId 可选。(cost: free)
Annotations the server declares
- title: 查询回测历史
- readOnlyHint: true
- destructiveHint: false
platform_backtest_result【策略】查询回测任务结果。参数 jobId 为 run_backtest 返回的任务 ID。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【策略】查询回测任务结果。参数 jobId 为 run_backtest 返回的任务 ID。(cost: free)
Annotations the server declares
- title: 查询回测结果
- readOnlyHint: true
- destructiveHint: false
platform_close_preview【持仓与执行】一键全平预演(dry-run,不会下单):列出将被平仓的合约持仓 / 现货余额目标与合计盈亏。可按凭证或交易对过滤。(cost: free)1 finding
Why it is in this group
- The name "platform_close_preview" says "close": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "platform_close_preview" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "platform_close_preview" says "close": a word for a change.
Description, as the server wrote it 【持仓与执行】一键全平预演(dry-run,不会下单):列出将被平仓的合约持仓 / 现货余额目标与合计盈亏。可按凭证或交易对过滤。(cost: free)
Annotations the server declares
- title: 一键全平预演
- readOnlyHint: true
- destructiveHint: false
platform_credentials【账户与额度】查询我绑定的交易所凭证(脱敏,不含密钥)。返回凭证 ID/交易所/名称,供下单、平仓、查询使用。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【账户与额度】查询我绑定的交易所凭证(脱敏,不含密钥)。返回凭证 ID/交易所/名称,供下单、平仓、查询使用。(cost: free)
Annotations the server declares
- title: 查询交易凭证
- readOnlyHint: true
- destructiveHint: false
platform_dex_quote【行情】链上 DEX 报价(只读):chain 如 ETH/BSC/BASE/SOL,fromToken/toToken 为代币地址或符号,amount 为最小单位字符串。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【行情】链上 DEX 报价(只读):chain 如 ETH/BSC/BASE/SOL,fromToken/toToken 为代币地址或符号,amount 为最小单位字符串。(cost: free)
Annotations the server declares
- title: 链上兑换报价
- readOnlyHint: true
- destructiveHint: false
platform_explain_backtest【行情】解释一次回测「为什么亏 / 为什么没成交」。返回结构化卡片(数据区间、样本内外、最大回撤、数据缺失)与逐条原因。参数 runId / jobId / strategyId 至少给一个,三选一即可。(cost: free)1 finding
Why it is in this group
- The name "platform_explain_backtest" says "explain": a word for reading.
- The description's first verb is "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "platform_explain_backtest" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "platform_explain_backtest" says "explain": a word for reading.
Description, as the server wrote it 【行情】解释一次回测「为什么亏 / 为什么没成交」。返回结构化卡片(数据区间、样本内外、最大回撤、数据缺失)与逐条原因。参数 runId / jobId / strategyId 至少给一个,三选一即可。(cost: free)
Annotations the server declares
- title: explain backtest
- readOnlyHint: true
- destructiveHint: false
platform_factory_runs【策略】查询我的策略工厂运行记录;传 runId 时返回该次运行详情。(cost: free)1 finding
Why it is in this group
- The name "platform_factory_runs" says "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "platform_factory_runs" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "platform_factory_runs" says "run": a word for a change.
Description, as the server wrote it 【策略】查询我的策略工厂运行记录;传 runId 时返回该次运行详情。(cost: free)
Annotations the server declares
- title: 查询策略工厂记录
- readOnlyHint: true
- destructiveHint: false
platform_market_factors【行情】查询标的的市场因子数据(技术/宏观因子)。参数 symbol 为交易标的。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【行情】查询标的的市场因子数据(技术/宏观因子)。参数 symbol 为交易标的。(cost: free)
Annotations the server declares
- title: 查询市场因子
- readOnlyHint: true
- destructiveHint: false
platform_market_overview【行情】市场总览:主流币种快照、涨跌幅、成交量等市场状态概览。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【行情】市场总览:主流币种快照、涨跌幅、成交量等市场状态概览。(cost: free)
Annotations the server declares
- title: 市场总览
- readOnlyHint: true
- destructiveHint: false
platform_market_quote【行情】查询平台行情 K 线。参数 symbol 为交易标的(如 BTCUSDT / ETHUSDT),timeframe 可选 1m/5m/15m/30m/1H/4H/1D,limit 最大 299。返回该标的的 K 线数组。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【行情】查询平台行情 K 线。参数 symbol 为交易标的(如 BTCUSDT / ETHUSDT),timeframe 可选 1m/5m/15m/30m/1H/4H/1D,limit 最大 299。返回该标的的 K 线数组。(cost: free)
Annotations the server declares
- title: 查询K线行情
- readOnlyHint: true
- destructiveHint: false
platform_market_ticker【行情】查询标的实时行情 ticker。参数 symbol 为交易标的(如 BTCUSDT,可选,缺省返回全部)。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【行情】查询标的实时行情 ticker。参数 symbol 为交易标的(如 BTCUSDT,可选,缺省返回全部)。(cost: free)
Annotations the server declares
- title: 查询实时行情
- readOnlyHint: true
- destructiveHint: false
platform_my_strategies【策略】查询我创建的**策略市场/订阅域**策略列表(onv-backend `strategies` 表,按钱包地址归属,邮箱注册账号回退按数字 userId)。⚠[U+FE0F] 不含实盘策略——实盘策略在 `qd_strategies_trading`,请用 REST `GET /api/cex/strategies`(该端点不支持 status 过滤…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote itContains invisible characters, shown as [U+…] 【策略】查询我创建的**策略市场/订阅域**策略列表(onv-backend `strategies` 表,按钱包地址归属,邮箱注册账号回退按数字 userId)。⚠[U+FE0F] 不含实盘策略——实盘策略在 `qd_strategies_trading`,请用 REST `GET /api/cex/strategies`(该端点不支持 status 过滤,返回全部状态)。status 可选 draft/published/archived(缺省三者全取)。(cost: free)
Annotations the server declares
- title: 我的策略列表
- readOnlyHint: true
- destructiveHint: false
platform_plans【账户与额度】查询平台订阅套餐列表(免费/付费 tier 与价格)。无需参数。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【账户与额度】查询平台订阅套餐列表(免费/付费 tier 与价格)。无需参数。(cost: free)
Annotations the server declares
- title: 查询订阅套餐
- readOnlyHint: true
- destructiveHint: false
platform_positions【持仓与执行】我的全部持仓(跨交易所扁平化,含方向/数量/开仓价/未实现盈亏)。可按交易所或交易对过滤。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【持仓与执行】我的全部持仓(跨交易所扁平化,含方向/数量/开仓价/未实现盈亏)。可按交易所或交易对过滤。(cost: free)
Annotations the server declares
- title: 查询持仓
- readOnlyHint: true
- destructiveHint: false
platform_quick_analysis【行情】对指定标的进行快速 AI 技术分析(拉取行情并生成分析结论)。参数 symbol 为交易标的,如 BTCUSDT。(cost: ≈ 22–28 credits/次(按实际 tokens 结算))No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【行情】对指定标的进行快速 AI 技术分析(拉取行情并生成分析结论)。参数 symbol 为交易标的,如 BTCUSDT。(cost: ≈ 22–28 credits/次(按实际 tokens 结算))
Annotations the server declares
- title: 快速技术分析
- readOnlyHint: true
- destructiveHint: false
platform_risk_config【账户与额度】查询我的账户级风控面板:配置、熔断状态、聚合风险与策略风险。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【账户与额度】查询我的账户级风控面板:配置、熔断状态、聚合风险与策略风险。(cost: free)
Annotations the server declares
- title: 查询风控配置
- readOnlyHint: true
- destructiveHint: false
platform_strategy_performance【持仓与执行】查询**实盘策略**的绩效(策略级,按实盘策略 ID):权益曲线、最新权益、区间收益与点数。ID 取自 `qd_strategies_trading`。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【持仓与执行】查询**实盘策略**的绩效(策略级,按实盘策略 ID):权益曲线、最新权益、区间收益与点数。ID 取自 `qd_strategies_trading`。(cost: free)
Annotations the server declares
- title: 策略绩效
- readOnlyHint: true
- destructiveHint: false
platform_strategy_positions【持仓与执行】查询**实盘策略**的持仓(策略级,按实盘策略 ID)。⚠[U+FE0F] ID 取自 `qd_strategies_trading`(REST `GET /api/cex/strategies`),不是策略市场/订阅域的 `strategies` 表 ID。返回方向/数量/开仓价/未实现盈亏。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote itContains invisible characters, shown as [U+…] 【持仓与执行】查询**实盘策略**的持仓(策略级,按实盘策略 ID)。⚠[U+FE0F] ID 取自 `qd_strategies_trading`(REST `GET /api/cex/strategies`),不是策略市场/订阅域的 `strategies` 表 ID。返回方向/数量/开仓价/未实现盈亏。(cost: free)
Annotations the server declares
- title: 策略持仓
- readOnlyHint: true
- destructiveHint: false
platform_strategy_trades【持仓与执行】查询**实盘策略**的成交记录(策略级,按实盘策略 ID;含平仓原因与模拟盘标记)。ID 取自 `qd_strategies_trading`。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【持仓与执行】查询**实盘策略**的成交记录(策略级,按实盘策略 ID;含平仓原因与模拟盘标记)。ID 取自 `qd_strategies_trading`。(cost: free)
Annotations the server declares
- title: 策略成交
- readOnlyHint: true
- destructiveHint: false
platform_trade_history【持仓与执行】查询我的最近成交记录(默认 50 条,最多 200)。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【持仓与执行】查询我的最近成交记录(默认 50 条,最多 200)。(cost: free)
Annotations the server declares
- title: 查询成交记录
- readOnlyHint: true
- destructiveHint: false
platform_user_subscription【账户与额度】查询我的平台套餐订阅状态(当前套餐/到期时间)。无需参数。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【账户与额度】查询我的平台套餐订阅状态(当前套餐/到期时间)。无需参数。(cost: free)
Annotations the server declares
- title: 查询我的平台套餐
- readOnlyHint: true
- destructiveHint: false
platform_user_usage【账户与额度】查询我的平台用量汇总(今日 bars / 本月 tokens / 剩余配额)。无需参数。(cost: free)No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 【账户与额度】查询我的平台用量汇总(今日 bars / 本月 tokens / 剩余配额)。无需参数。(cost: free)
Annotations the server declares
- title: 查询用量配额
- readOnlyHint: true
- destructiveHint: false
Only reads 5Show 5 read-only tools
platform_get_agent【策略】获取单个已发布的公开 Agent(策略)详情。参数 agentId 为策略 ID。(cost: free)No findings
Why it is in this group
- The name "platform_get_agent" says "get": a word for reading.
Description, as the server wrote it 【策略】获取单个已发布的公开 Agent(策略)详情。参数 agentId 为策略 ID。(cost: free)
Annotations the server declares
- title: 查看策略详情
- readOnlyHint: true
- destructiveHint: false
platform_list_agents【策略】列出平台上已发布的公开 Agent(策略),可按能力过滤与分页。参数 capabilities 可选(如 dex/defi)。(cost: free)No findings
Why it is in this group
- The name "platform_list_agents" says "list": a word for reading.
Description, as the server wrote it 【策略】列出平台上已发布的公开 Agent(策略),可按能力过滤与分页。参数 capabilities 可选(如 dex/defi)。(cost: free)
Annotations the server declares
- title: 策略市场列表
- readOnlyHint: true
- destructiveHint: false
platform_subscription_list【账户与额度】查询我的订阅列表。无需参数。(cost: free)No findings
Why it is in this group
- The name "platform_subscription_list" says "list": a word for reading.
Description, as the server wrote it 【账户与额度】查询我的订阅列表。无需参数。(cost: free)
Annotations the server declares
- title: 我的策略订阅
- readOnlyHint: true
- destructiveHint: false
platform_subscription_status【账户与额度】查询对某 Agent 的订阅状态。参数 strategyId 或 agentId。(cost: free)No findings
Why it is in this group
- The name "platform_subscription_status" says "status": a word for reading.
Description, as the server wrote it 【账户与额度】查询对某 Agent 的订阅状态。参数 strategyId 或 agentId。(cost: free)
Annotations the server declares
- title: 查询策略订阅状态
- readOnlyHint: true
- destructiveHint: false
platform_symbol_search【行情】搜索平台支持的交易标的(币种/交易对)。参数 query 为关键词如 BTC。(cost: free)No findings
Why it is in this group
- The name "platform_symbol_search" says "search": a word for reading.
Description, as the server wrote it 【行情】搜索平台支持的交易标的(币种/交易对)。参数 query 为关键词如 BTC。(cost: free)
Annotations the server declares
- title: 搜索交易标的
- readOnlyHint: true
- destructiveHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or untrusted-input.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write0
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out1
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
The server marks "platform_explain_backtest" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "platform_explain_backtest" says "explain": a word for reading.
The server marks "platform_close_preview" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "platform_close_preview" says "close": a word for a change.
The server marks "platform_factory_runs" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false}; The name "platform_factory_runs" says "run": a word for a change.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http onv https://onv.codes/mcpclaude mcp add --transport http onv https://onv.codes/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__onv__platform_symbol_search",
"mcp__onv__platform_list_agents",
"mcp__onv__platform_get_agent",
"mcp__onv__platform_subscription_status",
"mcp__onv__platform_subscription_list"
],
"ask": [
"mcp__onv__platform_market_quote",
"mcp__onv__platform_market_overview",
"mcp__onv__platform_market_ticker",
"mcp__onv__platform_market_factors",
"mcp__onv__platform_quick_analysis",
"mcp__onv__platform_plans",
"mcp__onv__platform_my_strategies",
"mcp__onv__platform_backtest_result",
"mcp__onv__platform_backtest_history",
"mcp__onv__platform_explain_backtest",
"mcp__onv__platform_user_subscription",
"mcp__onv__platform_user_usage",
"mcp__onv__platform_account_overview",
"mcp__onv__platform_positions",
"mcp__onv__platform_strategy_positions",
"mcp__onv__platform_strategy_trades",
"mcp__onv__platform_strategy_performance",
"mcp__onv__platform_close_preview",
"mcp__onv__platform_trade_history",
"mcp__onv__platform_credentials",
"mcp__onv__platform_risk_config",
"mcp__onv__platform_factory_runs",
"mcp__onv__platform_dex_quote"
],
"deny": [
"mcp__onv__platform_run_backtest",
"mcp__onv__platform_manage_strategy",
"mcp__onv__platform_publish_strategy",
"mcp__onv__platform_subscribe_guide",
"mcp__onv__platform_subscribe_plan",
"mcp__onv__platform_ai_generate",
"mcp__onv__platform_ai_optimize",
"mcp__onv__platform_place_order",
"mcp__onv__platform_cancel_order",
"mcp__onv__platform_close_position",
"mcp__onv__platform_flat_all",
"mcp__onv__platform_set_risk_config",
"mcp__onv__platform_set_breaker",
"mcp__onv__platform_reset_breaker",
"mcp__onv__platform_dex_swap",
"mcp__onv__platform_factory_run"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as onv. Review it before you use it.
Capability tags behind 1 rule
- mcp__onv__platform_publish_strategy outbound
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/codes.onv/onv-mcp/verify?hash=9a5e3fd7549666280cd06e68ddec521ae052c8a81d6269d987c4c4f7a7ff256f" | jq -e '.changed == false'Pinned hash 9a5e3fd75496, from Nov 5, 2026, 00:17 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/codes.onv/onv-mcp/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/codes.onv/onv-mcp)Source: MCP Registry · repository. Synced Nov 5, 2026, 00:17 UTC.