tokenbill-mcp 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tokenbill-mcp",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Tokenbill MCP — Claude Code·Codex·Gemini CLI 구독 토큰을 tokenbill.my 리더보드에 자동 집계하고, 로컬 대화 뷰어(--viewer)와 Duet 타스크 보드(127.0.0.1:8737)를 제공합니다. Auto-uploads your AI subscription token usage to the tokenbill.my leaderboard, with a local transcript viewer and the Duet task board.",
5
5
  "bin": {
6
6
  "tokenbill-mcp": "./uploader/index.js"
@@ -51,6 +51,21 @@ function createApp(version) {
51
51
  const p = decodeURIComponent(u.pathname);
52
52
  const m = req.method;
53
53
 
54
+ // tokenbill.my 포탈의 '작업 보드 실행 중' 감지용 — 민감 정보 없음이라 CORS 허용 (PNA preflight 포함)
55
+ if (m === "OPTIONS") {
56
+ res.writeHead(204, {
57
+ "Access-Control-Allow-Origin": "*",
58
+ "Access-Control-Allow-Methods": "GET, OPTIONS",
59
+ "Access-Control-Allow-Headers": "*",
60
+ "Access-Control-Allow-Private-Network": "true",
61
+ });
62
+ return res.end();
63
+ }
64
+ if (m === "GET" && p === "/api/ping") {
65
+ res.writeHead(200, { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*" });
66
+ return res.end('{"ok":true,"app":"duet-board"}');
67
+ }
68
+
54
69
  if (m === "GET" && p === "/") {
55
70
  res.writeHead(200, { "Content-Type": "text/html; charset=utf-8", "Cache-Control": "no-store" });
56
71
  return res.end(fs.readFileSync(PAGE, "utf8"));