three.ws Notifications
io.github.nirholas由 GitHub 账号 nirholas 发布v0.1.4更新于 Oct 24, 2026
Read the inbox, mark items read, manage delivery preferences, and register Web Push devices.
概览
一个本地 MCP 服务器,让助手读取和整理 three.ws 通知收件箱、调整各类别通知的投递渠道,并管理 Web Push 设备。
- 可以做什么
- 按时间倒序列出收件箱通知,可按类型筛选,并显示未读数和每条通知的已读状态。将单条通知或全部未读通知标记为已读。永久删除单条通知。读取按类别到渠道的投递矩阵。修改销售、提醒、社交、账户等类别的投递偏好,并设置或清除 Telegram 聊天 ID。根据浏览器推送订阅注册或移除 Web Push 设备。
- 适用场景
- 当智能体或其所有者依赖会产生入站事件的 three.ws 账户(如行情提醒、销售、购买回执、社交提及或安全通知),并希望直接在助手中查看和整理这些事件,而不是轮询多个接口时适用。
- 运行要求
- 通过 npx 或 npm 以 stdio 在本地运行,需要 Node 20 或更高版本。需要在 THREE_WS_API_KEY 中提供 three.ws API 密钥或 OAuth 访问令牌(别名 THREE_WS_TOKEN 和 THREE_WS_BEARER)。可选 THREE_WS_BASE 用于自托管或预览部署,THREE_WS_TIMEOUT_MS 用于请求超时。需要访问 three.ws API 的网络连接。
安装
在 SourceWeft 中
- 打开 控制台中的 three.ws Notifications,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
@three-ws/notifications-mcp
Your three.ws notification inbox, delivery preferences, and Web Push devices — from any AI agent.
[npm] [downloads] [license] [node] [MCP Registry] [three.ws]
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
Or run with npx (no install):
Node 20+. Two runtime dependencies (@modelcontextprotocol/sdk, zod).
Quick start
Claude Code, one line:
Claude Desktop / Cursor / any MCP client — add to your MCP config (claude_desktop_config.json, .cursor/mcp.json, .mcp.json):
Restart the client and the seven tools appear. Inspect the surface in a GUI:
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
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.
Example call and response (shape illustration — your inbox contents will differ):
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.
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.
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.
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.
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.
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.
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 access token for the account.
Both are carried as Authorization: Bearer … on every request. Bearer auth is CSRF-exempt server-side, so writes need no extra token. THREE_WS_TOKEN and THREE_WS_BEARER are accepted aliases. Treat the credential like a password — it grants full read/write over the account's inbox and delivery settings.
Configuration
The credential is checked when a tool runs, not at startup — the server boots and advertises its tool surface without one, so tools/list always works.
Errors
A failed tool call returns an MCP error result (isError: true) whose text is a single JSON object:
Reads are always safe to retry. The writes are idempotent by design (mark_read, set_preferences, register_push_device, unregister_push_device re-run to the same state) — only delete_notification is not, and a repeat simply returns not-found.
Related
@three-ws/brain-mcp— the three.ws multi-provider LLM router over MCP.@three-ws/pumpfun-mcp— free, read-only pump.fun + Solana data (the source of manypump_alertevents).@three-ws/irl— the real-world presence layer whose interactions land in theirlcategory.
Links
- Homepage: https://three.ws
- Changelog: https://three.ws/changelog
- Issues: https://github.com/nirholas/three.ws/issues
- License: Apache-2.0. See LICENSE.
Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub
来源:packages/notifications-mcp/README.md,提交 c8f2cde
工具
0版本历史
2- v0.1.4最新Oct 10, 2026
- v0.1.3Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分