Somiya

app.somiya由 somiya.app 发布v0.1.1更新于 Oct 30, 2026

Your family's Somiya calendar, tasks and lists. Reads; any change waits for you to confirm.

已验证STDIO仅桌面效率与工作流沟通与协作

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手读取家庭 Somiya 日历、任务和购物清单,并提交需你在应用内确认的建议。

可以做什么
  • 读取家庭概览:未来 7 天的日程与到期或逾期任务、成员姓名与角色,以及当前令牌的标签、权限范围、角色和到期时间。
  • 按时间范围搜索日历事件。
  • 列出未完成的家庭任务,以及购物清单及其条目。
  • 提交待确认的任务或购物条目建议,这些建议留在应用内等你确认,工具本身不会创建任何内容。
适用场景
适合家庭用 Somiya 安排日程、并希望助手回答“这周家里有什么安排”或代为起草任务和购物条目的场景。只有令牌权限范围覆盖的工具才会被提供给助手。
运行要求
以 stdio 方式在本机运行,通常通过 npx 启动,需要 Node 20 或更高版本。需要在应用内“设置 → AI 访问”创建令牌,并以环境变量 SOMIYA_TOKEN 传入;读取权限默认开启,suggest:changes 默认关闭。可选 SOMIYA_API_URL 用于覆盖接口地址。仅支持桌面端。
安装前请注意
SOMIYA_TOKEN 可访问家庭日历与任务数据,仅显示一次,90 天后过期,可在应用内随时撤销。建议只有在应用内点击确认后才会成为真实改动,且不提供编辑或删除。你发送给 AI 服务商的内容受该服务商条款约束;Somiya 会统计工具调用次数用于容量规划。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Somiya,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

somiya-mcp

MCP server for Somiya — point your own AI assistant at your family's calendar and tasks.

Your AI proposes. Only you confirm.

The server runs on your machine. Your assistant talks to it, it talks to the Somiya API, and Somiya's servers never see the conversation. The assistant can read what you can see, and it can suggest a task or a shopping item — but a suggestion is only a line of text waiting in the app until you tap confirm. Nothing reaches your family's data without that tap.

Quick start

  1. In the Somiya app: Settings → AI access → Create token. Copy it (it is shown once).
  2. Add this to your MCP client's config:
json
{  "mcpServers": {    "somiya": {      "command": "npx",      "args": ["-y", "somiya-mcp"],      "env": { "SOMIYA_TOKEN": "smcp_..." }    }  }}
  1. Restart the client and ask it "what's on for the family this week?"

Try it without the app

A read-only token for a made-up family, the Riveras, is public, so you can see what your assistant gets before installing anything:

bash
claude mcp add somiya-demo -e SOMIYA_TOKEN=smcp_NDh8cy3ETXdhz37s-_cr8XgctTUYh3QgUMDIDqTy1zI -- npx -y somiya-mcp

Or put it in the config above. It reads their calendar, tasks and shopping lists, and it cannot suggest anything. Everyone who tries it shares the one token, so on a busy day it may answer "too many requests" for a minute.

Tools

ToolNeeds scopeWhat it returns
somiya_whats_next—Events and due/overdue tasks for the next 7 days
somiya_get_family—Member names and roles
somiya_whoami—This token's label, scopes, role, expiry
somiya_search_eventsread:calendarEvents between two timestamps
somiya_list_tasksread:tasksOpen family tasks
somiya_list_shoppingread:tasksShopping lists and their items
somiya_suggest_tasksuggest:changesFiles a task for you to confirm in the app. Creates nothing
somiya_suggest_shopping_itemsuggest:changesFiles an item for you to confirm in the app. Creates nothing

Only the tools your token's scopes cover are advertised — the assistant never sees a tool it would be refused. Started without a token, the server lists every tool and each one answers with how to get a token. Scopes are chosen when you create the token; the read scopes are on by default and suggest:changes is off.

Configuration

VariableDefault
SOMIYA_TOKEN—Required. Minted in the app.
SOMIYA_API_URLhttps://api.somiya.appOverride only for self-hosting or staging.

Privacy

  • Somiya never sees your AI conversation. This process is the only thing that talks to both sides, and it runs on your machine.
  • Your AI provider does see whatever you send it. What you paste into your assistant is governed by that provider's terms — that is your choice and your agreement, not something Somiya can make on your behalf.
  • Revoke any time, from the same screen you created the token on. It stops working on the next call.
  • Tokens expire after 90 days.
  • Somiya counts how often each tool is called, for capacity planning. Those counters record a tool name and a date — no user, no family, no arguments, no results.

Why it cannot write on its own

An assistant that reads untrusted content — a forwarded email, a flyer, a web page — can be steered by that content. Give it a "delete the task" tool and prompt injection stops being a curiosity and starts being destructive. So the boundary is the product: every change goes through a person, in the app.

A suggestion arrives as one line with two buttons. Confirming it runs the same code your own tap runs, with the same permission checks and the same audit trail; dismissing it leaves nothing behind; an unanswered suggestion is dropped after a day. That confirmation is not a setting — there is no "always allow", because an always-allow switch is exactly what would turn an injected instruction into a real change.

Editing and deleting are not offered even as suggestions. An assistant that can propose additions can, at worst, waste your time. One that could propose removals would be asking you to approve losses one tap at a time.

The noise is bounded as well, since a confirmation prompt you stop reading is the same as none: at most ten unanswered suggestions per client, one notification per burst rather than one per item, and your quiet hours are honoured.

Development

bash
pnpm installpnpm build

Requires Node 20+ (uses global fetch).

License

MIT

来源:README.md,提交 12086ba

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:服务器未能启动。

版本历史

1
  1. v0.1.1最新Oct 23, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分