프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. Google로 로그인하면 리뷰를 쓸 수 있어요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

three.ws Notifications

제작자: nirholas버전 0.1.4i★ 273 (저장소 전체의 별)i내 컴퓨터에서 실행
레지스트리 이름io.github.nirholas/notifications-mcp

설치 방법

개요

제작자가 쓴 설명(영어 원문)

Read the inbox, mark items read, manage delivery preferences, and register Web Push devices.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 채팅 및 이메일
  • 입력해야 할 값: THREE_WS_API_KEY

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

검사 2/2 통과 · 내 컴퓨터에서 실행돼요

먼저: 어떤 AI를 쓰시나요?

쓰는 앱을 고르면 아래에 단계가 나옵니다.

Claude에 연결할 수 있지만 먼저 준비가 필요해요

three.ws Notifications 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요

  1. Node.js 설치

    한 번만 하면 Node.js가 필요한 모든 서버에 쓸 수 있어요

    Node.js 다운로드 페이지 열기 ↗

  2. three.ws Notifications에 가입하고 키 만들기

    제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 비용이 들 수 있어요.

    three.ws Notifications 사이트 열기 ↗

  3. 컴퓨터용 Claude 앱 설정 파일 열기

    SettingsDeveloperEdit Config

  4. 이 설정을 붙여 넣고 저장

    {
      "mcpServers": {
        "notifications": {
          "command": "npx",
          "args": [
            "-y",
            "@three-ws/notifications-mcp"
          ],
          "env": {
            "THREE_WS_API_KEY": "your-value",
            "THREE_WS_BASE": "your-value",
            "THREE_WS_TIMEOUT_MS": "your-value"
          }
        }
      }
    }

    키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요

  5. Claude를 끄고 다시 열기

  6. 해 보기

    three.ws Notifications을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ Claude가 three.ws Notifications을 쓰고 있다고 하거나 답에 three.ws Notifications 도구 이름이 나오면 연결된 거예요

메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

ChatGPT는 아직 three.ws Notifications에 연결할 수 없어요

three.ws Notifications는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요

대신 이렇게 할 수 있어요

A · three.ws Notifications에 연결되는 앱 쓰기

  • three.ws Notifications 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
  • three.ws Notifications 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
  • three.ws Notifications 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
  • three.ws Notifications 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)

B · 채팅 및 이메일에서 ChatGPT에 연결되는 다른 서버

같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요

Claude Code에 연결할 수 있지만 먼저 준비가 필요해요

three.ws Notifications 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)

  1. Node.js 설치

    한 번만 하면 Node.js가 필요한 모든 서버에 쓸 수 있어요

    Node.js 다운로드 페이지 열기 ↗

  2. three.ws Notifications에 가입하고 키 만들기

    제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 비용이 들 수 있어요.

    three.ws Notifications 사이트 열기 ↗

  3. 터미널 열기

    Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기

  4. 이 명령을 붙여 넣고 Enter

    claude mcp add notifications --env THREE_WS_API_KEY=your-value --env THREE_WS_BASE=your-value --env THREE_WS_TIMEOUT_MS=your-value -- npx -y @three-ws/notifications-mcp

    Enter 전에 “your-value”를 내 키로 바꾸세요

    키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요

  5. Claude Code에서 /mcp 입력

    three.ws Notifications이 목록에 있고 연결됨으로 보이면 돼요

  6. 해 보기

    three.ws Notifications을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ Claude Code가 three.ws Notifications을 쓰고 있다고 하거나 답에 three.ws Notifications 도구 이름이 나오면 연결된 거예요

메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

Cursor에 연결할 수 있지만 먼저 준비가 필요해요

three.ws Notifications 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)

  1. Node.js 설치

    한 번만 하면 Node.js가 필요한 모든 서버에 쓸 수 있어요

    Node.js 다운로드 페이지 열기 ↗

  2. three.ws Notifications에 가입하고 키 만들기

    제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 비용이 들 수 있어요.

    three.ws Notifications 사이트 열기 ↗

  3. 이 버튼으로 Cursor 열기

    Cursor에서 열기

    Cursor가 설치를 확인하면 Install을 누르세요

  4. 키 입력

    three.ws Notifications 설정에서 THREE_WS_API_KEY, THREE_WS_BASE, THREE_WS_TIMEOUT_MS가 비어 있어요. 내 키를 넣고 저장하세요

    키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요

  5. Cursor에서 AI 채팅을 Agent 모드로 열기

  6. 해 보기

    three.ws Notifications을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ Cursor가 three.ws Notifications을 쓰고 있다고 하거나 답에 three.ws Notifications 도구 이름이 나오면 연결된 거예요

메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

VS Code에 연결할 수 있지만 먼저 준비가 필요해요

