使用说明
现金返还代理
逆向工程 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=<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_refreshedcached_atexpires_atsource: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没有附属机构。
