返现代理服务

一个逆向工程实现的返现查询服务,支持JSON HTTP端点和MCP端点,用于查询品牌返现率并管理缓存。

  • by ChiotOnAGE
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 ChiotOnAGE/cashbackmonitor-proxy-mcp

使用说明

现金返还代理

逆向工程 cashbackmonitor.com 具有两种传输方式的查询服务:

  • JSON HTTP端点实现向后兼容性
  • 一个真正的MCP端点 /mcp 适用于Poke和其他MCP客户

该服务为已解析的品牌和现金返还率保留持久的SQLite缓存,为上游SID/Cookie使用内存会话缓存,并为操作员提供受保护的管理员缓存清除端点。

需求

快速开始

bun install
bun run dev

默认本地URL:

  • HTTP运行状况: http://localhost:8765/health
  • HTTP API: http://localhost:8765/v1/brands/rates?name=Calm
  • MCP: http://localhost:8765/mcp

环境变量

变量 默认值 用途
PORT 8765 HTTP侦听端口
ADMIN_TOKEN unset 管理员缓存清除终结点所需的承载令牌
CACHE_DB_PATH /data/cache.db 在Linux上, ./data/cache.db 在Windows SQLite缓存文件上
CACHE_RATES_TTL_MS 1800000 速率缓存TTL
CACHE_RESOLVE_TTL_MS 604800000 解析缓存TTL
CACHE_NEGATIVE_TTL_MS 300000 负缓存TTL
SID_TTL_MS 21600000 内存上游SID TTL

--port 和 --port=<n> 仍然在运行时覆盖端口。

HTTP API

端点 描述
GET /health 健康和终点摘要
GET /v1/brands/autocomplete?q=<query>&limit=10&fuzzy=1 品牌搜索
GET /v1/brands/resolve?name=<brand> 品牌名称->经典蛞蝓
GET /v1/brands/:slug/rates 按品种划分的现金返还率
GET /v1/brands/rates?name=<brand> 一次通话解决+费率
POST /admin/cache/clear 清除所有缓存条目
`POST /admin/cache/clear?scope=rates resolve
POST /admin/cache/clear?scope=rates&slug=<slug> 清除一个缓存的费率条目

现在,每个查询响应都包含一个顶级 meta 对象具有:

  • cache_status: hit | miss | stale_refreshed
  • cached_at
  • expires_at
  • source: cache | upstream

管理员请求必须发送:

Authorization: Bearer <ADMIN_TOKEN>

MCP工具

这 /mcp endpoint正好公开了这些工具:

  • search_brands(query, limit=10, fuzzy=true)
  • resolve_brand(name)
  • get_brand_rates(name?, slug?)

如果两者都有 name 和 slug 提供给 get_brand_rates, slug 获胜。

Poke分享

对于生产共享,将Poke指向部署的远程MCP URL,而不是使用本地隧道:

npx poke@latest mcp add https://your-domain.example.com/mcp -n "CashbackMonitor"

然后在Kitchen中选择该集成,并从那里发布配方。

码头工人

在本地构建和运行:

docker build -t cashbackmonitor .
docker run -p 8765:8765 -e ADMIN_TOKEN=change-me -v cashbackmonitor-data:/data cashbackmonitor

对于容器部署中的持久SQLite缓存,请在以下位置挂载可写存储 /data.

测试

bun test

目前的覆盖范围包括:

  • SQLite TTL和清晰作用域行为
  • 单次重复数据删除
  • 跨重启的持久缓存重用
  • HTTP和MCP等效
  • 管理员身份验证保护

构建独立可执行文件

bun run build
bun run build:win
bun run build:linux

项目结构

src/
  index.ts      # Bun entrypoint
  app.ts        # HTTP + MCP routing
  service.ts    # core query logic, TTL, singleflight
  scraper.ts    # upstream fetch + HTML parsing
  cache.ts      # SQLite cache store
  mcp.ts        # MCP tool registration
  normalizer.ts # rate normalization
  fuzzy.ts      # fuzzy brand scoring
  types.ts      # shared types

许可证

MIT。这是一个非官方项目;cashbackmonitor.com没有附属机构。