mcpField
O
Ownly

Ownly

本地服务
github.com/liuh886生产力24 天前更新

关于 Ownly

Ownly 是本地优先的所有物记录与决策工具,适合希望自行保存和管理个人记录的人。它以带 YAML frontmatter 的 Markdown 文件为数据源,并通过本地 MCP 服务提供受限读取及预览后提交的写入。

主要功能

  1. 01以 Markdown 和 YAML 保存记录
  2. 02追踪物品、经常性支出与体验
  3. 03执行确定性数据健康检查
  4. 04默认只读的本地 MCP 服务
  5. 05预览、备份并提交写入

适用场景

  1. 01记录物品成本、使用情况和生命周期
  2. 02整理订阅及即将到期的续费
  3. 03审阅物品使用或退出后的经验
  4. 04在 Agent 会话中读取本地记录并确认修改

MCP 相关

本地 MCP 服务通过 STDIO 向兼容客户端提供 Ownly 数据读取工具;默认只读。写入需在启动时显式授权,并分别进行预览与提交。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"liuh886-ownly": {
"command": "npx",
"args": [
"-y",
"@ownly-app/mcp"
],
"env": {
"OWNLY_DATA_DIR": "<OWNLY_DATA_DIR>",
"OWNLY_MCP_ALLOW_WRITE": "<OWNLY_MCP_ALLOW_WRITE>",
"OPENROUTESERVICE_API_KEY": "<OPENROUTESERVICE_API_KEY>"
}
}
}
}
启动命令npx -y @ownly-app/mcp
需要配置的环境变量
OWNLY_DATA_DIRAbsolute path to a parent containing Ownly/ or directly to a custom Ownly data root containing Objects/.
OWNLY_MCP_ALLOW_WRITESet to 1 to enable two-phase persistent write commits. Omit for read-only mode.
OPENROUTESERVICE_API_KEY密钥OpenRouteService API key used by local Planner travel-leg refresh and travel-time optimization for walking/driving/bicycling.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@ownly-app/mcp0.7.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Ownly

Obsidian 插件 Web 应用 PWA 状态 许可证:MIT Ko-fi

少一些拥有,多一些生活,更明智地做决定。

中文文档

以本地数据为先的所有权记忆与决策记录簿。

Ownly 可帮助你记录自己拥有什么、花费多少、如何使用,以及从中学到了什么。个人数据以纯 Markdown 和 YAML frontmatter 的形式保存在 Ownly 数据文件夹中。

Ownly 不托管你的数据。你可以自行选择文件的存放位置。

Ownly 数据文件夹可以存放在普通本地目录中,也可以存放在由你控制的个人云服务同步的本地文件夹中。Obsidian 便于查看 Markdown,但使用托管版 Web 应用、已安装的 PWA、Agent CLI 或本地 MCP 服务时,并不需要 Obsidian。

打开 Ownly

入口是否需要 Obsidian?是否需要本地进程?适用场景
GitHub Pages Web 应用否否在受支持的桌面浏览器中立即使用
已安装的 PWA否否通过独立应用窗口启动,并支持离线加载应用外壳
Obsidian 插件是否原生 Vault 集成和直接处理 Markdown
Agent CLI否是确定性脚本编写和经过验证的本地修改
本地 MCP否是为兼容的 Agent 提供有限范围的读取功能,以及需主动启用、提交前预览的维护操作

Web 应用和 PWA 使用相同的浏览器运行环境。安装只会改变启动方式,不会改变数据模型。产品主页本身不是 PWA 界面。

首次使用:选择数据存放位置

如果 Ownly 启动时没有现有文件夹的访问权限,请先选择存储位置,然后创建新数据或打开现有的 Ownly 数据文件夹。

在此设备上

选择普通的本地文件系统文件夹。Ownly 会直接读取和写入该文件夹。除非你在 Ownly 之外配置同步,否则不会进行同步。

在你的个人云文件夹中

选择一个已由 Dropbox、Google Drive、OneDrive、iCloud Drive 或其他你控制的服务同步的本地文件夹。

Ownly 仍使用普通本地文件,不会调用服务商 API、OAuth 或服务商凭据,也不会使用 Ownly 云端镜像或独立的远程文件系统。同步由服务商依据其自身的隐私和安全政策处理。

如果服务商支持仅在线占位文件,请确保该文件夹可离线使用;并且每个 Ownly 数据文件夹只使用一个同步服务商,以减少文件副本冲突。

创建新数据

选择一个父级位置,例如 Documents、Obsidian Vault 根目录、本地个人云文件夹,或一个已命名为 Ownly 的空文件夹。

Ownly 会初始化:

