mcpField
O
outcometick

outcometick

远程服务
outcometick.com金融数据12 周前更新

关于 outcometick

outcometick 为使用 Polymarket 和 Predict.fun 加密货币涨跌市场历史逐笔数据的策略提供 MCP 工具及 TypeScript/JavaScript SDK。其 MCP 服务可查看数据覆盖范围、验证策略、估算回测报价并获取报告,但不会提交回测。

主要功能

  1. 01查看市场数据覆盖范围和方案
  2. 02检查回测容量并估算积分费用
  3. 03使用队列验证器检查策略文件
  4. 04列出并校验下载的数据文件
  5. 05查询回测运行状态和报告
  6. 06获取已发布的聪明资金交易列表

适用场景

  1. 01开发策略前确认可用市场数据
  2. 02单独提交策略前先进行验证
  3. 03估算回测范围和积分费用
  4. 04下载并校验历史数据或交易列表

MCP 相关

通过 `ot mcp` 提供 stdio MCP 服务,并提供托管的 Streamable HTTP 端点。工具用于读取、报价、验证和下载数据,不会提交回测。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://outcometick.com/v1/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://outcometick.com/v1/mcp需要授权
Streamable HTTPhttps://outcometick.com/v1/mcp/public
安装包
npmoutcometick3.0.0

工具

详细介绍

outcometick

outcometick.com 的 TypeScript / JavaScript 策略 SDK 和 ot 命令行工具——提供 Polymarket 和 Predict.fun 加密货币涨跌市场的逐笔数据。

npm i -g outcometick

ot check .                                           # validate, free, no data
ot run . --data ./polymarket-data-samples            # replay locally
ot submit . --assets btc,eth --days 30               # send it to the queue
ot status <run_id>                                   # where it got to
ot fetch  <run_id>                                   # download the report

**2.0 版重大变更:**回测仅覆盖最近归档的 35 天,且随着新日期归档,时间窗口会向前移动。若 --from 早于窗口起始日期,或 --days 超出窗口长度,系统会在上传任何内容前拒绝请求并返回 E_SCOPE,错误消息中会注明当前窗口。使用 --days <n> 指定最近 n 天;当前日期范围见 https://outcometick.com/v1/backtest/capacity?venue=polymarket。

编写策略

完全支持类型——ot 附带 .d.ts 声明,因此通过类型检查的策略也会被队列接受。

import { Strategy, Order, type Ctx, type Tick } from "outcometick";

export default class MeanReversion extends Strategy<{ entry_z: number; size: number }> {
  private entered = false;

  onMarketOpen() { this.entered = false; }

  onTick(ctx: Ctx<{ entry_z: number; size: number }>, tick: Tick): Order | null {
    const z = ctx.zscore(tick.value, { window: 180 });
    if (this.entered || Math.abs(z) < ctx.p.entry_z) return null;
    const side = z > 0 ? "DOWN" : "UP";
    const limit = ctx.book().best(side);
    if (limit === null) return null;
    this.entered = true;
    return new Order({ side, size: ctx.p.size, limit });
  }
}

也可以使用纯 JavaScript——运行时为 ESM,无需构建步骤。

ot check 的意义

它运行队列使用的同一验证器——是同一个模块,而不是副本。本地验证通过,提交时就不会被拒绝。之所以能做到这一点,是因为只有一个实现;因此验证器和静态分析器随此包一同提供,而不是在客户端重新实现。

ot run 是什么,不是什么

它使用与队列相同的引擎、报告和归档格式,并针对归档的本地副本运行:

curl -L https://github.com/outcometick/polymarket-tick-data-samples/releases/latest/download/polymarket-data-samples.tar.gz | tar xz

它不是沙箱。在本地,你的策略以你的身份、使用你的权限在你的机器上运行——这没有问题,因为代码是你自己的。在我们的机器上,它会在容器中运行,容器没有网络、没有可写文件系统,并受到严格的 CPU 和运行时间限制。

测试

npm install && npm test

需要在 PATH 中找到 python3:两个静态分析器之一由 Python 编写,CLI 驱动它的方式与 API 相同。

下载数据

这是此包的另一部分:数据订阅的客户端,通过单独的导入提供,因为它与编写策略无关。

import { DataClient, NO_VALUE } from "outcometick/data";

const ot = new DataClient();                    // key from OT_KEY

const meta = await ot.meta();                   // what can this key see?

const { files } = await ot.files({
  from: "2026-08-01", to: "2026-08-12",         // or date: "2026-08-12"
  asset: ["BTC", "ETH"],                        // the BASE symbol, not BTCUSD
  dataset: "prices",
  interval: ["5m", NO_VALUE],                   // "5m" alone EXCLUDES the
});                                             // period-less settlement streams

await ot.download(files[0], { saveTo: files[0].name });   // checksum verified

