PowerQuant RAG 配置教程:四种方式,五分钟接入

✍️ 听雨量化 ·

PowerQuant RAG 配置教程:四种方式,五分钟接入

上一篇文章《PowerQuant RAG 上线:让你借助 AI 五分钟成为量化代码专家》讲了 RAG 能帮你做什么。文末我说「下一篇写怎么装怎么接」——今天就是那篇。照着做,五分钟跑通。


太长不看版:直接把这个文章复制给AI就行

如果你没看过上一篇,这里一句话补课:PowerQuant RAG 是一个把 11 个主流量化平台官方文档向量化索引的 MCP 服务,AI 调用后能精准回答函数语法、参数说明、跨平台迁移等问题。

11 个平台分别是:股票侧的 PTrade、聚宽、米筐、通达信;期货侧的 TBQuant、天勤 TqSdk、金字塔、无限易 PythonGo、易盛 Esunny;加上 TradingView Pine 和文华财经麦语言。共 12 个分类、6350+ 文档块。

上一篇发出后,最多人问的不是「RAG 能做什么」,而是——

「到底怎么装?」

有人说装了 Claude Code 但不知道在哪改配置,有人说 Cursor 里 MCP 那栏找不到入口,还有人压根不用 IDE,问能不能 Python 直接调。

这些都不是复杂问题,但每一个都能把人挡在门外一下午。我代写量化策略这两年,见过太多客户因为「配不通」而放弃一个好工具——不是工具不行,是文档没说清。

所以这篇把四种接入方式全写清楚:Claude Code、Cursor、Python、curl。前两个是 IDE 用户的主路径,后两个是不用 IDE 时的备选。任选其一,都能跑通。每种方式都配上完整的配置代码和踩坑提示——照着复制粘贴就行。

服务地址先记住:http://pq-rag.powerquant.top/mcp。所有方式都是对这一个地址说话。

服务当前免费开放,无需注册、拿来就用:限流 60 请求/分钟、20000 请求/天、并发 8(按客户端 IP 计算)。个人研究和策略开发完全够用,我自己的重度使用也没踩过限流线。

配置是最后一道坎:四种方式,五分钟接入


第一步:Claude Code 配置

Claude Code 配置四步流程

Claude Code 是 Anthropic 官方的 AI 编程助手,跟 VSCode 无缝集成。如果你上一篇已经装好了,这里只需要改一个配置文件。

找到配置文件:

  • Windows:C:\Users\你的用户名\.claude.json
  • macOS / Linux:~/.claude.json

用任何文本编辑器打开。如果文件里已经有 mcpServers 字段,在它下面加一项;如果没有,整个粘贴进去:

{
  "mcpServers": {
    "powerquant-rag": {
      "type": "http",
      "url": "http://pq-rag.powerquant.top/mcp"
    }
  }
}

两个细节容易踩坑:

  1. 如果 mcpServers 里已经有别的服务(比如你装了别的 MCP 工具),在最后一个服务后面加逗号,再粘 powerquant-rag 这段。JSON 不允许最后一个键后面有逗号,搞错了整个文件都解析不了。
  2. 保存后必须重启 Claude Code。不重启的话,新配置不会生效。

重启完,在 Claude Code 里随便发一句:

帮我调用 list_categories 工具

如果返回 12 个分类(函数参考、指标公式、语法说明、策略示例、Python 接口等),说明配置成功。

如果报错怎么办:

  • 「Tool not found」:检查 JSON 格式有没有错(逗号、引号、缩进)。把整个 mcpServers 段贴到 JSON 校验网站跑一遍最快。
  • 「Connection refused」:网络不通,先 curl http://pq-rag.powerquant.top/mcp 看能不能通。

第二步:Cursor 配置

Cursor 用户不用改配置文件,图形界面操作就行。

操作路径:

  1. 打开 Cursor → Settings(设置)
  2. 左侧找到 MCP 标签
  3. 点 Add new MCP Server
  4. 填写:
    • Type:http
    • URL:http://pq-rag.powerquant.top/mcp

保存后重启 Cursor。Cursor 对 MCP 配置变更是热加载的,但偶尔需要重启才能识别新服务。重启后,在对话框里让 AI 调用 list_platforms,应返回 11 个平台。