Ownly/
  Objects/
  Accounts/
  Snapshots/
  Reviews/
  Trips/
  Trip Places/
  Trip Visits/
  Trip Legs/
  Trip Expenses/
  Logs/
    Object Experiences/
  Archive/
    Objects/
    Accounts/
    Snapshots/
    Reviews/
    Object Logs/

如果所选文件夹已经命名为 Ownly,Ownly 会直接使用该文件夹,不会创建 Ownly/Ownly。

打开现有数据

选择任何受支持的文件系统位置:

  • 已初始化且包含 Objects/ 的 Ownly 数据根目录;
  • 名为 Ownly 的空文件夹或已初始化文件夹;
  • 包含 Ownly/ 子文件夹的 Obsidian 库;
  • 使用插件所配置 Ownly 数据文件夹的 Obsidian 库;
  • 以上任一位置中的文件夹,且该文件夹由用户自己的服务商在本地同步。

浏览器会请求明确的读写权限。个人 Markdown 文件不会上传到 GitHub Pages,也不会复制到 PWA 服务工作线程缓存中。如果所选文件夹由第三方服务商同步,该服务商可能会独立于 Ownly 上传和同步这些文件。

托管的 Web/PWA 运行环境会使用 Google Analytics 4 衡量 ID G-KXXVS33FQ2 来衡量产品使用情况;如果在构建时配置了 NEXT_PUBLIC_CLOUDFLARE_WEB_ANALYTICS_TOKEN,也可以加载 Cloudflare Web Analytics,以获取汇总流量和 Web Vitals 数据。Ownly 自定义分析事件绝不会包含 Markdown 内容、本地文件名、表单值、对象记录、评审、账户快照、所选文件夹数据、本地路径、推断出的服务商名称或 MCP 工具结果。Obsidian 插件、Agent CLI 和 MCP 运行环境不会加载上述任一 Web 分析服务。

推荐存储方式

独立本地使用:

<My local folder>/
  Ownly/
    Objects/
    Accounts/
    Snapshots/
    Reviews/
    Trips/
    Trip Places/
    Trip Visits/
    Trip Legs/
    Trip Expenses/
    Logs/
    Archive/

在 Obsidian 库中:

<My Obsidian Vault>/
  Ownly/
    Objects/
    Accounts/
    Snapshots/
    Reviews/
    Trips/
    Trip Places/
    Trip Visits/
    Trip Legs/
    Trip Expenses/
    Logs/
    Archive/

在个人云同步的本地文件夹中:

<My Dropbox / Google Drive / OneDrive / iCloud Drive folder>/
  Ownly/
    Objects/
    Accounts/
    Snapshots/
    Reviews/
    Trips/
    Trip Places/
    Trip Visits/
    Trip Legs/
    Trip Expenses/
    Logs/
    Archive/

这三种布局使用相同的 Ownly 数据模型。个人云存储选项不会引入第二种存储后端;外部服务商会同步常规文件系统文件夹。

产品原则

  • 用户掌控存储 — Ownly 不会托管你的个人账本。文件系统文件夹的位置由你决定。
  • 默认本地使用 — 不需要云账户、托管数据库、服务商 OAuth 或强制同步。
  • 原生 Markdown — 记录保持可移植且便于阅读。
  • 以决策为导向 — 观察、购入或放弃、使用、退出和评审。
  • 可恢复的变更 — 归档和恢复与永久删除是不同的操作。
  • 统一数据模型 — Web、PWA、Obsidian、CLI 和 MCP 使用相同的架构和目录结构。
  • 适配事实数据 — 脚本和外部 AI Agent 可以使用确定性数据契约;Ownly 本身不是 AI 助手。

Ownly 跟踪的内容

记录用途
实物购买、使用、成本、状况、退役、转让或丢弃的生命周期
经常性成本订阅或其他重复性支出、计费周期、状态和年化成本
一次性体验计划、预算、实际成本、地点、完成情况和评审
快照特定时间点的净资产和账户余额事实
评审结构化的使用后、退出后、月度或年度反思
对象体验日志仅追加的使用、问题、维护、遗憾、经验、比较或退出事件

面向事实数据的 Agent CLI

Ownly 为脚本和外部 Agent 提供确定性的 JSON 读写命令。它不包含模型 API、嵌入、AI 聊天或生成式建议。

export OWNLY_VAULT=/path/to/location-containing-Ownly

# Recommended (wyqd remains for backward compatibility)
npm run --silent ownly -- object list --json
# Legacy alias
npm run --silent wyqd -- object list --json
npm run --silent wyqd -- object get --id <id> --json
npm run --silent wyqd -- object history --id <id> --json
npm run --silent wyqd -- object review-needed --json
npm run --silent wyqd -- recurring list --active --json
npm run --silent wyqd -- summary --json

参见:

CLI 数据位置可以指向 Obsidian 库或其他包含 Ownly 数据文件夹的文件系统位置,包括由用户掌控的同步本地文件夹。

