Whooing MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Whooing MCPShow my spending by category for this month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
whooing-mcp
MCP server for Whooing (후잉) personal finance — manage transactions, view spending, balance sheets, budgets, and more.
Setup
1. Get API Credentials
Go to Whooing App Settings
Note your
app_id,token, andsignatureFind your
section_idfrom the API or URL
2. Configure Environment
export WHOOING_APP_ID=3
export WHOOING_TOKEN=your_token
export WHOOING_SIGNATURE=your_signature
export WHOOING_SECTION_ID=your_section_idOr create a .env file (see .env.example).
Related MCP server: Python Xero MCP Server for BYB
Usage
stdio mode (Claude Code, Claude Desktop)
npx whooing-mcpHTTP mode (daemon)
npx whooing-mcp --http --port 8182Claude Code config (~/.mcp.json)
{
"mcpServers": {
"whooing": {
"command": "npx",
"args": ["whooing-mcp"],
"env": {
"WHOOING_APP_ID": "3",
"WHOOING_TOKEN": "...",
"WHOOING_SIGNATURE": "...",
"WHOOING_SECTION_ID": "..."
}
}
}
}Claude Desktop config
{
"mcpServers": {
"whooing": {
"command": "npx",
"args": ["whooing-mcp"],
"env": {
"WHOOING_APP_ID": "3",
"WHOOING_TOKEN": "...",
"WHOOING_SIGNATURE": "...",
"WHOOING_SECTION_ID": "..."
}
}
}
}Tools
Tool | Description | Parameters |
| Profit & loss (spending/income by category) |
|
| Transaction list with account names; supports client-side filters |
|
| Search-focused transaction lookup |
|
| Single transaction lookup by ID |
|
| Find likely duplicate transactions in a date range |
|
| Account-focused transaction summary |
|
| Balance sheet (assets, liabilities, capital) |
|
| Budget status |
|
| Full account list |
|
| List all sections (가계부) | (none) |
| Daily income/expense overview by month |
|
| Month-by-month income, expense, net amount, and transaction count |
|
| Saved frequent transaction templates |
|
| Recent unique items for autocomplete (60 days) |
|
| Create a new transaction entry |
|
| Create multiple transaction entries |
|
| Update an existing entry |
|
| Delete an entry |
|
Dates use
YYYYMMDDformat. Default: current month (1st to today).Calendar months use
YYYYMMformat. Default: current month.whooing_entriesfilters are applied after fetching the date-range results from Whooing. Use a largerlimitwhen searching busy periods.whooing_search_entriesuses Whooing's server-side filters first (item,memo, account, amount range) and paginates with themaxcursor when needed.account_namematches account titles case-insensitively, soaccount_name: "Game"can narrow results to a game expense category without looking up its account ID first.When
account_namematches multiple accounts, search tools split the query per account so each request can still use Whooing's server-side account filter.min_moneyandmax_moneyfilterwhooing_entriesby amount.queryandkeywordsmatch against bothitemandmemo;item_containsandmemo_containstarget one field.itemandmemopass through Whooing's raw search syntax. Use these for exact item matches,*wildcards, item detail parentheses, memo AND terms, and!exclusions.sort_columnacceptsentry_date,item,money,total,l_account_id, orr_account_id;sort_orderacceptsdescorasc.Entry-list date ranges are validated before calling Whooing because
entries.jsonsupports at most one year per request.For efficient broad searches, prefer
item_contains,memo_contains, account filters, and amount filters over generickeywords;queryis optimized as server-side item-or-memo search.whooing_duplicate_candidatesgroups entries with the same date, amount, accounts, and item; setinclude_memoto make memo part of the duplicate key. Use account/item/amount filters to keep duplicate scans efficient.whooing_account_activityaccepts eitheraccount_idoraccount_nameand summarizes only matching entries.Search tools cap internal Whooing requests with
max_api_callsto stay within API rate guidance.whooing_account_activityalso tries Whooing's account-specific aggregate APIs for daily changes, item totals, and client totals.whooing_monthly_summaryusesreport_summary.jsonwithrows_type=monthfor direct monthly income/expense totals.whooing_bulk_add_entriesvalidates account IDs for each row before creating it and reports partial failures.section_iddefaults toWHOOING_SECTION_IDenv var.Write tools resolve account types automatically from the account cache. Use
whooing_accountsto look up account IDs first.
Running as a daemon (macOS launchd)
Create ~/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.plistDevelopment
git clone https://github.com/jmjeong/whooing-mcp.git
cd whooing-mcp
npm install
npm run build
node dist/cli.jsLicense
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jmjeong/whooing-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server