프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Onv MCP

제작자: sftgroup버전 1.0.3i★ –i컴퓨터 또는 클라우드
레지스트리 이름codes.onv/onv-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

量化策略回测、组合配置与多交易所执行(14 家通道)

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 컴퓨터 또는 클라우드
  • 전송 방식: stdio, Streamable HTTP
  • 카테고리: 기타

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

필요한 것

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:

  1. Settings → Connectors 열기
  2. Add custom connector 누르기
  3. 아래 주소를 붙여 넣고 Add 누르기
  4. 로그인하라고 하면 제작자의 서비스에 로그인하기
SettingsConnectors1+ Add2https://…3
https://onv.codes/mcp

또는 내 컴퓨터에서 실행하기

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "onv": {
      "command": "npx",
      "args": [
        "-y",
        "@onvcodes/mcp-server"
      ]
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add --transport http onv https://onv.codes/mcp

또는 내 컴퓨터에서 실행하기

claude mcp add onv -- npx -y @onvcodes/mcp-server

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "onv": {
      "url": "https://onv.codes/mcp"
    }
  }
}

또는 내 컴퓨터에서 실행하기

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "onv": {
      "command": "npx",
      "args": [
        "-y",
        "@onvcodes/mcp-server"
      ]
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "onv": {
      "type": "http",
      "url": "https://onv.codes/mcp"
    }
  }
}

또는 내 컴퓨터에서 실행하기

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "onv": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@onvcodes/mcp-server"
      ]
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:

  1. 웹에서 ChatGPT 열기 → Settings → Connectors (Apps)
  2. Create 또는 Add 누르기(일부 요금제는 먼저 Advanced에서 Developer mode를 켜야 해요)
  3. 아래 주소를 붙여 넣고 이름을 정한 뒤 저장하기
  4. 로그인하라고 하면 제작자의 서비스에 로그인하기
SettingsConnectors1+ Create2https://…3
https://onv.codes/mcp

메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

