个人财务服务工具

Whooing-MCP是一款用于Whooing个人财务管理的服务器工具,支持交易管理、支出查看、资产负债表、预算等功能。

  • by jmjeong
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jmjeong/whooing-mcp

使用说明

哇mcp

MCP服务器 Whooing(嗡嗡) 个人理财——管理交易、查看支出、资产负债表、预算等。

设置

1.获取API凭据

  1. 首选 Whoing应用程序设置
  2. 注意你的 app_id, token,以及 signature
  3. 找到你的 section_id 从API或URL

2.配置环境

export WHOOING_APP_ID=3
export WHOOING_TOKEN=your_token
export WHOOING_SIGNATURE=your_signature
export WHOOING_SECTION_ID=your_section_id

或者创建一个 .env 文件(参见 .env.example).

用法

stdio模式(克劳德代码、克劳德桌面)

npx whooing-mcp

HTTP模式(守护进程)

npx whooing-mcp --http --port 8182

Claude代码配置(~/.mcp.json)

{
  "mcpServers": {
    "whooing": {
      "command": "npx",
      "args": ["whooing-mcp"],
      "env": {
        "WHOOING_APP_ID": "3",
        "WHOOING_TOKEN": "...",
        "WHOOING_SIGNATURE": "...",
        "WHOOING_SECTION_ID": "..."
      }
    }
  }
}

Claude桌面配置

{
  "mcpServers": {
    "whooing": {
      "command": "npx",
      "args": ["whooing-mcp"],
      "env": {
        "WHOOING_APP_ID": "3",
        "WHOOING_TOKEN": "...",
        "WHOOING_SIGNATURE": "...",
        "WHOOING_SECTION_ID": "..."
      }
    }
  }
}

工具

