关于 Expense
Expense 是面向个人和账户的收据与里程追踪应用,用于整理记录并导出年度资料。它可从文件、邮件或 MCP 助手接收收据,也支持匹配银行对账单和管理保修记录。
主要功能
- 01从图片、文件和邮件录入收据
- 02提取商户、金额与类别
- 03按 IRS Schedule C 项目归类
- 04按 IRS 费率计算里程
- 05将报告导出为 PDF 或 ZIP
- 06追踪保修并匹配对账单
适用场景
- 01归档来自已连接邮箱的收据
- 02按日期和行程类型记录驾车里程
- 03生成附收据的年度费用报告
- 04将银行对账单与费用记录匹配
MCP 相关
在 https://expense.labnotes.org/mcp 提供 MCP 端点。通过 OAuth 连接的助手可录入收据、记录里程、查询支出、管理报告和匹配银行对账单。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://expense.labnotes.org/mcpclaude mcp add --transport http assaf-expense https://expense.labnotes.org/mcp{"mcpServers":{"assaf-expense":{"type":"http","url":"https://expense.labnotes.org/mcp"}}}在 Cursor 中打开{"servers":{"assaf-expense":{"type":"http","url":"https://expense.labnotes.org/mcp"}}}在 VS Code 中打开{"mcpServers":{"assaf-expense":{"type":"http","url":"https://expense.labnotes.org/mcp"}}}{"mcpServers":{"assaf-expense":{"serverUrl":"https://expense.labnotes.org/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Expense
Expense 是一款无缝的收据追踪解决方案:收据会自动通过电子邮件发送,里程按 IRS 提供的税率计算,智能 AI 助手会帮你录入数据,让你彻底不必操心这些流程。
PRODUCT.md 是指南:介绍产品是什么、如何运作、用户会使用哪些页面、产品架构和数据模型,以及相关术语。本文件是入口页面;那份文档则帮助你了解全貌。
截图



功能介绍
收据可以通过照片、屏幕截图、PDF、剪贴板、已连接的 Fastmail 或 Gmail 邮箱,或 MCP 助手导入;系统会读取每张收据的商家、金额和类别,将其归入 IRS Schedule C 项目,并连同图片一并保存。系统会绘制行车路线,并按行程日期和类型应用 IRS 费率计算费用。年末可将每份报告导出为附有收据的 PDF,也可将所有内容打包为一个 ZIP 文件。将保修文件放到保修页面后,系统会将其保存为记录,你可以按保障到期时间查找。在手机主屏幕上安装后,应用会直接打开费用列表。
免费,无需信用卡,没有广告,也没有付费套餐。不适用于企业费用政策、审批或复式记账。完整介绍以及各页面和相应规则,请参阅 PRODUCT.md。
AI 助手(MCP)
本应用通过 https://expense.labnotes.org/mcp 支持 Model Context Protocol。助手通过 OAuth 连接——你登录后点击“允许”即可——无需 API 密钥。已连接的助手可以录入收据、记录行程、回答有关支出的问题、管理报告,并匹配银行对账单。
// Claude — .mcp.json (no headers needed: the client discovers OAuth)
{
"mcpServers": {
"expense": {
"type": "http",
"url": "https://expense.labnotes.org/mcp"
}
}
}
参考文档见 docs/mcp.md;工具列表见 PRODUCT.md。
账户
登录名为电子邮件地址,使用 scrypt 哈希处理,并通过签名 Cookie 管理会话。所有数据都归属于某个账户;每个账户可以有多位用户;账户之间完全隔离。你可以注册新账户,也可以在“设置”中使用 8 位邀请码加入现有账户。图片键按账户分别命名空间,因此不同账户之间绝不会冲突。更多详情请参阅 PRODUCT.md 和 docs/accounts.md。
构建方式
单个应用、单个 Postgres 数据库,没有 monorepo。React Router v8 以框架模式运行(SSR),URL 树即文件系统;Prisma 8 采用契约优先,因此 prisma/contract.prisma 就是架构文件,不存在迁移文件;图片以字节形式存储在 Postgres 中,而不是对象存储中。应用部署在 Vercel 和 Supabase Postgres 上,推送到 main 即会触发部署。架构图见 PRODUCT.md。
使用 pnpm dev 在本地运行;环境变量、连接池和部署流程详见 docs/operations.md 和 docs/deploy.md。
文档
| 文档 | 包含内容 |
|---|---|
| PRODUCT.md | 产品是什么、如何运作、概览、架构、术语 |
| AGENTS.md | 本项目变更必须遵守的不变量、命令和注意事项 |
| docs/files.md | 每个重要文件的简要说明 |
| docs/operations.md | 环境变量、连接池、机密信息、事件历史 |
| docs/deploy.md | 部署顺序和冒烟测试 |
| docs/extraction.md | 如何读取收据,以及相关限制 |
| docs/receipts-by-email.md | Fastmail 转发流程 |
| docs/email-connections.md | 已连接的邮箱和收件箱审核 |
| docs/reconciliation.md | 将账单与支出进行匹配 |
| docs/accounts.md | 账户、用户、邀请 |
| docs/mcp.md | 面向助手的参考文档 |
| docs/code-style.md · docs/testing.md · docs/dark-mode.md | 约定 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。