连接你的 Agent(Harness)
重要声明:策引是个人开发的投资策略分析工具和教育平台,通过模拟组合展示交易规则、仓位变化与历史表现。平台不提供投资建议,所有策略分析仅供研究参考。真实账户中的决策与风险由用户自行判断和承担。
前提
- 有效的 MyInvestPilot 会员资格(LIFETIME 或有效期内的 REGULAR)。
- 在 策引 /lab 登录并点击 Connect My Agent,创建临时会话。
- 复制只显示一次的临时令牌,配置到下面的客户端。令牌不要写进配置文件字面量,也不要放进 URL。
推荐:Pi + DeepSeek V4 Flash
如果你还没有固定使用的 Harness,推荐从 Pi + DeepSeek V4 Flash 开始:
- Pi 开源、轻量,安装和配置简单;
- DeepSeek V4 Flash 成本很低,适合频繁策略实验;
- 无需额外订阅 coding plan,按 API 使用量付费;
- Pi 原生支持 DeepSeek,可按任务复杂度切换 V4 Flash / V4 Pro;
- 该组合已经通过 MyInvestPilot Agent Lab 的真实端到端验证。
V4 Flash:输入 1 元 / 输出 2 元 / 缓存命中输入 0.02 元,每百万 token。
Pi + DeepSeek V4 Flash
-> pi-mcp-adapter
-> MyInvestPilot MCP(四个工具)
-> Fetch prompt.md
-> 开始研究
1. 安装 Pi
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
2. 配置 DeepSeek API key(推荐用 /login)
pi
-> /login
-> DeepSeek
-> 粘贴 API key(Pi 以 0600 权限保存)
-> /model
-> deepseek-v4-flash(默认 deepseek-v4-pro,可按需切换)
Pi 已内置 DeepSeek provider,不需要手写 models.json。
3. 安装 pi-mcp-adapter
pi install npm:pi-mcp-adapter
Pi core 不内置 MCP。本指南使用第三方 pi-mcp-adapter(当前验证版本 2.21.0);安装第三方包前请自行确认其来源。
4. 配置 MyInvestPilot MCP(user-global,一次配置到处可用)
创建 ~/.config/mcp/mcp.json:
{
"mcpServers": {
"myinvestpilot": {
"url": "https://api.myinvestpilot.com/mcp",
"protocolVersion": "auto",
"headers": {
"Authorization": "Bearer ${MYINVESTPILOT_LAB_TOKEN}"
}
}
}
}
export MYINVESTPILOT_LAB_TOKEN="<你的临时令牌>"
pi-mcp-adapter 支持 headers 的 ${VAR} 插值;protocolVersion: "auto" 正是它针对 Cloudflare Workers createMcpHandler 这类无状态服务器推荐的设置。令牌以环境变量引用形式传递,配置文件里不出现明文。
想让 MyInvestPilot 只在某个研究目录可用时,也可以把同样的配置放进该目录的 .mcp.json(project-local)。
5. 创建会话并开始
pi
# 在 Pi 里:
# /mcp tools -> 应能发现 myinvestpilot 的四个工具
# 然后让 Pi 读取:
# Fetch https://www.myinvestpilot.com/docs/agent-lab/prompt.md
# and follow the instructions before using MyInvestPilot Agent Lab.
# 接着直接说:
# Research a simple long-term trend strategy for QQQ from 2015.
连接是 lazy 的:第一次真实工具调用才建立连接。所以确认配置后,直接让 Pi 调用一次 resolve_symbols(例如"Use MyInvestPilot Agent Lab to resolve QQQ")看到真实返回,才是完整的连接验证。
其它已支持 Harness
以下客户端同样支持;如果你已经在使用它们,直接跳到对应小节。
端点与认证
MCP 端点:https://api.myinvestpilot.com/mcp
认证方式:Authorization: Bearer <临时令牌>
令牌通过客户端的 secret / header / 环境变量机制传递,绝不放进 URL 查询参数。下面统一使用环境变量名:
MYINVESTPILOT_LAB_TOKEN
Codex 的 env_http_headers 直接把环境变量值当作 Header 值:环境变量里要含 Bearer 前缀。
Claude Code / OpenCode 在配置模板里拼 Bearer :环境变量里不要再含 Bearer 。
两种写法都对,混用会产生 Authorization: Bearer Bearer <token>。
Codex(OpenAI)
配置位置:~/.codex/config.toml(追加)
export MYINVESTPILOT_LAB_TOKEN="Bearer <你的临时令牌>"
[mcp_servers.myinvestpilot]
url = "https://api.myinvestpilot.com/mcp"
# env_http_headers 在每个请求上发送 Authorization(比 bearer_token_env_var 更稳)
env_http_headers = { "Authorization" = "MYINVESTPILOT_LAB_TOKEN" }
验证:codex mcp list 应能看到 myinvestpilot。令牌不要写进 config.toml 字面量。
Claude Code
推荐方式:项目级 .mcp.json + 环境变量引用(Claude Code 官方确认 .mcp.json 的 headers 支持 ${VAR} 展开,令牌不会以明文持久化)。把 myinvestpilot 加到你的研究项目根目录的 .mcp.json:
export MYINVESTPILOT_LAB_TOKEN="<你的临时令牌>"
{
"mcpServers": {
"myinvestpilot": {
"type": "http",
"url": "https://api.myinvestpilot.com/mcp",
"headers": {
"Authorization": "Bearer ${MYINVESTPILOT_LAB_TOKEN}"
}
}
}
}
claude mcp add --scope user --header "Authorization: Bearer ..." 会把展开后的令牌明文持久化到 ~/.claude.json(实测确认);user scope 配置里的 ${VAR} 展开在部分 Claude Code 版本不可靠。项目级 .mcp.json 的 ${VAR} 展开是官方确认支持的,且不落盘明文。
备选:user-scope CLI(希望所有项目都可用;注意令牌会明文存进 ~/.claude.json,临时会话场景可接受,但 shell history 会记录令牌):
export MYINVESTPILOT_LAB_TOKEN="<你的临时令牌>"
claude mcp add --transport http --scope user myinvestpilot \
https://api.myinvestpilot.com/mcp \
--header "Authorization: Bearer ${MYINVESTPILOT_LAB_TOKEN}"
验证:claude mcp list(myinvestpilot 显示 connected)、claude mcp get myinvestpilot;重启会话后生效。
OpenCode
配置位置:~/.config/opencode/opencode.json 的 "mcp" 段
export MYINVESTPILOT_LAB_TOKEN="<你的临时令牌>"
{
"mcp": {
"myinvestpilot": {
"type": "remote",
"url": "https://api.myinvestpilot.com/mcp",
"enabled": true,
"oauth": false,
"headers": {
"Authorization": "Bearer {env:MYINVESTPILOT_LAB_TOKEN}",
"Accept": "application/json, text/event-stream"
}
}
}
}
OpenCode 的远程 Streamable HTTP 需要 Accept 头;使用自带 header 认证时用 "oauth": false 关闭自动 OAuth discovery。验证:opencode mcp list。
通用 Streamable HTTP MCP 客户端
任何支持 Streamable HTTP 的 MCP 客户端都可以接。先用 curl 验证端点与四个工具:
export MYINVESTPILOT_LAB_TOKEN="Bearer <你的临时令牌>"
curl -X POST "https://api.myinvestpilot.com/mcp" \
-H "Authorization: $MYINVESTPILOT_LAB_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1,"params":{}}'
返回的工具列表应恰好是:
resolve_symbols
validate_strategy_config
create_lab_run
get_lab_run
Streamable HTTP(无状态):每个 JSON-RPC 请求独立 POST,没有 Mcp-Session-Id。令牌放 Authorization 头。
验证连接
tools/list恰好返回四个工具;- 调用
resolve_symbols(例如{"symbols": ["QQQ"], "market": "US", "currency": "USD"})返回规范符号; - 确认没有组合创建/修改工具。
断开 / 移除配置
- Codex:删除
~/.codex/config.toml中[mcp_servers.myinvestpilot]段。 - Claude Code:
claude mcp remove myinvestpilot --scope user(user scope);项目级则删除项目根.mcp.json中myinvestpilot条目。 - OpenCode:删除
opencode.json中"mcp"下的myinvestpilot条目。
撤销会话 / 处理泄漏
- 在 策引 /lab 点 撤销会话,旧令牌立即失效;再连接时创建新会话。
- 令牌泄漏(贴到公开场合、提交进仓库)时:立即在 Web 撤销并重新创建,再更新客户端配置。
- 会话过期后只需重新创建会话并更新客户端里的令牌,配置本身不用改。
- 页面刷新后明文令牌无法再次查看;如果还没配置到客户端,撤销并重新创建即可。
给 Agent 的引导
连接完成后,告诉你的 Harness:
Fetch https://www.myinvestpilot.com/docs/agent-lab/prompt.md
and follow the instructions before using MyInvestPilot Agent Lab.
然后可以直接让它试:
Research a simple long-term trend strategy for QQQ from 2015.
完整流程见策略研究指南。
重要提醒:本文内容仅供研究参考,不构成投资建议。实验结果是历史模拟行为,不代表未来表现;请结合你的资金安排、已有持仓与可承受回撤,自行判断真实账户中的操作与风险。