工具 说明 参数
whooing_pl 损益(按类别划分的支出/收入) start_date?, end_date?, section_id?
whooing_entries 带有账户名称的交易列表;支持客户端筛选器 start_date?, end_date?, limit?, account_ids?, account_name?, l_account_id?, r_account_id?, min_money?, max_money?, item?, memo?, item_contains?, memo_contains?, query?, keywords?, sort_column?, sort_order?, section_id?
whooing_search_entries 以搜索为中心的交易查询 start_date?, end_date?, limit?, account_ids?, account_name?, l_account_id?, r_account_id?, min_money?, max_money?, item?, memo?, item_contains?, memo_contains?, query?, keywords?, sort_column?, sort_order?, section_id?
whooing_entry_detail 按ID查找单笔交易 entry_id, section_id?
whooing_duplicate_candidates 查找日期范围内可能重复的交易 start_date?, end_date?, limit?, account_ids?, account_name?, l_account_id?, r_account_id?, min_money?, max_money?, item?, memo?, item_contains?, memo_contains?, query?, keywords?, sort_column?, sort_order?, include_memo?, min_group_size?, page_limit?, max_pages?, section_id?
whooing_account_activity 以账户为中心的交易摘要 start_date?, end_date?, account_id?, account_name?, limit?, recent_limit?, page_limit?, max_pages?, max_api_calls?, section_id?
whooing_balance 资产负债表(资产、负债、资本) start_date?, end_date?, section_id?
whooing_budget 预算状态 start_date?, end_date?, section_id?
whooing_accounts 完整帐户列表 section_id?
whooing_sections List all sections(家庭)(none)
whooing_calendar 每月每日收入/支出概览 start_month?, end_month?, section_id?
whooing_monthly_summary 逐月收入、支出、净额和交易计数 start_month?, end_month?, section_id?
whooing_frequent_items 保存频繁交易模板 section_id?
whooing_latest_items 最近自动完成的独特项目(60天) section_id?
whooing_add_entry 创建新的交易条目 entry_date, l_account_id, r_account_id, item, money, memo?, section_id?
whooing_bulk_add_entries 创建多个交易条目 entries[], section_id?
whooing_update_entry 更新现有条目 entry_id, entry_date, l_account_id, r_account_id, item, money, memo?, section_id?
whooing_delete_entry 删除条目 entry_id, section_id?
  • 日期使用 YYYYMMDD 格式。默认值:本月(1日到今天)。
  • 日历月使用 YYYYMM 格式。默认值:当月。
  • whooing_entries 在从Whooing获取日期范围结果后应用过滤器。使用更大的 limit 在搜索繁忙时段时。
  • whooing_search_entries 首先使用Whoing的服务器端过滤器(item, memo、账户、金额范围),并用 max 需要时使用光标。
  • account_name 不区分大小写匹配帐户标题,因此 account_name: "Game" 可以将结果缩小到游戏费用类别,而无需先查找其帐户ID。
  • 当 account_name 如果匹配多个帐户,搜索工具会将查询拆分为每个帐户,这样每个请求仍然可以使用Whooing的服务器端帐户过滤器。
  • min_money 和 max_money 过滤器 whooing_entries 按金额。
  • query 和 keywords 对双方的比赛 item 和 memo; item_contains 和 memo_contains 瞄准一个领域。
  • item 和 memo 浏览Whoing的原始搜索语法。使用这些进行精确的项目匹配, * 通配符、项目详细信息括号、备注和术语,以及 ! 除外责任。
  • sort_column 接受 entry_date, item, money, total, l_account_id,或 r_account_id; sort_order 接受 desc 或 asc.
  • 在调用Whooing之前,会验证条目列表日期范围,因为 entries.json 每次请求最多支持一年。
  • 为了高效地进行广泛搜索,请选择 item_contains, memo_contains、帐户筛选器和通用金额筛选器 keywords; query 被优化为服务器端项目或备忘录搜索。
  • whooing_duplicate_candidates 将具有相同日期、金额、帐户和项目的条目分组;集 include_memo 使备忘录成为复制密钥的一部分。使用帐户/项目/金额过滤器来保持重复扫描的效率。
  • whooing_account_activity 接受其中之一 account_id 或 account_name 并且仅总结匹配的条目。
  • 搜索工具将内部Whoing请求限制为 max_api_calls 保持在API价格指导范围内。
  • whooing_account_activity 还尝试Whooing的特定于帐户的聚合API,用于每日更改、项目总计和客户端总计。
  • whooing_monthly_summary 用途 report_summary.json 和 rows_type=month 直接月度收入/支出总额。
  • whooing_bulk_add_entries 在创建每一行之前验证其帐户ID,并报告部分失败。
  • section_id 默认为 WHOOING_SECTION_ID 有人是。
  • 写入工具会自动从帐户缓存中解析帐户类型。使用 whooing_accounts 首先查找帐户ID。

作为守护进程运行(macOS launchd)

创建 ~/Library/LaunchAgents/com.whooing.mcp.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key><string>com.whooing.mcp</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/homebrew/bin/npx</string>
        <string>whooing-mcp</string>
        <string>--http</string>
        <string>--port</string>
        <string>8182</string>
    </array>
    <key>EnvironmentVariables</key>
    <dict>
        <key>WHOOING_APP_ID</key><string>3</string>
        <key>WHOOING_TOKEN</key><string>YOUR_TOKEN</string>
        <key>WHOOING_SIGNATURE</key><string>YOUR_SIGNATURE</string>
        <key>WHOOING_SECTION_ID</key><string>YOUR_SECTION_ID</string>
        <key>PATH</key><string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
    </dict>
    <key>KeepAlive</key><true/>
    <key>RunAtLoad</key><true/>
    <key>StandardOutPath</key><string>/tmp/whooing-mcp.log</string>
    <key>StandardErrorPath</key><string>/tmp/whooing-mcp.err</string>
</dict>
</plist>
chmod 600 ~/Library/LaunchAgents/com.whooing.mcp.plist
launchctl load ~/Library/LaunchAgents/com.whooing.mcp.plist

发展

git clone https://github.com/jmjeong/whooing-mcp.git
cd whooing-mcp
npm install
npm run build
node dist/cli.js

许可证

麻省理工学院