- app_settings 表(key/value):MCP 开关与令牌存 DB,不属于任何用户、不参与同步协议 - 配置读取/写入收敛到 core/mcp.js(readMcpConfig/saveMcpToken/setMcpEnabled) - 状态语义:未配置→404(端点视为不存在);已配置关闭→503(可重新开启);令牌错→401 - env MCP_AUTH_TOKEN 仅首次种子(库里从没有过令牌时迁入 DB),不设也行;后台改动即时生效无需重启 - 管理 API(登录态):GET /api/mcp/status(掩码)、POST /api/mcp/token(生成/重置,明文仅一次)、GET /api/mcp/token(复制用)、POST /api/mcp/enabled - 设置页新增「AI 接入 (MCP)」卡片:开关 toggle、掩码展示、一键生成并复制(writeClipboard 兜底)、重置令牌;未登录徽章「本设备请先登录」 - 入口接线:node-server.js 与 worker.js 均挂 /mcp(seedToken 透传);sw.js 放行裸 /mcp(v2→v3) - 两个适配器补 getSetting/setSetting(node:sqlite 与 D1 同语义) - 测试:server/test/mcp.test.js 39 项(未配置关闭/鉴权/JSON-RPC 全链路/开关热切换/令牌轮换);npm test 全绿(107+72+39) - 线上 E2E:生产令牌 initialize/tools 7 个/2026-09 大盘(出勤11天/82h/挣得1599);公网 HTTPS 链路通;UI puppeteer 17/17(含关→503→开→200 热切换,全程无重启) - 文档:README + server/README(环境变量表/接口表/数据模型/MCP 章节)
20 lines
734 B
JSON
20 lines
734 B
JSON
{
|
||
"name": "work-hours-tracker-server",
|
||
"version": "1.0.0",
|
||
"private": true,
|
||
"type": "module",
|
||
"description": "工时记账服务端:平台无关核心 + 可替换存储适配器(VPS node:sqlite / Cloudflare D1)",
|
||
"main": "node-server.js",
|
||
"scripts": {
|
||
"start": "node --disable-warning=ExperimentalWarning node-server.js",
|
||
"test": "node --disable-warning=ExperimentalWarning test/api.test.js && node --disable-warning=ExperimentalWarning test/mcp.test.js",
|
||
"schema:dump": "node scripts/dump-schema.js",
|
||
"cf:dev": "wrangler dev",
|
||
"cf:deploy": "wrangler deploy",
|
||
"cf:migrate": "wrangler d1 execute work-hours --remote --file=./core/schema.sql"
|
||
},
|
||
"engines": {
|
||
"node": ">=22.5.0"
|
||
}
|
||
}
|