three.ws Notifications 키가 필요해요 (제작자 사이트에서 가입, 비용이 들 수 있음) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)

  1. Node.js 설치

    한 번만 하면 Node.js가 필요한 모든 서버에 쓸 수 있어요

    Node.js 다운로드 페이지 열기 ↗

  2. three.ws Notifications에 가입하고 키 만들기

    제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 비용이 들 수 있어요.

    three.ws Notifications 사이트 열기 ↗

  3. 이 버튼으로 VS Code 열기

    VS Code에서 열기

    VS Code가 설치를 확인하면 Install을 누르세요

  4. 키 입력

    three.ws Notifications 설정에서 THREE_WS_API_KEY, THREE_WS_BASE, THREE_WS_TIMEOUT_MS가 비어 있어요. 내 키를 넣고 저장하세요

    키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요

  5. VS Code에서 AI 채팅을 Agent 모드로 열기

  6. 해 보기

    three.ws Notifications을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ VS Code가 three.ws Notifications을 쓰고 있다고 하거나 답에 three.ws Notifications 도구 이름이 나오면 연결된 거예요

메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

Windsurf, Zed, Gemini CLI 같은 다른 MCP 앱은 추가 방법이 저마다 달라요. 앱 목록에서 확인하세요

MCP를 쓰는 앱 모두 보기 →

JSON 설정은 아래 “개발자용”에 있어요

막혔나요? three.ws Notifications을 쓰는 사람에게 물어보세요💬 토론 →
개발자용: 터미널 명령과 JSON 설정

컴퓨터에 설치

Claude Code

claude mcp add notifications --env THREE_WS_API_KEY=your-value --env THREE_WS_BASE=your-value --env THREE_WS_TIMEOUT_MS=your-value -- npx -y @three-ws/notifications-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "notifications": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/notifications-mcp"
      ],
      "env": {
        "THREE_WS_API_KEY": "your-value",
        "THREE_WS_BASE": "your-value",
        "THREE_WS_TIMEOUT_MS": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "notifications": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/notifications-mcp"
      ],
      "env": {
        "THREE_WS_API_KEY": "your-value",
        "THREE_WS_BASE": "your-value",
        "THREE_WS_TIMEOUT_MS": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "notifications": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/notifications-mcp"
      ],
      "env": {
        "THREE_WS_API_KEY": "your-value",
        "THREE_WS_BASE": "your-value",
        "THREE_WS_TIMEOUT_MS": "your-value"
      }
    }
  }
}

직접 입력할 값

  • THREE_WS_API_KEY 비밀 필수 env
    A three.ws API key (sk_live_… / sk_test_…) or OAuth access token for the account whose notifications you want to read and manage, carried as Authorization: Bearer. Required — every endpoint is accoun…
  • THREE_WS_BASE env
    Base URL of the three.ws API. Override only when self-hosting or targeting a preview deployment.
  • THREE_WS_TIMEOUT_MS env
    Per-request timeout in milliseconds for the live inbox reads/writes.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

한눈에 보기

GitHub 스타i
273 (저장소 전체의 별)
이 저장소에는 MCP 항목이 여러 개 있어 별은 순위에서 한 번만 세요
주간 다운로드i
59/주
라이선스i
라이선스 표시 없음
연결 방식
내 컴퓨터에서 실행
최신 버전i
0.1.4
레지스트리 공개i
2026년 10월 11일
코드 마지막 변경i
2026년 11월 10일
제작자
nirholas
패키지
npm: @three-ws/notifications-mcp
웹사이트
three.ws
레지스트리 상태
활성

어떤 앱에서 쓸 수 있나요

이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.

내 컴퓨터에서 실행하는 앱

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

모든 앱과 장단점 →

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 11일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 nirholas 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • ✓ 통과

    계속 관리되고 있음

    코드 마지막 변경: 어제

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

토론

질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.

아직 글이 없어요. 처음으로 질문하거나 공유해 보세요.

이곳의 글은 사용자가 쓴 것으로, PopNx 팀의 글이 아니에요.

Google로 로그인하고 글쓰기

사용자 리뷰

아직 리뷰가 없어요

Google로 로그인하고 리뷰 쓰기

채팅 및 이메일 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 1940개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 1940개 중 46%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 1940개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

three.ws Notifications, 안전한가요?

해당하는 기본 점검 2개 중 2개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: THREE_WS_API_KEY

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 어제 변경됐고, 최신 버전(0.1.4)은 31일 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Inbox Zero, Agent-Native Chat, draw.io

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Inbox Zero

Search Gmail and Outlook, save drafts, manage email rules, and view email stats.

제작자: elie222널리 사용됨★ 1.3만41일 전 업데이트

클라우드에서 실행

Agent-Native Chat

Minimal chat-first app with durable threads, actions, and the app-agent loop

