现金返还代理
逆向工程 cashbackmonitor.com 具有两种传输方式的查询服务:
- JSON HTTP端点实现向后兼容性
- 一个真正的MCP端点
/mcp适用于Poke和其他MCP客户
该服务为已解析的品牌和现金返还率保留持久的SQLite缓存,为上游SID/Cookie使用内存会话缓存,并为操作员提供受保护的管理员缓存清除端点。
需求
- 包子 v1.0+
快速开始
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= 仍然在运行时覆盖端口。
HTTP API
| 端点 | 描述 | |||
|---|---|---|---|---|
GET /health | 健康和终点摘要 | |||
GET /v1/brands/autocomplete?q=&limit=10&fuzzy=1 | 品牌搜索 | |||
| `GET /v1/brands/resolve?name= | ||||
| ` | 品牌名称->经典蛞蝓 | |||
GET /v1/brands/:slug/rates | 按品种划分的现金返还率 | |||
| `GET /v1/brands/rates?name= | ||||
| ` | 一次通话解决+费率 | |||
POST /admin/cache/clear | 清除所有缓存条目 | |||
| `POST /admin/cache/clear?scope=rates | resolve | negative | all` | 按缓存范围清除 |
POST /admin/cache/clear?scope=rates&slug= | 清除一个缓存的费率条目 |
现在,每个查询响应都包含一个顶级 meta 对象具有:
cache_status:hit | miss | stale_refreshedcached_atexpires_atsource:cache | upstream
管理员请求必须发送:
Authorization: Bearer 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没有附属机构。
