yardstick-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | Alias for YARDSTICK_ENV. | |
| YARDSTICK_ENV | No | Which Yardstick to use: production, staging, uat or local (or prod/stage/dev/development); same as --env. Default production. | |
| YARDSTICK_TOKEN | No | Use this bearer token as-is and skip sign-in. | |
| YARDSTICK_API_URL | No | Point at a specific API base URL. Default set by YARDSTICK_ENV. | |
| YARDSTICK_CONFIG_DIR | No | Where the session is stored. Default ~/.config/yardstick-mcp. | |
| YARDSTICK_PUBLIC_URL | No | HTTP mode only: this server's public URL. | |
| YARDSTICK_API_VERSION | No | The API version the tool targets. Default 2026-07-21. | |
| YARDSTICK_ALLOW_WRITES | No | Expose the tools that add holdings and valuations; same as --allow-writes. Default false. | |
| YARDSTICK_CLERK_DOMAIN | No | Point sign-in at a specific domain. Default set by YARDSTICK_ENV. | |
| YARDSTICK_OAUTH_SCOPES | No | OAuth scopes to request. Default openid profile email offline_access. | |
| YARDSTICK_TOKEN_SOURCE | No | Which OAuth token to send: id_token or access_token. Default id_token. | |
| YARDSTICK_TOKEN_COMMAND | No | A command that prints a bearer token, run when one's needed. | |
| YARDSTICK_OAUTH_CLIENT_ID | No | OAuth client id for sign-in. Default is built in per environment. | |
| YARDSTICK_OAUTH_CLIENT_SECRET | No | Only if your OAuth client is a confidential one. | |
| YARDSTICK_OAUTH_REDIRECT_PORT | No | Local port the sign-in redirect comes back on. Default 33418. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_net_worthA | The user's current net worth: total assets, total liabilities and accessible (liquid) assets, with breakdowns by asset group, asset class, liquidity, liability type and liability security. Values are integer minor units (fields ending Minor) with pre-formatted display strings alongside. |
| get_net_worth_historyA | Month-end asset totals over time (with a by-group breakdown per month), for charting how wealth has changed. Note: history covers assets only; liabilities are not included. Defaults to the last 12 months. |
| list_accountsA | The user's connected bank accounts with their latest balances. Pseudo accounts represent manually tracked money rather than a live bank connection. |
| list_holdingsA | All holdings on the balance sheet: assets (property, pensions, investments, savings, valuables) and liabilities (mortgages, loans, credit cards). ownershipPercent is the user's share; latestValue is the most recent valuation. |
| get_holdingA | One holding in full: its valuation history, and for liabilities the terms (rate, term, secured-on links) and recorded payments. |
| search_transactionsA | Search the user's bank transactions with filters and pagination. Amounts are unsigned minor units; |
| aggregate_transactionsA | Group and total transactions server-side: by merchant, category, code and/or one of day/month/year. Returns per-group counts, totalAmountMinor (magnitude of all items) and netAmountMinor (credits minus debits, signed). Minor units; with no period filter the last 3 months are used. The go-to tool for questions like "top categories by spend this quarter" or "monthly spend at Tesco". |
| get_categorisation_statsA | How much of the user's transaction history is categorised: counts and minor-unit totals for user-categorised, auto-categorised (suggestion pending) and uncategorised items, split by direction. Useful for judging how complete category-based analysis will be. |
| get_top_merchantsA | The user's most visited merchants by spend (DEBIT items), with visit counts and category. valueMinor is total spend in minor units over the window. |
| get_merchant_summaryA | Spending profile for one merchant over a window (1m, 3m, 6m, 1y or all): visits, totals, averages, first/last visit, and an anonymous cohort benchmark of what similar users spend there (null when unavailable). Get merchantId from search_transactions or get_top_merchants. |
| get_spending_breakdownB | Per-month income and spending totals broken down by category (minor units, with category labels resolved). Only user-confirmed categories are bucketed; everything else is in |
| get_vitalsA | The user's monthly financial vitals (minor units): monthlySurplus (incomings, outgoings and what's left), steadyOutgoings (with rolling average), addingWealth (amount moved into savings/investments) and emergenciesCovered (months of average outgoings the month-end cash balance would cover). Each section has {personal, household} views; household is null without one. |
| list_categoriesA | Find category ids to filter by. The taxonomy has around 180 entries, so pass Categories are hierarchical (Group > Subgroup > Leaf) and you filter on the leaf ids. A word like "food" spans several branches (eating out, groceries, takeaways), so check the labels and use every id that fits the question. isNetNeutral marks categories left out of spending analysis, such as transfers between the user's own accounts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/YardstickMoney/yardstick-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server