Cursor 跟 Claude Code 的区别在于:Cursor 的 AI 是 Cursor 自己的模型(或你接入的模型),而 Claude Code 背后是 Claude。两者都能调用 PowerQuant RAG,选你顺手的那个就行。


第三步:Python 直接调用

MCP 两步握手流程

不用 IDE、想脚本化、想批量调用——Python 直接打 HTTP 最自由。

PowerQuant RAG 基于 MCP streamable-http 协议(HTTP + SSE),所以不是简单的「发一个 POST 拿结果」,而是两步走:先初始化握手拿 session id,后续请求都带这个 id。

import requests

URL = "http://pq-rag.powerquant.top/mcp"
HEADERS = {
    "Content-Type": "application/json",
    "Accept": "application/json, text/event-stream",
}

# 第一步:初始化握手,拿 session id
init = requests.post(URL, headers=HEADERS, json={
    "jsonrpc": "2.0", "id": 1, "method": "initialize",
    "params": {
        "protocolVersion": "2025-06-18",
        "capabilities": {},
        "clientInfo": {"name": "pq-client", "version": "1.0"}
    }
})
session_id = init.headers["mcp-session-id"]
HEADERS["mcp-session-id"] = session_id

# 第二步:调用工具
result = requests.post(URL, headers=HEADERS, json={
    "jsonrpc": "2.0", "id": 2, "method": "tools/call",
    "params": {
        "name": "search",
        "arguments": {"query": "MACD 金叉", "limit": 5}
    }
})
print(result.text)

几个关键点:

  1. Accept 头必须包含 text/event-stream——MCP streamable-http 协议要求,少了会报错。
  2. session id 从响应头取,不是响应体。init.headers["mcp-session-id"] 这一行别漏。
  3. session id 要带回后续请求——HEADERS["mcp-session-id"] = session_id 这一行也别漏。
  4. id 字段是请求序号,每次请求递增就行,用于匹配响应。
  5. protocolVersion 当前是 2025-06-18——MCP 协议还在演进,如果将来报版本错误,去 MCP 官方仓库查最新版本号。

跑通后,result.text 里会返回 5 条文档块,每条带 score(相似度)、platform、category、source_path、content 五个字段。score 越高越相关,0.7 以上基本就是你要的东西。

Python 调用的适用场景:

  • 不用 IDE、纯脚本化跑策略回测的用户
  • 想把 RAG 集成到自己工作流里(比如先搜文档、再生成代码、再回测)
  • 批量调用——比如遍历 11 个平台的所有函数做对比表
  • 想绕开 IDE 的 AI 模型,直接用 RAG 检索结果配合自己的模型

Python 直调的代价是没有 IDE 的上下文管理——每次调用都要自己维护 session id、自己解析响应。但对工程师来说这反而是优势,可控性更高。


第四步:curl 验证流程

curl 适合两个场景:一是服务出问题时快速验证是不是网络的事;二是非 Python 环境下做一次最小验证。

# 1. 初始化握手,拿 session id
curl -X POST http://pq-rag.powerquant.top/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",
       "params":{"protocolVersion":"2025-06-18","capabilities":{},
                 "clientInfo":{"name":"test","version":"1.0"}}}'

响应头里会有一行:mcp-session-id: <SESSION_ID>。把这串字符复制下来。

# 2. 后续请求带上 session id
curl -X POST http://pq-rag.powerquant.top/mcp \
  -H "Content-Type: application/json" \
  -H "mcp-session-id: <SESSION_ID>" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

tools/list 会返回 5 个工具的完整定义。如果这一步成功,说明网络通畅、协议正确——后面任何调用问题都是参数层面的事,不是接入层面的事。

curl 调试有一个坑:Windows CMD 里的 JSON 引号需要转义,建议用 Git Bash 或 WSL 跑。PowerShell 也可以,但 JSON 字符串里的双引号要写成 \"。


5 个 MCP 工具速查

5 个 MCP 工具速查卡片

配置完之后,AI 能调用的工具有 5 个。日常用得最多的是前两个。