제작자: BuilderIO널리 사용됨★ 7.7천 저장소 전체의 별2개월 전 업데이트

클라우드에서 실행

draw.io

Create draw.io diagrams in chat from Mermaid or XML, shown live and interactive. 10,000+ shapes.

제작자: jgraph널리 사용됨★ 5.8천어제 업데이트

클라우드에서 실행✓ draw.io

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

@three-ws/notifications-mcp

Your three.ws notification inbox, delivery preferences, and Web Push devices — from any AI agent.

Install · Quick start · Tools · Authentication · Errors · three.ws


A Model Context Protocol server that gives an AI assistant its own three.ws notification inbox + delivery control over stdio. Read inbound events (pump/market alerts, sales & earnings, purchase receipts, social mentions, IRL interactions, account/security notices), mark them read, tune the per-category → per-channel delivery matrix, and register Web Push devices — all live, all account-scoped.

Why

An agent that trades, sells skills, or stands in the real world generates inbound events around the clock — a coin it launched pumps, a skill it published sells, someone taps its IRL pin. Without an inbox surface, the agent polls a dozen endpoints or misses everything. This server turns the platform's own notification feed into seven MCP tools: the agent reads what happened since it last looked, triages it, and controls exactly which channels (in_app, push, email, telegram) each category of event uses to reach its owner.

Every read and write hits the real three.ws API. The server is authenticated: it carries a three.ws API key (or OAuth access token) as a Bearer credential and resolves the owning account on every call. It signs nothing locally and holds no other secret.

Install

npm install @three-ws/notifications-mcp

Or run with npx (no install):

THREE_WS_API_KEY=sk_live_… npx @three-ws/notifications-mcp

Node 20+. Two runtime dependencies (@modelcontextprotocol/sdk, zod).

Quick start

Claude Code, one line:

claude mcp add notifications -e THREE_WS_API_KEY=sk_live_… -- npx -y @three-ws/notifications-mcp

Claude Desktop / Cursor / any MCP client — add to your MCP config (claude_desktop_config.json, .cursor/mcp.json, .mcp.json):

{

"mcpServers": { "notifications": { "command": "npx", "args": ["-y", "@three-ws/notifications-mcp"], "env": { "THREE_WS_API_KEY": "sk_live_…" } } } }

Restart the client and the seven tools appear. Inspect the surface in a GUI:

npx -y @modelcontextprotocol/inspector npx -y @three-ws/notifications-mcp

Then ask in plain language:

Anything new in my inbox? Mark the pump alerts read, and turn off email for social mentions.

Runs list_notifications → mark_read → set_preferences.

Tools

ToolKindWhat it does
list_notificationsreadThe inbox, newest first, filterable by type, with an unread_count.
mark_readwriteMark one notification — or every unread one — read. Idempotent.
delete_notificationwrite ⚠️Permanently remove one notification (irreversible).
get_preferencesreadThe per-category → per-channel delivery matrix.
set_preferenceswritePatch which channels deliver each category. Idempotent.
register_push_devicewriteRegister a Web Push device from a browser PushSubscription. Idempotent.
unregister_push_devicewrite ⚠️Remove a Web Push device (tears down delivery to it). Idempotent.

Every tool ships MCP tool annotations: the two reads advertise readOnlyHint: true, and the two ⚠️ tools are flagged destructiveHint: true, so annotation-aware clients prompt before running them.

list_notifications

Read the account's inbox — the inbound-event feed the platform delivers: market/pump alerts, sales & earnings, purchase receipts, social mentions, IRL interactions, and account/security notices. Wraps GET /api/notifications.

ArgTypeRequiredNotes
typestringnoReturn only one notification type (e.g. "pump_alert", "skill_purchased", "referral_earned", "security_alert"). Lower_snake_case, ≤ 40 chars. Omit for all types.
limitnumbernoHow many to return, newest first. 1–50, default 20.

Example call and response (shape illustration — your inbox contents will differ):

// call

{ "type": "pump_alert", "limit": 2 }

// response (example) { "ok": true, "type": "pump_alert", "unread_count": 5, "count": 2, "notifications": [ { "id": "5d1c2f0a-9b1e-4c3d-8e7f-000000000001", "type": "pump_alert", "payload": { "mint": "FeMbDoX7R1Psc4GEcvJdsbNbZA3bfztcyDCatJVJpump", "symbol": "THREE" }, "read": false, "read_at": null, "created_at": "2026-07-11T18:04:12.000Z" } ] }

read is derived from read_at (null ⇒ unread). unread_count is the total unread across the whole inbox, not just this page.

mark_read

Mark notifications read. Wraps POST /api/notifications/:id/read (one) and POST /api/notifications/read-all (all). Pass exactly one of the two arguments. Marking read only sets read_at — nothing is deleted, and re-running is a no-op.