도구 이름과 설명은 서버가 2026년 11월 6일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.

  • platform_market_quote

    【行情】查询平台行情 K 线。参数 symbol 为交易标的(如 BTCUSDT / ETHUSDT),timeframe 可选 1m/5m/15m/30m/1H/4H/1D,limit 最大 299。返回该标的的 K 线数组。(cost: free)

  • platform_market_overview

    【行情】市场总览:主流币种快照、涨跌幅、成交量等市场状态概览。(cost: free)

  • platform_market_ticker

    【行情】查询标的实时行情 ticker。参数 symbol 为交易标的(如 BTCUSDT,可选,缺省返回全部)。(cost: free)

  • platform_market_factors

    【行情】查询标的的市场因子数据(技术/宏观因子)。参数 symbol 为交易标的。(cost: free)

  • platform_symbol_search

    【行情】搜索平台支持的交易标的(币种/交易对)。参数 query 为关键词如 BTC。(cost: free)

  • platform_quick_analysis

    【行情】对指定标的进行快速 AI 技术分析(拉取行情并生成分析结论)。参数 symbol 为交易标的,如 BTCUSDT。(cost: ≈ 22–28 credits/次(按实际 tokens 结算))

  • platform_list_agents

    【策略】列出平台上已发布的公开 AI 助理(策略),可按能力过滤与分页。参数 capabilities 可选(如 dex/defi)。(cost: free)

  • platform_get_agent

    【策略】获取单个已发布的公开 AI 助理(策略)详情。参数 agentId 为策略 ID。(cost: free)

  • platform_plans

    【账户与额度】查询平台订阅套餐列表(免费/付费 tier 与价格)。无需参数。(cost: free)

  • platform_my_strategies

    【策略】查询我创建的**策略市场/订阅域**策略列表(onv-backend `strategies` 表,按钱包地址归属,邮箱注册账号回退按数字 userId)。⚠️ 不含实盘策略——实盘策略在 `qd_strategies_trading`,请用 REST `GET /api/cex/strategies`(该端点不支持 status 过滤,返回全部状态)。status 可选 draft/published/archived(缺省三者全取)。(cost: free)

  • platform_backtest_result

    【策略】查询回测任务结果。参数 jobId 为 run_backtest 返回的任务 ID。(cost: free)

  • platform_backtest_history

    【策略】查询回测历史(可指定策略 ID 过滤)。参数 strategyId 可选。(cost: free)

  • platform_explain_backtest

    【行情】解释一次回测「为什么亏 / 为什么没成交」。返回结构化卡片(数据区间、样本内外、最大回撤、数据缺失)与逐条原因。参数 runId / jobId / strategyId 至少给一个,三选一即可。(cost: free)

  • platform_subscription_status

    【账户与额度】查询对某 AI 助理的订阅状态。参数 strategyId 或 agentId。(cost: free)

  • platform_subscription_list

    【账户与额度】查询我的订阅列表。无需参数。(cost: free)

  • platform_user_subscription

    【账户与额度】查询我的平台套餐订阅状态(当前套餐/到期时间)。无需参数。(cost: free)

  • platform_user_usage

    【账户与额度】查询我的平台用量汇总(今日 bars / 本月 tokens / 剩余配额)。无需参数。(cost: free)

  • platform_run_backtest

    【策略】提交回测任务(写操作,需用户确认)。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 身份直接执行)

  • platform_manage_strategy

    【策略】管理自己的策略(写操作,需用户确认)。action 为 create / update / delete;update/delete 需要 strategyId;create/update 用 data 传策略数据(data.name 必填,data.strategy_category 为 dex/defi)。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_publish_strategy

    【策略】发布策略(写操作,需用户确认)。name 必填、category 为 dex/defi;code 为策略代码(可选);subscription_price 订阅价格;strategy_id 可指定已有草稿发布。发布为公开上架。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_subscribe_guide

    【账户与额度】订阅引导(写操作,需用户确认):为指定 AI 助理生成订阅引导信息(周期可选 day/week/month/year),确认后返回订阅链接与支付信息,不自动扣费。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_subscribe_plan

    【账户与额度】购买平台套餐(写操作,需用户确认):plan_id 必填(来自 platform_plans),period 可选 day/week/month/year,payment_method 可选 chain/x402。创建支付订单,支付在平台完成。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_ai_generate

    【策略】AI 生成策略代码(写操作,需用户确认):输入自然语言 prompt(可选 context 传入研究流水线结构化学徒上下文),返回策略代码与解释。(cost: ≈ 36–48 credits/次(按实际 tokens 结算))(写操作,外部调用将以 apikey 身份直接执行)

  • platform_ai_optimize

    【策略】AI 多轮优化策略(写操作,需用户确认):输入 prompt 描述策略目标,自动生成→回测→分析→改进(最多 maxRounds 轮,1-5,默认 3)。耗时较长。给了 initialCode 时第 1 轮不生成:直接回测这份既有代码作基线,第 2 轮起在其上改进(A3)。strategyParams 为指标参数覆盖(对齐 /api/cex/indicator/backtest 的 params)。context 为可选结构化学徒上下文(B2-a,失败因子/评审结论/目标指标),独立注入 LLM。每轮回传 rounds[].params(本轮实际

  • platform_account_overview

    【持仓与执行】我的跨所账户总览:各交易所余额、持仓与币种归并(无凭证返回空)。(cost: free)

  • platform_positions

    【持仓与执行】我的全部持仓(跨交易所扁平化,含方向/数量/开仓价/未实现盈亏)。可按交易所或交易对过滤。(cost: free)

  • platform_strategy_positions

    【持仓与执行】查询**实盘策略**的持仓(策略级,按实盘策略 ID)。⚠️ ID 取自 `qd_strategies_trading`(REST `GET /api/cex/strategies`),不是策略市场/订阅域的 `strategies` 表 ID。返回方向/数量/开仓价/未实现盈亏。(cost: free)

  • platform_strategy_trades

    【持仓与执行】查询**实盘策略**的成交记录(策略级,按实盘策略 ID;含平仓原因与模拟盘标记)。ID 取自 `qd_strategies_trading`。(cost: free)

  • platform_strategy_performance

    【持仓与执行】查询**实盘策略**的绩效(策略级,按实盘策略 ID):权益曲线、最新权益、区间收益与点数。ID 取自 `qd_strategies_trading`。(cost: free)

  • platform_close_preview

    【持仓与执行】一键全平预演(dry-run,不会下单):列出将被平仓的合约持仓 / 现货余额目标与合计盈亏。可按凭证或交易对过滤。(cost: free)

  • platform_trade_history

    【持仓与执行】查询我的最近成交记录(默认 50 条,最多 200)。(cost: free)

  • platform_credentials

    【账户与额度】查询我绑定的交易所凭证(脱敏,不含密钥)。返回凭证 ID/交易所/名称,供下单、平仓、查询使用。(cost: free)

  • platform_risk_config

    【账户与额度】查询我的账户级风控面板:配置、熔断状态、聚合风险与策略风险。(cost: free)

  • platform_factory_runs

    【策略】查询我的策略工厂运行记录;传 runId 时返回该次运行详情。(cost: free)

  • platform_dex_quote

    【行情】链上 DEX 报价(只读):chain 如 ETH/BSC/BASE/SOL,fromToken/toToken 为代币地址或符号,amount 为最小单位字符串。(cost: free)

  • platform_place_order

    【持仓与执行】真实下单(写操作,需确认,动用真实资金):credentialId 来自 platform_credentials,amount 为 USDT 名义金额;orderType=market|limit,限价单必填 price。执行前校验账号级「AI 实盘授权」,未开启一律拒绝。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_cancel_order

    【持仓与执行】撤销未成交挂单(写操作,需确认):exchangeOrderId 与 clientOrderId 二选一。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_close_position

    【持仓与执行】平仓(写操作,需确认):按 credentialId + symbol 平掉持仓;closeScope=full 全平,传 size 时部分平。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_flat_all

    【持仓与执行】一键全平(写操作,需确认):默认 dryRun=true 只预演;确认执行须显式 dryRun=false。可按凭证/交易对/市场类型限定,marketType=spot 时清现货余额。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_set_risk_config

    【账户与额度】更新账户级风控配置(写操作,需确认):config 为要修改的字段对象(如日亏损上限、单笔上限)。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_set_breaker

    【账户与额度】更新账户熔断配置(写操作,需确认):enabled 开关,可设日亏损上限、连续失败次数、gas 尖峰上限。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_reset_breaker

    【账户与额度】人工解除熔断(写操作,需确认):须提供 recoveryCode;解除后策略恢复实盘执行。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_dex_swap

    【持仓与执行】链上 DEX 兑换(写操作,需确认,动用真实资金):钱包地址自动取本人智能账户,不接受任意地址;大额授权需 approvalToken(由平台签发)。(cost: free)(写操作,外部调用将以 apikey 身份直接执行)

  • platform_factory_run

    【策略】发起策略工厂运行(写操作,需确认):sourceType=llm(描述生成)/search(条件扫描)/optimize(优化现有策略,需 strategyId)。同一用户同时只允许一个运行。(cost: base 5 + 10/1k bars(>10000 部分 5/1k) + 1/1k tokens credits)(写操作,外部调用将以 apikey 身份直接执行)

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 도메인 onv.codes 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • ✓ 통과

    엔드포인트 응답

    779ms 만에 응답(HTTP 200)

  • – 해당 없음

    OAuth로 로그인

    로그인 필요 없음

  • ✓ 통과

    도구 설명에 숨겨진 지시 없음

    도구 설명 44개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 32476개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 32476개 중 95%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 32476개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Onv MCP, 안전한가요?

해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.3)은 그저께 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, zanadir

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

