draw.io
Create draw.io diagrams in chat from Mermaid or XML, shown live and interactive. 10,000+ shapes.
Read the inbox, mark items read, manage delivery preferences, and register Web Push devices.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 3/3 통과 · 내 컴퓨터에서 실행돼요 · ✓ 명령 확인 2026년 11월 14일
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있지만 먼저 준비가 필요해요
three.ws Notifications 키가 필요해요 (제작자 사이트에서 만들기) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
이 메시지를 Claude 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Claude에 MCP server three.ws Notifications을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "mcpServers": { "notifications": { "command": "npx", "args": [ "-y", "@three-ws/notifications-mcp" ], "env": { "THREE_WS_API_KEY": "your-value" } } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) THREE_WS_API_KEY에는 "your-value"를 그대로 두고, 실제 값은 제가 파일이나 앱 입력란에 직접 붙여 넣도록 안내하세요. 채팅에 키를 입력하라고 하지 마세요. 5) 합의한 대로 실행한 뒤 three.ws Notifications의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
node -vMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v
한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
SettingsDeveloperEdit Config
{
"mcpServers": {
"notifications": {
"command": "npx",
"args": [
"-y",
"@three-ws/notifications-mcp"
],
"env": {
"THREE_WS_API_KEY": "your-value"
}
}
}
}키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
three.ws Notifications을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 three.ws Notifications을 쓰고 있다고 하거나 답에 three.ws Notifications 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
THREE_WS_BASE Base URL of the three.ws API. Override only when self-hosting or targeting a preview deployment. · 기본값 https://three.wsTHREE_WS_TIMEOUT_MS Per-request timeout in milliseconds for the live inbox reads/writes. · 기본값 20000설명은 아직 영어 원문입니다.
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 아직 three.ws Notifications에 연결할 수 없어요
three.ws Notifications는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요
A · three.ws Notifications에 연결되는 앱 쓰기
B · 채팅 및 이메일에서 ChatGPT에 연결되는 다른 서버
같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요
Claude Code에 연결할 수 있지만 먼저 준비가 필요해요
three.ws Notifications 키가 필요해요 (제작자 사이트에서 만들기) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
이 메시지를 Claude Code 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Claude Code에 MCP server three.ws Notifications을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): claude mcp add --scope user notifications --env THREE_WS_API_KEY=your-value -- npx -y @three-ws/notifications-mcp 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) THREE_WS_API_KEY에는 "your-value"를 그대로 두고, 실제 값은 제가 파일이나 앱 입력란에 직접 붙여 넣도록 안내하세요. 채팅에 키를 입력하라고 하지 마세요. 5) 합의한 대로 실행한 뒤 three.ws Notifications의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
node -vMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v
한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
claude mcp add --scope user notifications --env THREE_WS_API_KEY=your-value -- npx -y @three-ws/notifications-mcpEnter 전에 “your-value”를 내 키로 바꾸세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
three.ws Notifications이 목록에 있고 연결됨으로 보이면 돼요
three.ws Notifications을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 three.ws Notifications을 쓰고 있다고 하거나 답에 three.ws Notifications 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
THREE_WS_BASE Base URL of the three.ws API. Override only when self-hosting or targeting a preview deployment. · 기본값 https://three.wsTHREE_WS_TIMEOUT_MS Per-request timeout in milliseconds for the live inbox reads/writes. · 기본값 20000설명은 아직 영어 원문입니다.
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있지만 먼저 준비가 필요해요
three.ws Notifications 키가 필요해요 (제작자 사이트에서 만들기) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
이 메시지를 Cursor 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Cursor에 MCP server three.ws Notifications을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "mcpServers": { "notifications": { "command": "npx", "args": [ "-y", "@three-ws/notifications-mcp" ], "env": { "THREE_WS_API_KEY": "your-value" } } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) THREE_WS_API_KEY에는 "your-value"를 그대로 두고, 실제 값은 제가 파일이나 앱 입력란에 직접 붙여 넣도록 안내하세요. 채팅에 키를 입력하라고 하지 마세요. 5) 합의한 대로 실행한 뒤 three.ws Notifications의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
node -vMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v
한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
three.ws Notifications 설정에서 THREE_WS_API_KEY가 비어 있어요. 내 키를 넣고 저장하세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
three.ws Notifications을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 three.ws Notifications을 쓰고 있다고 하거나 답에 three.ws Notifications 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
THREE_WS_BASE Base URL of the three.ws API. Override only when self-hosting or targeting a preview deployment. · 기본값 https://three.wsTHREE_WS_TIMEOUT_MS Per-request timeout in milliseconds for the live inbox reads/writes. · 기본값 20000설명은 아직 영어 원문입니다.
메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있지만 먼저 준비가 필요해요
three.ws Notifications 키가 필요해요 (제작자 사이트에서 만들기) · 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
이 메시지를 VS Code 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 VS Code에 MCP server three.ws Notifications을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "servers": { "notifications": { "type": "stdio", "command": "npx", "args": [ "-y", "@three-ws/notifications-mcp" ], "env": { "THREE_WS_API_KEY": "your-value" } } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) THREE_WS_API_KEY에는 "your-value"를 그대로 두고, 실제 값은 제가 파일이나 앱 입력란에 직접 붙여 넣도록 안내하세요. 채팅에 키를 입력하라고 하지 마세요. 5) 합의한 대로 실행한 뒤 three.ws Notifications의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
node -vMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v
한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다
제작자 사이트에서 가입하고 다음 단계에 쓸 API 키를 만드세요. 요금과 무료 요금제는 제작자 사이트에서 확인하세요.
three.ws Notifications 설정에서 THREE_WS_API_KEY가 비어 있어요. 내 키를 넣고 저장하세요
키는 앱 입력란에만 붙여 넣고, 채팅에 붙이거나 다른 사람에게 보내지 마세요
three.ws Notifications을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 three.ws Notifications을 쓰고 있다고 하거나 답에 three.ws Notifications 도구 이름이 나오면 연결된 거예요
위 명령은 이 값들 없이도 동작합니다. 바꾸고 싶을 때만 제작자 설명대로 추가하세요.
THREE_WS_BASE Base URL of the three.ws API. Override only when self-hosting or targeting a preview deployment. · 기본값 https://three.wsTHREE_WS_TIMEOUT_MS Per-request timeout in milliseconds for the live inbox reads/writes. · 기본값 20000설명은 아직 영어 원문입니다.
메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Claude Code
claude mcp add --scope user notifications --env THREE_WS_API_KEY=your-value -- npx -y @three-ws/notifications-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"notifications": {
"command": "npx",
"args": [
"-y",
"@three-ws/notifications-mcp"
],
"env": {
"THREE_WS_API_KEY": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"notifications": {
"command": "npx",
"args": [
"-y",
"@three-ws/notifications-mcp"
],
"env": {
"THREE_WS_API_KEY": "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_API_KEY 비밀 필수 envTHREE_WS_BASE envTHREE_WS_TIMEOUT_MS env설명은 아직 영어 원문입니다.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 15일 점검
레지스트리 이름이 GitHub 계정 nirholas 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
코드 마지막 변경: 어제
Apache-2.0 사용
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
아직 확인하지 않았습니다
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
아직 리뷰가 없어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: THREE_WS_API_KEY
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 어제 변경됐고, 최신 버전(0.1.4)은 35일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: draw.io, Vexa, emailmd, Kite Discord Bot Builder, e2a — email for AI agents
같은 카테고리, 다른 제작자, 명령 확인 완료. 공식이 먼저, 그다음 스타 순.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Create draw.io diagrams in chat from Mermaid or XML, shown live and interactive. 10,000+ shapes.
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
Build and fix Discord bots from a chat. Kite hosts them 24/7, with no code to deploy.
Authenticated email gateway for AI agents — per-agent inboxes, HITL approval, SPF/DKIM verified.
제작자의 저장소에서 쓰인 그대로 가져왔어요. 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.
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.
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).
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.
| Tool | Kind | What it does |
|---|---|---|
list_notifications | read | The inbox, newest first, filterable by type, with an unread_count. |
mark_read | write | Mark one notification — or every unread one — read. Idempotent. |
delete_notification | write ⚠️ | Permanently remove one notification (irreversible). |
get_preferences | read | The per-category → per-channel delivery matrix. |
set_preferences | write | Patch which channels deliver each category. Idempotent. |
register_push_device | write | Register a Web Push device from a browser PushSubscription. Idempotent. |
unregister_push_device | write ⚠️ | 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_notificationsRead 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.
| Arg | Type | Required | Notes |
|---|---|---|---|
type | string | no | Return only one notification type (e.g. "pump_alert", "skill_purchased", "referral_earned", "security_alert"). Lower_snake_case, ≤ 40 chars. Omit for all types. |
limit | number | no | How 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_readMark 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.
| Arg | Type | Required | Notes |
|---|---|---|---|
id | string (UUID) | one of | A single notification to mark read (from list_notifications). |
all | boolean | one of | true ⇒ 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_notificationPermanently 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.
| Arg | Type | Required | Notes |
|---|---|---|---|
id | string (UUID) | yes | The 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_preferencesRead 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_preferencesPatch 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.
| Arg | Type | Required | Notes |
|---|---|---|---|
categories | object | at least one | Outer 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_id | string | at least one | Numeric 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_deviceRegister 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.
| Arg | Type | Required | Notes |
|---|---|---|---|
subscription | object | yes | { 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_deviceRemove 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.
| Arg | Type | Required | Notes |
|---|---|---|---|
endpoint | string (URL) | one of | The push endpoint URL of the device to remove (preferred). |
subscription | object | one of | Alternatively 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" }
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:
sk_live_… / sk_test_…) — create one in your three.ws dashboard, or