meta() 会报告此密钥实际可访问的数据维度。请注意,intervals 仅包含实际时长——none 哨兵值会单独列在 filterTokens 下,因此调用方从中构建枚举或将值解析为时长时,不会遇到令牌。

下载会进行校验和验证:/v1/dl 会重定向到存储服务,并在标头中附带 sha256;客户端会自行跟随该重定向,因此校验和不会丢失。

重建 Polymarket 订单簿

book 和 price_change 按采集频率存储,因此一次移除操作可能发生在两个已存储帧之间,导致残留过时价位。OrderBook 会应用文档说明的重建规则:快照会替换一个代币的价位梯;变更会设置绝对数量(0 表示移除);最新最优买价/卖价(来自 best_bid_ask 以及每次变更)越过的价位会被丢弃。输入按 recv_ms 合并的三个文件中的行。

import { OrderBook } from "outcometick/data";

const book = new OrderBook();
for (const row of rows) book.apply(row);       // parsed objects or JSONL lines
book.ladder(tokenId);                           // { bids: [{ price, size }], asks: [...] }, best first
book.best(tokenId);                             // { bid, ask }

这会移除所有已被最优价格越过的价位,但无法还原被丢弃帧新增或调整过的内容:在下一次快照之前,某个价位(包括顶部价位)可能缺失或带有旧数量(best_bid_ask 仅包含价格)。best() 返回重建价位梯中的最佳价位,而非市场最新的最优买价/卖价——要获取后者,请读取 best_bid_ask 行。

聪明钱交易历史

单独订阅,使用独立密钥:提供 Polymarket 排名最高的交易者每日交易文件。

const smart = new DataClient({ key: process.env.OT_SMART_KEY });
const { days } = await smart.smartDays();                  // newest first
const day = days.find((d) => d.lists.top100?.status === "published")?.day;
if (day) await smart.smartDownload(day, "top100", { saveTo: "top100.csv.zst" });  // verified

列表内容及各列含义见: https://outcometick.com/polymarket-smart-money-data

MCP 服务

ot mcp 是一个通过 stdio 提供的 Model Context Protocol 服务,供编码助手和 Agent 使用。它会读取数据、计算价格、验证并下载;但绝不会提交回测,因为这会消耗积分。需要 Node 24 或更高版本。

{
  "mcpServers": {
    "outcometick": {
      "command": "npx",
      "args": ["-y", "outcometick", "mcp"],
      "env": {
        "OT_KEY": "<data subscription key, optional>",
        "OT_SMART_KEY": "<smart-money key, optional>",
        "OT_BACKTEST_KEY": "<backtest key, optional>"
      }
    }
  }
}

Claude Code:claude mcp add outcometick -e OT_KEY=<data key> -- npx -y outcometick mcp

这些工具也通过 Streamable HTTP 托管,无需安装:

  • https://outcometick.com/v1/mcp:发送 Authorization: Bearer <key>(数据、smart-money 或回测密钥;添加第二或第三个密钥时,使用 X-Backtest-Key / X-Smart-Key),也可以不带请求头连接并通过 OAuth 登录,然后在授权页面粘贴密钥(适用于 claude.ai 和 ChatGPT 连接器)。
  • https://outcometick.com/v1/mcp/public:无需密钥,仅提供公共工具。

claude mcp add --transport http outcometick https://outcometick.com/v1/mcp --header "Authorization: Bearer <data key>"

在托管模式下,download_file 和 smart_download 会返回签名 URL 及其 sha256,而不是写入磁盘;check_strategy 接收文件内容,而不是目录。

工具密钥功能
coverage无查看每个交易场所的存档内容:资产、数据集、日期范围
plans无数据订阅套餐及其实时价格
backtest_capacity无当前可回测的日期,以及队列繁忙程度
backtest_quote无计算回测范围的积分价格,但不提交回测
check_strategy无使用队列自带的验证器在本地验证策略目录
metaOT_KEY数据密钥可访问的日期范围和筛选值
list_filesOT_KEY搜索数据密钥可下载的存档文件
download_fileOT_KEY下载一个文件并验证其 sha256
backtest_runsOT_BACKTEST_KEY回测密钥下的近期运行记录及积分余额
backtest_statusOT_BACKTEST_KEY某次运行的状态、积分和报告摘要
smart_plans无Smart-money 套餐(Polymarket 钱包每日列表)及其实时价格
smart_coverage无已发布的 smart-money 日期
smart_daysOT_SMART_KEYsmart-money 密钥可下载的日期,以及每个列表的状态
smart_downloadOT_SMART_KEY下载某一天的列表并验证其 sha256

如果你更想用 Python 编写策略,可以使用它的 SDK:pip install outcometick。ot 也能运行这些策略——它是同时支持两种语言的统一 CLI。

完整参考文档:https://outcometick.com/docs/sdk

链接

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。