Agent / MCP

Ownly 还为 Codex、Claude Code 及其他能够启动本地 STDIO 进程的 MCP 客户端提供本地优先的 MCP 服务。默认情况下,该服务为只读;持久化修改需要明确的启动权限,并且必须单独调用预览和提交。

MCP 服务是基于经过验证的 Ownly 数据模型构建的适配器。它不会创建第二个数据库、托管镜像或内置 AI 助手。

MCP 工具涵盖:

  • 数据摘要和 Doctor 健康检查;
  • 对象搜索和范围受限的对象事实;
  • 包含审查和追加式经验日志的对象历史记录;
  • 当前有效的定期费用;
  • 即将续订的订阅;
  • 按付款账户分组、并将不同货币分开计算的定期费用;
  • 确定性的待审查记录。
  • Planner 行程、访问记录、预算估算和日历规划,以及两阶段日程编辑和本地 OpenRouteService 路线刷新/优化。
  • 选择加入的创建和更新、生命周期变更、追加式日志、审查、快照,以及可恢复的归档/恢复;
  • 短期的变更前/变更后预览、写入前备份、过期写入冲突检测,以及幂等提交。

事实来源始终是用户选择的 Ownly 数据文件夹。MCP 工具返回的事实可能进入所连接的外部 Agent 的上下文,因此 Ownly 不会声称在 Agent 会话期间每条选定的事实都始终保留在设备上。

使用 npx -y @ownly-app/mcp --data-dir <vault-or-data-root> 安装(源码位于 packages/mcp)。请参阅 Ownly MCP 指南,了解 Codex 和 Claude Code 的设置、隐私边界及提示词示例。

当前运行时状态

区域状态
产品主页静态双语产品说明,内嵌交互式预览
托管 Web 应用静态 GitHub Pages 运行时,支持用户选择文件系统
已安装的 PWA仅限应用路由的安装界面、独立启动和缓存的应用外壳
Obsidian 插件基于共享 Ownly 数据模型的原生 Vault 界面
Agent CLI稳定且类型严格的事实就绪 JSON 契约
本地 MCP默认只读;可选择在规范的 Ownly 证据存储中进行两阶段写入
数据存储用户控制的文件系统文件夹中的纯 Markdown + YAML frontmatter
修改安全性验证、预览/提交确认、原子写入、安全备份、审计日志、冲突检测、归档/恢复及 CI 契约

当前验证情况和已知覆盖范围缺口详见 质量基线。

浏览器支持

直接访问文件夹使用 File System Access API。

  • 推荐:最新版桌面版 Chrome 或 Microsoft Edge。
  • 不受支持的浏览器可以查看产品页面和内嵌预览,但无法连接真实的 Ownly 数据文件夹。
  • 移动设备上的文件夹直接访问不属于生产支持目标。
  • 重启或重置权限后,可能需要重新授予浏览器权限。
  • 个人云文件夹必须由其提供商作为可用的本地文件系统文件夹提供;Ownly 不提供远程驱动器 API 备用方案。

请参阅 Web 运行时,了解隐私边界、PWA 行为和部署详情。

Obsidian 插件

可从 Obsidian 社区插件中安装:

👉 安装 Ownly

对于 Web/PWA 用户,插件是可选的。只有在实际的 Vault 或 Obsidian 运行时中才使用术语 Obsidian Vault;跨运行时的存储术语是 Ownly 数据文件夹。

数据健康状况

Ownly 内置确定性的 Doctor 检查,可发现以下问题:

  • ID 重复;
  • 不受支持的架构版本;
  • 无效的费用或日期;
  • 缺失的对象/审查引用;
  • 过期的快照;
  • 缺失的数据目录。

这些检查针对 Ownly 事实和文件系统可访问性进行。Doctor 不会检查云服务提供商账户,也不会使用 AI。

文档

开发

npm ci
npm run validate
npm run test
npm run test:e2e:data
npm run test:mcp
npm run wyqd -- --vault <path> object list --json

仅针对 MCP 特定变更,才会额外运行 MCP 包验证:

npm install --prefix packages/mcp --ignore-scripts --no-audit --no-fund
npm run build --prefix packages/mcp
node packages/mcp/dist/index.js --help
(cd packages/mcp && npm pack --dry-run)

许可证

MIT。请参阅 LICENSE。Ownly 不托管个人账本数据。用户选择的文件系统同步提供商或外部 MCP 客户端可能会根据其自身的隐私和安全政策处理数据。托管的 Web/PWA 可能会使用 GA4 收集有限的产品采用情况事件,并使用 Cloudflare Web Analytics 收集汇总流量和 Web Vitals;Obsidian 插件、CLI 和 MCP 运行时均不会加载这两种分析服务。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。