工具作用关键参数
search语义搜索知识库,返回相关文档块query(必填)、platform、category、limit
list_categories列出所有分类及文档数无参数
list_platforms列出所有平台及文档数无参数
resolve_entity把交易概念解析为平台函数名query、platform
list_entities列出跨平台实体映射category

search 是核心。它的 platform 参数很关键——不指定时全平台搜索,指定时只搜该平台。比如「MACD 金叉」不指定 platform 会返回通达信、无限易、TBQuant 等多个平台的实现;指定 platform=通达信 则只返回通达信的函数和示例。

resolve_entity 是高阶工具:你给一个概念(比如「金叉」),它返回这个概念在各平台对应的函数名。做跨平台迁移时很有用。


验证与第一次提问

验证三连:12 分类 → 11 平台 → score ≥ 0.7

配置完,按这三步验证一次:

1. 让 AI 调用 list_categories

应返回 12 个分类:函数参考、指标公式、语法说明、策略示例、Python 接口、麦语言、Pine Script 等。

2. 让 AI 调用 list_platforms

应返回 11 个平台,每个平台带文档块数。PTrade、聚宽、米筐、通达信、TBQuant、天勤、金字塔、无限易、易盛、TradingView、文华财经。

3. 让 AI 调用 search,查一个具体概念

帮我查一下 MACD 金叉在通达信里怎么写

应返回 2-3 条文档块,score 在 0.7 以上,内容包含 CROSS 函数的用法和示例代码。

三步都通过,说明 RAG 已经完全接入。接下来就是实战。

第一次实战提问示例:

  • 「TBQuant 的 Buy 函数怎么用?」
  • 「把这段文华财经麦语言翻译成 TradingView Pine Script」
  • 「天勤 TqSdk 怎么订阅行情?」
  • 「通达信里 MACD 金叉公式怎么写?」

每个问题 AI 都会先调 RAG 检索,再基于检索结果回答——不是凭空捏造。


常见问题

Q:连接超时

先 curl http://pq-rag.powerquant.top/mcp 看能不能通。不通就是网络或防火墙问题——部分公司网络会拦非常规端口或非 HTTPS 请求。当前服务是 HTTP(不是 HTTPS),如果你在公司网络里,试一下手机热点。

Q:调用频率超限

报 429 就是限流了。每分钟 60 次、并发 8 个——正常使用基本不会触。如果真触了,等一分钟自动恢复。

Q:中文搜索还是英文搜索?

11 个平台官方文档大多中文,TradingView Pine 保留英文。RAG 支持中英文混合查询——你问「MACD 金叉」或「MACD crossover」都能命中。但跨语言检索时,指定 platform 能显著提升精度。

Q:查询内容会被保存吗?

不会。查询日志只用于排查错误和限流统计,不保存查询内容到数据库,也不用于训练。

Q:能不能本地部署?

暂不支持。RAG 依赖 LanceDB 向量库 + 嵌入 API,本地部署需要自备 SiliconFlow / OpenAI key。后续会开源核心代码。

Q:知识库多久更新一次?

目前手动更新——每次有重大平台文档变更会重新向量化入库。计划后续开放「平台文档更新订阅」,让用户能收到更新通知。如果你发现某个平台的某个函数 RAG 没覆盖到,公众号后台告诉我,下一版本会补上。


写在最后

配置这一步,是 PowerQuant RAG 使用的「最后一道坎」。

坎之前,RAG 是别人嘴里的概念;坎之后,RAG 是你 AI 工具链里随时可调的一个工具。上一篇讲的四个场景——从零写策略、跨平台迁移、策略优化、找 bug——配置完都能直接跑。

四种接入方式任选其一:Claude Code 改 JSON、Cursor 图形界面、Python 直接调 HTTP、curl 验证调试。选你顺手的。

如果你配置过程中卡在哪一步,把报错截图发到「听雨量化」公众号后台,我看到就回。

下一篇会写什么——取决于你们留言。你想看 RAG 的进阶用法(比如跨平台策略迁移的完整工作流),还是想看具体平台(PTrade、TBQuant、TradingView)的深度接入案例?

👉 留言告诉我:你最想用 RAG 解决哪个具体问题?