ArgTypeRequiredNotes
idstring (UUID)one ofA single notification to mark read (from list_notifications).
allbooleanone oftrue ⇒ mark every unread notification read.
// call

{ "all": true }

// response (example) { "ok": true, "scope": "all", "marked_read": 5 }

With id, the response is { "ok": true, "scope": "one", "id": "…", "read_at": "…" }.

delete_notification

Permanently remove one notification. Wraps DELETE /api/notifications/:id. Irreversible — prefer mark_read for normal triage. Only a notification the caller owns can be deleted; a missing or already-deleted id returns a not-found error.

ArgTypeRequiredNotes
idstring (UUID)yesThe notification to delete (from list_notifications).
// call

{ "id": "5d1c2f0a-9b1e-4c3d-8e7f-000000000001" }

// response (example) { "ok": true, "id": "5d1c2f0a-9b1e-4c3d-8e7f-000000000001", "deleted": true }

get_preferences

Read the resolved delivery matrix — for each category, which channels deliver it. No arguments. Wraps GET /api/notifications/preferences. Read this before set_preferences so you patch from real current state.

// response (example)

{ "ok": true, "categories": [ { "key": "sales", "label": "Sales & earnings", "description": "…" }, { "key": "alerts", "label": "Market & pump alerts", "description": "…" } /* purchases, social, irl, account … */ ], "channels": ["in_app", "push", "email", "telegram"], "prefs": { "categories": { "alerts": { "in_app": true, "push": true, "email": false, "telegram": false } }, "telegram_chat_id": null }, "push": { "subscribed_devices": 1 } }

The seven categories are sales, purchases, social, irl, alerts, creations, account; the four channels are in_app, push, email, telegram. prefs.categories is the effective matrix with the user's sparse overrides already merged onto platform defaults. A category may also carry lockedChannels: account locks in_app on, so security and withdrawal notices always reach the bell inbox.

set_preferences

Patch the delivery matrix. Wraps PUT /api/notifications/preferences. Provide at least one of the two arguments. Only the category/channel pairs you pass change; unknown keys are dropped server-side; untouched pairs keep their current value. Re-applying the same values is a no-op.

ArgTypeRequiredNotes
categoriesobjectat least oneOuter keys: sales, purchases, social, irl, alerts, creations, account. Inner keys: in_app, push, email, telegram → boolean. account's in_app is locked on and a false for it is ignored.
telegram_chat_idstringat least oneNumeric Telegram chat id to deliver the telegram channel to, or "" to unlink. ≤ 24 chars.
// call — stop emailing social mentions, push pump alerts

{ "categories": { "social": { "email": false }, "alerts": { "push": true } } }

// response (example) — the full resolved matrix after the update { "ok": true, "prefs": { "categories": { "social": { "email": false /* … */ } }, "telegram_chat_id": null } }

register_push_device

Register a Web Push device so the account receives push notifications on it. Wraps POST /api/push/subscribe. The subscription argument is exactly what the browser's pushManager.subscribe().toJSON() returns. Push endpoints are globally unique — re-registering the same device upserts (latest owner wins), so this is idempotent. Whether a category actually delivers over push is still governed by set_preferences.

ArgTypeRequiredNotes
subscriptionobjectyes{ endpoint, keys: { p256dh, auth } } — endpoint is the push-service URL (≤ 2048 chars); p256dh/auth are the base64url-encoded keys from the browser.
// call

{ "subscription": { "endpoint": "https://fcm.googleapis.com/fcm/send/exampleSubscriptionId", "keys": { "p256dh": "BNcRd…", "auth": "tBHI…" } } }

// response (example) { "ok": true, "registered": true, "endpoint": "https://fcm.googleapis.com/fcm/send/exampleSubscriptionId" }

unregister_push_device

Remove a Web Push device so it stops receiving pushes. Wraps DELETE /api/push/subscribe. Provide at least one of the two arguments — the endpoint is what locates the device. Idempotent: removing an endpoint that isn't registered still returns ok. Only push delivery to that device changes; in_app, email, and telegram preferences are untouched.

ArgTypeRequiredNotes
endpointstring (URL)one ofThe push endpoint URL of the device to remove (preferred).
subscriptionobjectone ofAlternatively the full subscription object; its endpoint is used.
// call

{ "endpoint": "https://fcm.googleapis.com/fcm/send/exampleSubscriptionId" }

// response (example) { "ok": true, "unregistered": true, "endpoint": "https://fcm.googleapis.com/fcm/send/exampleSubscriptionId" }

Authentication

Every endpoint is account-scoped and returns 401 without a valid credential — this server can never read or change another account.

Set THREE_WS_API_KEY to either:

  • a three.ws API key (sk_live_… / sk_test_…) — create one in your three.ws dashboard, or
  • an **OAuth

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요