제작자: formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

내 컴퓨터에서 실행★ 440MIT14개월 전 업데이트
설치

Remote Desktop Commander

제작자: desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

클라우드에서 실행★ 211어제 업데이트
설치

zanadir

제작자: MustacheCase

Find what a repository's CI is missing, and which security checks cannot fail the build.

내 컴퓨터에서 실행오늘 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

@onvcodes/mcp-server

ONV 平台的 MCP (Model Context Protocol) Server。 把平台的行情数据、公开 Agent/策略、回测、订阅、AI 生成等能力暴露为 MCP 工具, 供 Claude Desktop / Cursor / Cline 等 AI Agent 调用。

架构:平台工具薄代理

MCP Server 不本地硬编码工具(避免与平台双套定义漂移),采用运行时动态发现:

MCP Client (Claude / Cursor …)

│ Streamable HTTP(远程,推荐)/ SSE(兼容)/ stdio(本地) ▼ mcp-server(本包) │ ① 启动/会话时 GET {baseUrl}/api/mcp/platform/tools → 发现工具清单(JSON Schema) │ ② 客户端调用工具 POST {baseUrl}/api/mcp/platform/{tool} body { args } │ 凭证按会话透传:Authorization: Bearer > X-Api-Key > 匿名(仅公开工具) ▼ onv-backend(平台 /api/mcp/platform/*,3 通道鉴权:X-Api-Key / ?at= / Bearer JWT)

  • 工具清单与执行端点由 onv-backend 统一承载(backend/routes/platform-mcp.ts), 本服务只是把平台工具翻译成 MCP 协议(zod schema 注册 + 调用转发)。
  • 平台不可达 / 未配置 API Key / 工具端点 404 时,注册一个只读 __platform_health 兜底工具报告状态(tools/list 不为空,便于排查),正常时注册全部平台工具。

平台工具(当前 41 个)

tools/list 返回 41 个平台工具,按权限分层,并按 4 组展示(market / strategy / portfolio / account):

分层数量说明
L0 公开读(无需身份)10market_* · symbol_search · quick_analysis · list_agents · get_agent · plans · wallet_balance
L1 用户读(需 API Key / 登录绑定用户)15my_strategies · backtest_* · subscription_* · user_* · account_overview · positions · trade_history · credentials · risk_config · factory_runs · dex_quote
L2 写操作(需授权 scope)16run_backtest · manage_strategy · publish_strategy · subscribe_* · ai_generate · ai_optimize · place_order · cancel_order · close_position · flat_all · set_risk_config · set_breaker · reset_breaker · dex_swap · factory_run · close_preview

每个工具都带 MCP annotations:title(中文短名)、readOnlyHint(读为 true)、

destructiveHint(写为 true)——满足 Claude Connectors 目录的硬性要求。

展示元数据集中在 backend/services/platform-tools/tool-meta.ts。

工具定义会随平台演进自动更新:改动只发生在 backend 的

PLATFORM_TOOL_DEFS,MCP Server 无需发版。

后端通过 ENABLE_PLATFORM_TOOLS=true 开启工具端点(生产已开启)。

快速接入(生产,推荐 Streamable HTTP)

生产 MCP Server 已随 onv.codes 统一栈部署(容器 onv-mcp,nginx /mcp 与 /mcp/ 反代):

  • Streamable HTTP 端点(推荐):https://onv.codes/mcp
  • SSE 端点(兼容):https://onv.codes/mcp/sse
  • 鉴权(按会话透传):
  • Authorization: Bearer (OAuth / 平台 JWT)
  • 或 X-Api-Key: ah_… / ahk_…(平台 / Agent Key)
  • 均未提供时按匿名处理,只能使用公开工具(行情 / 公开 Agent / 套餐等); HTTP 入口不接受服务端 env Key 兜底,避免匿名调用方继承真实账户身份
Claude Desktop

Claude Desktop → Settings → Developer → Edit Config → claude_desktop_config.json:

{

"mcpServers": { "onv": { "type": "http", "url": "https://onv.codes/mcp", "headers": { "X-Api-Key": "ah_你的平台APIKey" } } } }

保存后重启 Claude Desktop,对话中即可使用 platform_market_quote、platform_list_agents、 platform_run_backtest、platform_ai_generate 等工具。

Cursor

Cursor → Settings → MCP → Add new MCP server:

  • Type:HTTP(远程,推荐)
  • Name:onv
  • URL:https://onv.codes/mcp
  • Headers:X-Api-Key: ah_你的平台APIKey

旧版 Cursor 若不支持 HTTP 类型,可退回 SSE:https://onv.codes/mcp/sse。

其他 MCP 客户端

支持「Streamable HTTP + 自定义 header」的客户端填 https://onv.codes/mcp 与 X-Api-Key; 仅支持 SSE 的客户端填 https://onv.codes/mcp/sse。两者共用同一套工具与鉴权。

本地开发

依赖:Node ≥ 18。

cd mcp-server

npm install npm run build # tsup 打包 ESM + CJS + dts 到 dist/ npm test # vitest(工具 schema / 注册测试)

启动:

# stdio 模式(默认,供 Claude Desktop / Cursor 本地拉起)

ONV_API_KEY=ah_xxx node dist/server.js

HTTP 模式(本地 :3002,同时提供 /mcp 与 /sse)

ONV_API_KEY=ah_xxx node dist/server.js --http

=> HTTP server listening on http://localhost:3002 (mcp + sse)

环境变量
变量必填默认值说明
ONV_API_KEY--服务端兜底 Key(ah_ / ahk_ 前缀)。客户端自带凭证时优先用客户端的;均缺省时仅公开工具可用
ONV_BASE_URL-https://onv.codes平台 API 根地址(内网联调可指 http://localhost:3100)
PORT-3002HTTP 模式监听端口
MCP_MESSAGE_PATH-/messageSSE 握手事件里的消息投递路径;经 nginx 反代时配置(生产为 /mcp/message)
Claude Desktop / Cursor 本地 stdio 配置
{

"mcpServers": { "onv": { "command": "node", "args": ["/absolute/path/to/onv/mcp-server/dist/server.js"], "env": { "ONV_API_KEY": "ah_你的平台APIKey", "ONV_BASE_URL": "https://onv.codes" } } } }

API Key 与权限

Key前缀用途写权限
平台 API Keyah_外部应用 / MCP 调用,绑定用户 + permissionspermissions 含工具 scope(如 backtest:run / agents:write)或 admin 才能直执写工具
Agent API Keyahk_Agent 身份直调scopes 含 write / admin 才能直执写工具
  • 读类(L0)无需鉴权即可调用(返回公开数据)。
  • 用户读(L1)与写(L2)工具要求 X-Api-Key 能解析到有效用户(无效/吊销返回 401)。
  • 写工具(L2)在 key 有对应 scope 时直接执行并落审计;无 scope 返回 403。
  • 对话场景(?at= HMAC token)写操作只落 pending,由前端操作卡确认后执行。

生产部署(onv.codes 统一栈)

  • compose 服务:apps/onv-core/deploy/docker-compose.onv.yml 的 mcp(:3002, build context apps/onv,dockerfile mcp-server/Dockerfile)。
  • nginx:location = /mcp / location /mcp/ 反代到 mcp:3002(Streamable HTTP 关 buffering + 3600s 读超时); location /api/mcp/ 反代到 onv-backend:3100(工具发现/调用端点)。
  • 凭据:按会话透传,不配置服务端 Key(MCP_API_KEY 已从 compose 移除)。 MCP_BASE_URL 默认 https://onv.codes。
  • 后端开关:ENABLE_PLATFORM_TOOLS=true(platform-tools.ts 灰度门,生产已置 true)。
多会话说明

MCP SDK 的 Server 实例同一时刻只能 connect 一个 transport(否则抛 Already connected)。 本服务为每个会话(Streamable HTTP session / SSE transport)创建独立 McpServer 实例 (每次会重新发现工具清单),多客户端并发/重连不会互相影响;凭证也随会话隔离。

故障排查

现象原因与处理
tools/list 只有 __platform_health工具发现失败。检查 ONV_BASE_URL 可达性、backend ENABLE_PLATFORM_TOOLS=true、nginx /api/mcp/ 反代
调用返回 invalid or revoked api key客户端下发的 X-Api-Key / Bearer 无效/已吊销(须 ah_/ahk_ 前缀);匿名调用用户级工具即为此提示
调用返回 404 unknown platform tool工具清单与端点版本不同步(发现后平台已改名),更新 mcp-server 镜像重连
POST /message 502多为 SSE 会话未建立/已断开时投递(sessionId 过期),客户端应重连重新握手

License

Apache-2.0

PopNx에게 묻기