关于 Canli Research
Canli Research 是供 AI 助手查询 Canli Capital 公开研究记录的只读 MCP 服务,涵盖论文、试验计数、模拟交易记录及防篡改链头,并在结果旁说明限制。
主要功能
- 01搜索论文并列出主题
- 02读取论文全文或指定章节
- 03查看已尝试、淘汰和存续的假设
- 04检查模拟交易记录及各组合
- 05查看防篡改链头
- 06读取架构、示例和限制说明
适用场景
- 01确认某个量化想法是否已测试
- 02查阅特定主题的研究
- 03审查模拟交易记录及其限制
- 04验证公开记录的链
MCP 相关
向 MCP 客户端提供六个只读工具、三个提示词,以及架构、示例和限制资源。可作为子进程运行,也可连接托管 HTTP 端点。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://canlicapital.com/mcp/researchclaude mcp add --transport http arhancanli-canli-research https://canlicapital.com/mcp/research{"mcpServers":{"arhancanli-canli-research":{"type":"http","url":"https://canlicapital.com/mcp/research"}}}在 Cursor 中打开{"servers":{"arhancanli-canli-research":{"type":"http","url":"https://canlicapital.com/mcp/research"}}}在 VS Code 中打开{"mcpServers":{"arhancanli-canli-research":{"type":"http","url":"https://canlicapital.com/mcp/research"}}}{"mcpServers":{"arhancanli-canli-research":{"serverUrl":"https://canlicapital.com/mcp/research"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
6| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 最多返回的论文数;默认为 10。 |
| query | string | 是 | 要在论文标题和摘要中查找的词语,例如“momentum”或“insider”。 |
详细介绍
canli-research-mcp
面向 Canli Capital 开放研究记录的 MCP(模型上下文协议)服务。它为 AI 助手提供六种只读工具,用于读取 canlicapital.com 发布的内容:所有研究论文和淘汰的候选方案、研究主题、相对于声明预算已测试的假设数量、实时模拟交易记录及其子策略,以及用于证明已发布记录未被篡改的链头。
每条结果都会注明其来源声明的限制,并附带两项自身限制:这些都是研究文档,各自有其主张边界;此处所有内容都是模拟执行,不代表有资金支持的业绩,也不构成投资建议。
工具
| 工具 | 读取内容 | 返回内容 |
|---|---|---|
search_research | /research-index.json | 标题和摘要中包含匹配词语的论文,以列和行的形式呈现 |
list_topics | /research-index.json | 每个主题、收录的论文数量及主题涵盖的内容 |
get_paper | /research/{slug}.md | 论文正文和标题;section 返回其中一部分,max_chars 限制长度 |
trial_ledger | /api/v1/trials/summary.json | 相对于预算已测试、已淘汰和存续的假设 |
live_record | /api/v1/record.json、/api/v1/sleeves.json | 实时模拟交易记录及每个子策略的模拟权益 |
chain_head | /api/v1/chain/head.json | 防篡改链的链头,以及验证位置 |
提示词和资源
| 提示词 | 内容 |
|---|---|
preflight_idea | 这个量化创意是否已在这里测试过、结果如何,以及相关文献怎么说? |
audit_canli_record | 相对于预算已测试的假设、附有限制说明的实时模拟交易记录,以及如何验证链 |
literature_review | 某个主题下的所有论文及其摘要和链接 |
| 资源 | 内容 |
|---|---|
canli://schemas/{tool} | 工具准确的输入和输出 JSON Schema 及说明 |
canli://examples/{language}/{tool} | 使用 python、javascript 或 curl 调用托管端点的可运行示例 |
canli://limits | 每条结果都无法证明的内容 |
安装
claude mcp add canli-research -- npx -y canli-research-mcp
托管版,无需安装(适用于 claude.ai connectors、ChatGPT、Cursor,或任何支持 URL 的客户端):
claude mcp add --transport http canli-research https://canlicapital.com/mcp/research
任何可启动进程的 MCP 客户端都可以用同样的方式运行:npx -y canli-research-mcp。
成本和速度
该服务仅读取 canlicapital.com CDN 提供的静态文件,并在会话期间将每个文件缓存到内存中(十分钟),不执行任何计算,因此重复提问不会产生请求。模型每轮都会重新读取的工具列表很短,且每次启动时都相同,因此模型提供商可以将其放入提示词缓存;一项测试会确保其长度低于 2,500 个字符,且字节内容稳定不变。
配置
| 变量 | 默认值 | 含义 |
|---|---|---|
CANLI_API_BASE | https://canlicapital.com | 读取记录的位置。 |
隐私
该服务只会对公开文件发送 GET 请求,不需要密钥、Cookie,也不会查询你的任何信息;它不会向磁盘写入任何内容。
相关项目
- canli-validation-mcp:验证回测(膨胀夏普比率、过拟合、业绩记录、回测时长、折减夏普比率),并提供签名回执。
- 源码:arhancanli/canlicapital。
未发布:有界响应与缓存准入
仓库实现对每个静态文件最多接受 4 MiB 的响应正文数据,并在解码前计数。它读取原生响应流,而不是先将无界响应全部载入内存。若可用的 Content-Length 声明值超过上限,则在读取前拒绝;长度缺失或存在误导时,仍需实际统计字节数。HTTP 错误会在读取正文前拒绝。有效 UTF-8(包括跨数据块拆分的码点)会保留已发布文本;无效或截断的 UTF-8 会被拒绝,而非静默替换。
现有的 15 秒请求信号同时覆盖获取响应和读取正文。遇到已知失败时,会尝试取消读取器并释放一次;迟到的获取响应会被丢弃,不会读取。取消 Promise 会被观察,但不会延长请求时限。传输层可能已经分配了超出上限的数据块,而 JavaScript 无法抢占被阻塞的事件循环或同步传输代码。这是对已接受正文数据量的限制和协作式请求时限,并非对进程总内存的保证,也不是托管环境延迟的测量结果。
只有完整、已解码的成功响应才会进入十分钟会话缓存。JSON 会在准入前解析;HTTP 错误、超限、中止、无效 UTF-8 和格式错误的 JSON 都不会成为缓存条目。并发失败响应无法驱逐更新的有效结果。缓存年龄必须为有限的非负值,且严格小于十分钟,因此时钟回拨和过期都需要重新请求。此变更未增加重试、工具、配置选项或依赖项。
此变更尚未发布。原生 Response/ReadableStream 测试夹具通过注入响应来测试这些边界;其执行情况和发布状态记录在仓库证据中。
响应大小限制变更新增了32 个原生流测试用例,均在现有远程 MCP 作业中通过(研究测试共 47 项);两位独立审核者分别完成了初始源代码审核和保留的 CI 审核。原始源文件/日志/API 抓取记录和四份原始收据位于包含27 个成员的证据归档中。其精确的 PRIMARY 分配保留了二十项原始资产、四份审核记录和三份文档。最终文档头验证和发布仍是独立步骤;这些仓库测试夹具无法证明托管环境延迟、采用情况或实际财务结果。
未发布:有界会话缓存保留
仓库会话缓存最多保留 32 个条目和 8 MiB 文本,文本大小按 UTF-8 字节计算。有效的缓存命中或缓存写入会将对应路径移至最近使用位置;写入时会淘汰最近最少使用的路径,直到同时满足两个上限。替换条目会释放旧值占用的权重。缓存操作还会移除年龄为负数、非有限值或至少为十分钟的无关条目。时钟值和时间戳必须是有限数值;不会将字符串和其他不可用的元数据强制转换为新的有效依据。
JSON 验证仍先于缓存写入。失败、格式错误、HTTP 错误或中止的响应不会移除较新的健康并发结果;即使不可用的写入时间阻止了缓存保留,经过验证的成功结果仍会返回。4 MiB 响应字节上限、严格的 UTF-8 读取器、协作式 15 秒请求作用域以及全部六种工具输出均保持不变。
缓存仍是一个 Map,供注入的测试夹具检查 get、has、迭代、set、delete 和 clear。检查不会提升条目的使用顺序,也不会使其过期。常规 set 写入会强制执行上限;受控查找会在允许命中之前重新测量保留文本,因此测试条目字段发生变化时不会留下过时的字节统计。替换会话缓存、绕过 set 使用 Map.prototype,或在操作期间使用访问器属性并进行变更,均不属于受支持的测试夹具约定。直接修改字段可能导致两个上限在操作之间被突破;下一次受控缓存操作会在返回命中前修复这一情况。
此上限涵盖每个会话保留的文本字节,不包括 JavaScript 字符串/对象开销、传输分配、已解析或返回的值、会话数量、整个进程的内存或硬性墙钟时间。不存在自主计时器、可配置策略、重试或新增依赖。有限的原生/注入测试夹具每个用例最多包含 12 MiB 合成负载;执行、独立审查和发布状态是彼此独立的证据关卡。此项更改尚未发布,且不对托管延迟、令牌、成本或采用情况作出任何测量声明。
此缓存保留更改新增的 35 个不同用例已在现有远程 MCP 作业中全部通过一次(研究用例总数为 82 个);两位独立审查者分别完成了源代码审查和保留的 CI 审查。测试夹具包括仍有效的缓存命中,以及容量淘汰后的重新获取。原始源材料/接收记录/日志/API 捕获、四份原文审查回执以及此前实际交付的保管记录,均位于包含 30 个成员的证据存档中。其精确的 PRIMARY 分配包含 23 份来源资产、四份初始审查和三份文档文件。最终文档头部验证和发布仍是独立环节;这些测试夹具无法证明托管延迟、采用情况、索引或财务结果。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。