{
  "_generated": "DO NOT EDIT. Generated by sf1/hosted-mcp/cmd/gen-tool-manifest.",
  "tools": [
    {
      "name": "advance_test_clock",
      "description": "Moves a test clock forward using the clock.id returned by create_test_clock or read_test_clock. Time cannot move backwards; transactions and goal contributions scheduled up to the new time become posted in the clock snapshot.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "frozenTime": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "frozenTime"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Advance test clock"
      }
    },
    {
      "name": "create_account",
      "description": "Creates a new account for the authenticated user.\n\nRequired field: name (or a natural-language sentence like \"create a savings account for an emergency fund\").\nCasual speech is fine: checking / savings / credit card / emergency fund are inferred.\n\"Open a credit card\" creates a credit account — not a spendable budget or goal.\nVague prompts like \"add an account\" should be clarified (ask checking vs savings vs credit).\nIf a similar account already exists, this tool refuses the duplicate and returns the existing name.\n\nAfter creation, confirm in plain language (e.g. \"Created Emergency Fund\"). For follow-ups, pass accountName with that display name (e.g. log expenses on Emergency Fund).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountSubtype": {
            "type": [
              "null",
              "string"
            ]
          },
          "accountType": {
            "type": [
              "null",
              "string"
            ]
          },
          "assetType": {
            "type": [
              "null",
              "string"
            ]
          },
          "countryId": {
            "type": [
              "null",
              "integer"
            ]
          },
          "debtInterestRate": {
            "type": [
              "null",
              "number"
            ]
          },
          "defaultCurrency": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "fuelEfficiency": {
            "type": [
              "null",
              "number"
            ]
          },
          "giftCardVendorId": {
            "type": [
              "null",
              "string"
            ]
          },
          "giftCardVendorName": {
            "type": [
              "null",
              "string"
            ]
          },
          "governmentAccountType": {
            "type": [
              "null",
              "string"
            ]
          },
          "gracePeriod": {
            "type": [
              "null",
              "string"
            ]
          },
          "industryAccountRateId": {
            "type": [
              "null",
              "string"
            ]
          },
          "interestRecurrenceRate": {
            "type": [
              "null",
              "string"
            ]
          },
          "investmentType": {
            "type": [
              "null",
              "string"
            ]
          },
          "isVariableInterestRate": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "name": {
            "type": "string"
          },
          "positionOrder": {
            "type": [
              "null",
              "integer"
            ]
          },
          "savingInterestRate": {
            "type": [
              "null",
              "number"
            ]
          },
          "stockPrice": {
            "type": [
              "null",
              "number"
            ]
          },
          "stockQuantity": {
            "type": [
              "null",
              "number"
            ]
          },
          "stockSymbol": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create account"
      }
    },
    {
      "name": "create_expense_projection",
      "description": "Creates an expense projection (expected future spending).\n\nRequires name. The name may be a natural-language request (e.g. \"Add a $2000/month rent expense projection\"): the amount ($2000, $2k), repeatFrequency (MONTHLY or YEARLY) and category are inferred from it, startMonth defaults to the current month, and the stored name is cleaned (\"Rent\").\nIf no amount is given or inferred, or the cadence is weekly/biweekly (unsupported), it returns guidance instead of creating.\nstartMonth is ISO 8601 (e.g. 2024-01-01T00:00:00Z). amount is cents. repeatFrequency is NO_REPEAT, MONTHLY, YEARLY, or CUSTOM.\nAfter creation, call list_expense_projections to verify or get_financial_plan for the full plan.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "amount": {
            "type": "integer"
          },
          "category": {
            "type": "string"
          },
          "customRepeatFrequency": {
            "additionalProperties": false,
            "properties": {
              "frequencyAmount": {
                "type": "integer"
              },
              "frequencyUnit": {
                "type": "string"
              }
            },
            "required": [
              "frequencyUnit",
              "frequencyAmount"
            ],
            "type": [
              "null",
              "object"
            ]
          },
          "endMonth": {
            "type": [
              "null",
              "string"
            ]
          },
          "name": {
            "type": "string"
          },
          "overrides": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "amount": {
                  "type": "integer"
                },
                "customRepeatFrequency": {
                  "additionalProperties": false,
                  "properties": {
                    "frequencyAmount": {
                      "type": "integer"
                    },
                    "frequencyUnit": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "frequencyUnit",
                    "frequencyAmount"
                  ],
                  "type": [
                    "null",
                    "object"
                  ]
                },
                "endMonth": {
                  "type": [
                    "null",
                    "string"
                  ]
                },
                "repeatFrequency": {
                  "type": "string"
                },
                "startMonth": {
                  "type": "string"
                }
              },
              "required": [
                "startMonth",
                "amount",
                "repeatFrequency"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "repeatFrequency": {
            "type": "string"
          },
          "startMonth": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create expense projection"
      }
    },
    {
      "name": "create_goal",
      "description": "Creates a new saving goal for the authenticated user.\n\nRequired fields: name (amount is inferred when omitted).\namount and contributors[].contributorAmount are in CENTS, not dollars: $10,000 = 1000000.\nMCP defaults when omitted:\n  • goalType defaults to GENERAL_SAVINGS (HOME_PURCHASE when the name implies property)\n  • amount inferred from purchase tier (vehicle, luxury asset, experience, etc.), an explicit $ amount in the name (e.g. \"$50k\"), or spending history for emergency funds\n  • maturityDate from relative phrases (e.g. \"in 18 months\"), purchase tier, or HOME_PURCHASE age/location benchmarks\n  • contributorAmount defaults to amount\n  • HOME_PURCHASE without preferences: infers down payment from user age (or the stated timeline), location, and appreciation benchmarks; an explicit amount is used as the down payment\n  • Emergency-fund names without amount: infers ~3 months of average recent spending when available\n\naccountId, when provided, must belong to the authenticated user (owner or collaborator).\nThe goal is created with the authenticated user as its only contributor, as OWNER_ROLE: contributors may only reference the authenticated user (other identities are rejected), and a role given for that entry is ignored.\n\nUse this when users want to save toward a target (yacht, car, wedding, house, emergency fund, etc.).\nFor HOME_PURCHASE or CAR_PURCHASE goals, include the matching preference object when you have explicit values.\nAfter creation, use read_goal with response.savingGoalId or list_goals to verify.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountId": {
            "type": [
              "null",
              "string"
            ]
          },
          "amount": {
            "type": [
              "null",
              "number"
            ]
          },
          "carPurchasePreferences": {
            "additionalProperties": false,
            "properties": {
              "autoLoanPreferences": {
                "additionalProperties": false,
                "properties": {
                  "amortizationDuration": {
                    "type": "number"
                  },
                  "downPaymentAmount": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "downPaymentPercentage": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "interestRatePercentage": {
                    "type": "number"
                  },
                  "loanDurationTimeInterval": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "interestRatePercentage",
                  "amortizationDuration"
                ],
                "type": [
                  "null",
                  "object"
                ]
              }
            },
            "type": [
              "null",
              "object"
            ]
          },
          "contributors": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "contributions": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "amount": {
                        "type": "number"
                      },
                      "date": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "date",
                      "amount"
                    ],
                    "type": "object"
                  },
                  "type": [
                    "null",
                    "array"
                  ]
                },
                "contributorAmount": {
                  "type": "number"
                },
                "role": {
                  "type": "string"
                },
                "userId": {
                  "type": "string"
                }
              },
              "required": [
                "userId",
                "role",
                "contributorAmount"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "debtPaymentRecurrenceRate": {
            "type": [
              "null",
              "string"
            ]
          },
          "goalImageId": {
            "type": [
              "null",
              "string"
            ]
          },
          "goalType": {
            "type": [
              "null",
              "string"
            ]
          },
          "homePurchasePreferences": {
            "additionalProperties": false,
            "properties": {
              "mortgagePreferences": {
                "additionalProperties": false,
                "properties": {
                  "amortizationDuration": {
                    "type": "number"
                  },
                  "downPaymentAmount": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "downPaymentPercentage": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "interestRatePercentage": {
                    "type": "number"
                  },
                  "loanDurationTimeInterval": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "interestRatePercentage",
                  "amortizationDuration"
                ],
                "type": [
                  "null",
                  "object"
                ]
              }
            },
            "type": [
              "null",
              "object"
            ]
          },
          "loanPreferences": {
            "additionalProperties": false,
            "properties": {
              "amortizationDuration": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "downPaymentAmount": {
                "type": "number"
              },
              "downPaymentPercentage": {
                "type": "number"
              },
              "interestRatePercentage": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "loanDurationTimeInterval": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "required": [
              "downPaymentAmount",
              "downPaymentPercentage"
            ],
            "type": [
              "null",
              "object"
            ]
          },
          "maturityDate": {
            "type": [
              "null",
              "string"
            ]
          },
          "name": {
            "type": "string"
          },
          "numberOfChildren": {
            "type": [
              "null",
              "integer"
            ]
          },
          "startSavingsDate": {
            "type": [
              "null",
              "string"
            ]
          },
          "targetAmount": {
            "type": [
              "null",
              "number"
            ]
          },
          "targetDate": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create goal"
      }
    },
    {
      "name": "create_income_projection",
      "description": "Creates an income projection (expected future income).\n\nRequires name. The name may be a natural-language request (e.g. \"Add a $5000/month salary income projection\"): the amount ($5000, $5k), repeatFrequency (MONTHLY or YEARLY) and category are inferred from it, startMonth defaults to the current month, and the stored name is cleaned (\"Salary\").\nIf no amount is given or inferred, or the cadence is weekly/biweekly (unsupported), it returns guidance instead of creating.\nstartMonth is ISO 8601 (e.g. 2024-01-01T00:00:00Z). amount is cents. repeatFrequency is NO_REPEAT, MONTHLY, YEARLY, or CUSTOM.\nAfter creation, call list_income_projections to verify or get_financial_plan for the full plan.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "amount": {
            "type": "integer"
          },
          "category": {
            "type": "string"
          },
          "customRepeatFrequency": {
            "additionalProperties": false,
            "properties": {
              "frequencyAmount": {
                "type": "integer"
              },
              "frequencyUnit": {
                "type": "string"
              }
            },
            "required": [
              "frequencyUnit",
              "frequencyAmount"
            ],
            "type": [
              "null",
              "object"
            ]
          },
          "endMonth": {
            "type": [
              "null",
              "string"
            ]
          },
          "name": {
            "type": "string"
          },
          "overrides": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "amount": {
                  "type": "integer"
                },
                "customRepeatFrequency": {
                  "additionalProperties": false,
                  "properties": {
                    "frequencyAmount": {
                      "type": "integer"
                    },
                    "frequencyUnit": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "frequencyUnit",
                    "frequencyAmount"
                  ],
                  "type": [
                    "null",
                    "object"
                  ]
                },
                "endMonth": {
                  "type": [
                    "null",
                    "string"
                  ]
                },
                "repeatFrequency": {
                  "type": "string"
                },
                "startMonth": {
                  "type": "string"
                }
              },
              "required": [
                "startMonth",
                "amount",
                "repeatFrequency"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "repeatFrequency": {
            "type": "string"
          },
          "startMonth": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create income projection"
      }
    },
    {
      "name": "create_invoice",
      "description": "Creates a draft or sent invoice. Requires accountId from list_accounts plus line items and dates (ISO 8601). accountId (when you have a single account or one named Main Checking), status and dates are inferred when omitted; currency defaults to the account's currency. clientName and the amount are NEVER invented — if they are missing this tool returns guidance asking you to clarify with the user.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountId": {
            "type": "string"
          },
          "clientName": {
            "type": "string"
          },
          "contactDetails": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "deliveryMethod": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "dueDate": {
            "type": "string"
          },
          "issuedAtDate": {
            "type": "string"
          },
          "items": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "currency": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "discount": {
                  "type": "number"
                },
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "quantity": {
                  "type": "integer"
                },
                "taxRate": {
                  "type": "number"
                },
                "unitPrice": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name",
                "description",
                "unitPrice",
                "currency",
                "quantity",
                "taxRate",
                "discount"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "reminderFrequency": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "subtotal": {
            "type": "number"
          },
          "totalAmount": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create invoice"
      }
    },
    {
      "name": "create_life_plan",
      "description": "Creates a new life plan — the top-level container for saving goals, income projections, and expense projections.\n\nRequires name (treated as the display label — not rewritten server-side).\nannualInflationRate defaults to 0.03 (3%) when omitted. currentSavings is in cents (e.g. 250000 = $2,500); defaults to 0.\nIf a plan with the same name (case-insensitive) already exists, nothing is created and guidance points to the existing plan.\nThere is no edit/delete life plan API; create carefully. After creation, call read_life_plan or get_financial_plan.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "annualInflationRate": {
            "type": [
              "null",
              "number"
            ]
          },
          "currentSavings": {
            "type": "number"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "currentSavings"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create life plan"
      }
    },
    {
      "name": "create_rule",
      "description": "Creates a transaction automation rule with optional conditions and at least one action. If conditions/actions are omitted, MCP infers vendor match and category actions from the name (e.g. \"Auto-categorize Starbucks as Food \u0026 Drink\"). Rules are limited to 100 per user and may not duplicate an existing rule's conditions and actions.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "actions": {
            "additionalProperties": false,
            "properties": {
              "updateTransactionActions": {
                "additionalProperties": false,
                "properties": {
                  "transaction": {
                    "additionalProperties": false,
                    "properties": {
                      "category": {
                        "type": [
                          "null",
                          "string"
                        ]
                      },
                      "categoryId": {
                        "type": [
                          "null",
                          "string"
                        ]
                      },
                      "description": {
                        "type": [
                          "null",
                          "string"
                        ]
                      },
                      "isExcludedFromAnalytics": {
                        "type": [
                          "null",
                          "boolean"
                        ]
                      },
                      "name": {
                        "type": [
                          "null",
                          "string"
                        ]
                      },
                      "tagIds": {
                        "items": {
                          "type": "string"
                        },
                        "type": [
                          "null",
                          "array"
                        ]
                      }
                    },
                    "required": [
                      "tagIds"
                    ],
                    "type": "object"
                  },
                  "transactionFieldMasks": {
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "path": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "path"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "null",
                      "array"
                    ]
                  }
                },
                "required": [
                  "transaction",
                  "transactionFieldMasks"
                ],
                "type": "object"
              }
            },
            "required": [
              "updateTransactionActions"
            ],
            "type": [
              "null",
              "object"
            ]
          },
          "conditions": {
            "additionalProperties": false,
            "properties": {
              "accountId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "amountRange": {
                "additionalProperties": false,
                "properties": {
                  "max": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "min": {
                    "type": [
                      "null",
                      "number"
                    ]
                  }
                },
                "type": [
                  "null",
                  "object"
                ]
              },
              "dateRange": {
                "additionalProperties": false,
                "properties": {
                  "endDate": {
                    "type": [
                      "null",
                      "string"
                    ]
                  },
                  "startDate": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "type": [
                  "null",
                  "object"
                ]
              },
              "vendorId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "vendorName": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": [
              "null",
              "object"
            ]
          },
          "isActive": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "isIncome": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create rule"
      }
    },
    {
      "name": "create_saved_filter",
      "description": "Creates a saved transaction filter with name and filterCriteria (accounts, categories, tags, date range, etc.). If filterCriteria is omitted or empty, MCP infers type and categories from the name; supplied criteria are used as given.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "filterCriteria": {
            "additionalProperties": false,
            "properties": {
              "accountIds": {
                "items": {
                  "type": "string"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "amount": {
                "additionalProperties": false,
                "properties": {
                  "maxValue": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "minValue": {
                    "type": [
                      "null",
                      "number"
                    ]
                  }
                },
                "type": [
                  "null",
                  "object"
                ]
              },
              "categories": {
                "items": {
                  "type": "string"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "currencies": {
                "items": {
                  "type": "string"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "endDate": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "hasAttachment": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "hasDescription": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "hasRepeat": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "hasSplit": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "includeUntagged": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "sortBy": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "startDate": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "tags": {
                "items": {
                  "type": "string"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "type": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "vendors": {
                "items": {
                  "type": "string"
                },
                "type": [
                  "null",
                  "array"
                ]
              }
            },
            "type": [
              "null",
              "object"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create saved filter"
      }
    },
    {
      "name": "create_shared_account",
      "description": "Creates a new shared account: family (accountType HOUSEHOLD) or enterprise (accountType GROUP).\n\nMCP infers accountType and display name from natural-language intent when accountType is omitted (e.g. roommate/family → HOUSEHOLD, startup/team → GROUP). If the type cannot be inferred, it asks which one to create.\nWhen accountType is omitted, an existing HOUSEHOLD or GROUP account with the same name is reported instead of creating a duplicate.\ninvitedEmails defaults to [] when omitted. Each invite needs email and role (COORGANIZER, EDITOR, or VIEWER).\nAfter creation, call read_shared_account or list_shared_accounts to verify.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountType": {
            "type": "string"
          },
          "invitedEmails": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "email": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                }
              },
              "required": [
                "email",
                "role"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create shared account"
      }
    },
    {
      "name": "create_tag",
      "description": "Creates a new tag for labeling transactions.\n\nNatural-language name values are supported (e.g. \"I need to track client dinners\" → Client Dinners). Any other name is used exactly as given.\n\nAfter creation, call list_tags to get tag.id for create_transaction or list_transactions.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create tag"
      }
    },
    {
      "name": "create_test_clock",
      "description": "Creates a disposable, identity-owned simulation for agent testing. Supply RFC 3339 timestamps; scheduled events must fall between frozenTime and maxTime. Accepts at most 100 transactions and 25 goals with up to 100 contributions each. Transaction types are INCOME or EXPENSE; names are 1-120 characters, amounts are positive and at most 1000000000, currencies are three uppercase letters, and categories are at most 80 characters. Goal targets are positive and at most 1000000000; initial amounts cannot exceed targets; contribution amounts are positive and at most 1000000000. frozenTime must be within ten years of now; maxTime is ten years after frozenTime. Supply a frozenTime and scheduled synthetic transactions and goal contributions. Only clock readback exposes these records; they never touch real accounts, transactions, goals, or bank connections. Clocks expire after seven days.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "frozenTime": {
            "type": "string"
          },
          "goals": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "contributions": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "amount": {
                        "type": "number"
                      },
                      "at": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "at",
                      "amount"
                    ],
                    "type": "object"
                  },
                  "type": [
                    "null",
                    "array"
                  ]
                },
                "initialAmount": {
                  "type": "number"
                },
                "name": {
                  "type": "string"
                },
                "targetAmount": {
                  "type": "number"
                }
              },
              "required": [
                "name",
                "targetAmount"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "transactions": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "amount": {
                  "type": "number"
                },
                "at": {
                  "type": "string"
                },
                "category": {
                  "type": "string"
                },
                "currency": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "at",
                "name",
                "amount",
                "currency",
                "type"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create test clock"
      }
    },
    {
      "name": "create_time_log",
      "description": "Creates a time-tracking entry. Requires startTime (ISO 8601), or notes with an explicit duration like '2 hours', '1h30m' or '45 minutes'. When startTime is omitted and notes contain a duration, the entry starts at 09:00 on the day the notes name (yesterday, else today) in timeZone (UTC if unset) and lasts that duration. MCP never invents a duration. Notes starting with log/record/track/add/enter are shortened to the activity; other notes are kept verbatim. userId is set automatically.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "addressId": {
            "type": "string"
          },
          "billable": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "currency": {
            "type": "string"
          },
          "endTime": {
            "type": [
              "null",
              "string"
            ]
          },
          "hourlyRate": {
            "type": [
              "null",
              "number"
            ]
          },
          "latitude": {
            "type": [
              "null",
              "number"
            ]
          },
          "longitude": {
            "type": [
              "null",
              "number"
            ]
          },
          "notes": {
            "type": "string"
          },
          "startTime": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "taskId": {
            "type": "string"
          },
          "timeZone": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create time log"
      }
    },
    {
      "name": "create_transaction",
      "description": "Creates a new transaction for the authenticated user on one of their accounts.\n\nRequired fields: name and amount.\ncategory, accountId, and transactedAt can be omitted for intent-first MCP usage defaults.\n\n⚠️  GOLDEN RULE — NEVER infer, guess, default, or invent ANY required field.\nEvery required field must come DIRECTLY from what the user said. If the user did not\nclearly provide a field, STOP and ask them for it — do not proceed with a substitute.\nMCP intent defaults:\n  • If category is omitted, infer it from the transaction name and amount (e.g. \"wireless headphones\" =\u003e GENERAL_MERCHANDISE).\n  • If transactedAt is omitted, default to today (RFC 3339).\n  • If accountId is omitted, default to the account named \"Main Checking\" when available.\n    If \"Main Checking\" is not available: use the only accessible account when exactly one exists.\n    If still ambiguous, ask the user to choose an account.\n\nEdge-case parsing rule for purchases:\n  • If the user gives a TOTAL amount plus an item/service (e.g. \"spent $300 on headphones\" or \"bought $300 headphones\"),\n    treat both as the same intent: a single purchase with that item name and amount -30000 (cents).\n  • If quantity is NOT explicitly stated, assume default quantity = 1.\n  • Do NOT split total into unit price × quantity unless the user explicitly gives quantity or per-item pricing.\n\nNatural-language name is OK (e.g. name=\"Log $5 coffee\") — amount/name/category are inferred.\nA trailing \"on \u003caccount\u003e\" in the name (e.g. \"Log $5 coffee on checking\") selects that account when it matches one.\nOptional accountName resolves the account without an ID; an unknown or ambiguous accountName asks which account.\nIf an identical name+amount exists on the same account within 24 hours, this asks before doubling up unless confirmDuplicate=true.\n\nExamples of what is NOT allowed:\n  • User says \"add a coffee transaction\" (no amount) → DO NOT guess an amount. Ask: \"How much was it?\"\n  • User says \"Log $4.50\" (no description) → DO NOT invent a name. Ask: \"What was it for?\"\n  • User says \"my account\" with multiple accounts → DO NOT pick the default. Call list_accounts and ask which one.\n\nPer-field rules:\n  • accountId: the account the USER explicitly chose. Vague reference + multiple accounts → ask.\n  • name: a specific label the user gave (e.g. \"Coffee\", \"Rent\"). Never a placeholder like \"Transaction\".\n  • amount: the exact amount the user stated, in cents ($4.50 → -450 for an expense). Never 0 and never a guess.\n  • category: inferred when omitted; informal names (e.g. \"food\", \"groceries\") auto-map to the closest system category (FOOD_AND_DRINK).\n  • transactedAt: the date the user gave, as RFC 3339. \"today\" is fine to resolve to today's date.\n\nRESOLVING MISSING CONTEXT — call the appropriate tool before retrying:\n  • accountId unknown → call list_accounts; use account.id.\n  • category unclear  → call list_categories; use category.name (only if inference is not suitable).\n  • tagIds unknown    → call list_tags; use tag.id values.\n\nAmounts are in cents. Sign convention: negative for expenses, positive for income.\ntype (INCOME, EXPENSE, TRANSFER) is optional and inferred from amount/category when omitted.\nfileIds defaults to [] when omitted.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountId": {
            "type": [
              "null",
              "string"
            ]
          },
          "accountName": {
            "type": [
              "null",
              "string"
            ]
          },
          "amount": {
            "type": [
              "null",
              "number"
            ]
          },
          "appleCardTransaction": {
            "additionalProperties": false,
            "properties": {
              "transactionId": {
                "type": "string"
              }
            },
            "required": [
              "transactionId"
            ],
            "type": [
              "null",
              "object"
            ]
          },
          "category": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ]
          },
          "confirmDuplicate": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "cronExpression": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ]
          },
          "expenseCategory": {
            "type": [
              "null",
              "string"
            ]
          },
          "fileIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "incomeCategory": {
            "type": [
              "null",
              "string"
            ]
          },
          "isExcludedFromAnalytics": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "lineItems": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "amount": {
                  "type": "number"
                },
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name",
                "amount"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "name": {
            "type": "string"
          },
          "subcategory": {
            "type": [
              "null",
              "string"
            ]
          },
          "tagIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "tagNames": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "transactedAt": {
            "type": [
              "null",
              "string"
            ]
          },
          "type": {
            "type": [
              "null",
              "string"
            ]
          },
          "vendorId": {
            "type": [
              "null",
              "string"
            ]
          },
          "vendorName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "openWorldHint": false,
        "title": "Create transaction"
      }
    },
    {
      "name": "delete_account",
      "description": "Deletes one account by accountId for the authenticated user.\n\nUse this only when accountId is explicit (from read_account, list_accounts, or create_account output).\nIf accountId is unknown, call list_accounts first.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountId": {
            "type": "string"
          }
        },
        "required": [
          "accountId"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete account"
      }
    },
    {
      "name": "delete_file",
      "description": "Deletes a file by fileId from list_files. If fileId is unknown, pass fileName: only an exact name match (case-insensitive, extension optional) is deleted; otherwise the tool returns the candidate files to ask about.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "fileId": {
            "type": "string"
          },
          "fileName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete file"
      }
    },
    {
      "name": "delete_goal",
      "description": "Deletes one saving goal by savingGoalId for the authenticated user.\n\nGet savingGoalId from list_goals, read_goal, or create_goal, or pass goalName with the exact goal name.\ngoalName auto-resolves only on an exact (case-insensitive) match; partial matches return the candidates to confirm.\nIf savingGoalId is unknown, call list_goals first.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "goalName": {
            "type": [
              "null",
              "string"
            ]
          },
          "savingGoalId": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete goal"
      }
    },
    {
      "name": "delete_invoice",
      "description": "Deletes a draft invoice by invoiceId. Only DRAFT invoices can be deleted.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "invoiceId": {
            "type": "string"
          }
        },
        "required": [
          "invoiceId"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete invoice"
      }
    },
    {
      "name": "delete_projection",
      "description": "Deletes an income or expense projection by projectionId.\n\nGet projectionId from list_income_projections or list_expense_projections. Call the matching list tool afterward to verify removal.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "projectionId": {
            "type": "string"
          }
        },
        "required": [
          "projectionId"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete projection"
      }
    },
    {
      "name": "delete_rule",
      "description": "Deletes a transaction rule by ruleId or exact ruleName. Requires ownership (OWNER/COOWNER).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "ruleId": {
            "type": "string"
          },
          "ruleName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete rule"
      }
    },
    {
      "name": "delete_saved_filter",
      "description": "Deletes a saved filter by savedFilterId or exact savedFilterName.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "savedFilterId": {
            "type": "string"
          },
          "savedFilterName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete saved filter"
      }
    },
    {
      "name": "delete_shared_account",
      "description": "Deletes a shared account (family HOUSEHOLD or enterprise GROUP) by organizationId.\n\nGet organizationId from list_shared_accounts or read_shared_account. Call list_shared_accounts afterward to verify removal.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "organizationId": {
            "type": "string"
          }
        },
        "required": [
          "organizationId"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete shared account"
      }
    },
    {
      "name": "delete_tag",
      "description": "Deletes a tag by tagId. Get tagId from list_tags, or pass tagName with the exact tag name. A partial name (e.g. \"business\") is not deleted; this lists the similar tags so you can ask which one.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "tagId": {
            "type": "string"
          },
          "tagName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete tag"
      }
    },
    {
      "name": "delete_test_clock",
      "description": "Permanently deletes the owned test clock selected by the clock.id returned by create_test_clock or read_test_clock. Ordinary financial records are not affected.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete test clock"
      }
    },
    {
      "name": "delete_time_log",
      "description": "Soft-deletes a time log by entryId.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "entryId": {
            "type": "string"
          }
        },
        "required": [
          "entryId"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete time log"
      }
    },
    {
      "name": "delete_transaction",
      "description": "Deletes one transaction by transactionId for the authenticated user.\n\nIf transactionId is unknown, pass transactionNameHint (e.g. \"coffee\" / \"parking\") or useLatestTransaction=true for the most recent entry (without a hint, this returns the resolved entry to confirm and does not delete yet).\nIf several match the hint, this asks which one — do not guess (even when useLatestTransaction is set).\n\nSafety workflow:\n  1) Prefer transactionId from create_transaction when undoing what was just logged.\n  2) Otherwise resolve via transactionNameHint / useLatestTransaction, or list_transactions.\n  3) Confirm what was removed in plain language.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "transactionId": {
            "type": "string"
          },
          "transactionNameHint": {
            "type": [
              "null",
              "string"
            ]
          },
          "useLatestTransaction": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Delete transaction"
      }
    },
    {
      "name": "get_current_user_info",
      "description": "Returns the authenticated user's personal profile and every user identity the credential can access.\n\nThis is the Profiles / Personal Profile entry point — use it to orient at session start or when you need name, email, or userId. For financial accounts (balances, accountId), use list_accounts. For family or enterprise shared accounts, use list_shared_accounts.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get current user"
      }
    },
    {
      "name": "get_financial_plan",
      "description": "Returns a unified financial plan: life plans, saving goals, income/expense projections, plus chart-ready series for visualization.\n\nCall this when the user asks to project spending/income, see cash flow outlook, \"generate a projection of my expenditure\", graph future spend, or view the overall financial plan.\n\nResponse includes `charts` (months + incomeDollars/expenseDollars/netDollars) — ALWAYS render those as a chat-visible chart/image (not numbers only; not .ts/.html source files).\nFor targeted edits, use create_goal / create_income_projection / create_expense_projection.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get financial plan"
      }
    },
    {
      "name": "get_notification_settings",
      "description": "Returns notification preferences (insight summary email cadence, etc.) from the user's profile.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get notification settings"
      }
    },
    {
      "name": "get_spending_analytics",
      "description": "Answers questions about how much the user spent or earned — totals plus category, tag, and vendor breakdowns.\n\nReturns a `report` field with emoji labels (e.g. \"🍽️ Food \u0026 Drink: $459.00 USD\") — present `report` verbatim to the user; do not strip emojis or reformat amounts.\n\nAlso returns `charts` (labels + values) for category spend — when present, ALWAYS render a chat-visible bar chart/image; do not reply with numbers only or write source files.\n\nUse this for: \"How much did I spend on food this month?\", \"What's my total income this year?\", \"Which vendors cost me the most?\", \"chart my spending\".\n\nIncome vs expense follows transaction type (same as list_transactions), not amount sign.\n\nfrom/to are RFC 3339 date strings. Either bound is optional. accountIds is optional — omit to include all accounts; call list_accounts to get IDs for filtering. Transfers are excluded by default; set includeTransfers=true to include them.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "from": {
            "type": [
              "null",
              "string"
            ]
          },
          "includeTransfers": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "to": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get spending analytics"
      }
    },
    {
      "name": "list_accounts",
      "description": "Lists every Savi Finance account (bank, credit card, crypto, manual, etc.) the authenticated user has access to.\n\nCall this first when you need an accountId for any other tool:\n  • create_transaction requires accountId — use account.id from this response.\n  • list_transactions and get_spending_analytics accept optional accountIds filter — use account.id values.\n\nOptional enrichment: set includeComputedBalance=true for live balances.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "includeComputedBalance": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "includeCryptoHoldings": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "includePlaidAccessObject": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List accounts"
      }
    },
    {
      "name": "list_agent_connections",
      "description": "Lists the user's active agent/connector connections. Call list_agents for available agent types.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "type": [
              "null",
              "integer"
            ]
          },
          "skip": {
            "type": [
              "null",
              "integer"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List agent connections"
      }
    },
    {
      "name": "list_agents",
      "description": "Lists available integration agents (connectors) and their capabilities. For user's active connections, call list_agent_connections.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List agents"
      }
    },
    {
      "name": "list_alerts",
      "description": "Lists spending/category alerts (notification thresholds). For push/email prefs use get_notification_settings.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List alerts"
      }
    },
    {
      "name": "list_categories",
      "description": "Lists every transaction category visible to the authenticated user — both the global catalog (e.g. FOOD_AND_DRINK, RENT_AND_UTILITIES, INCOME) and any user-defined categories.\n\nOptional filters: searchHint (e.g. \"food\", \"transportation\") and typeHint (e.g. \"income\", \"expense\").\nWhen answering the user, prefer displayName + emoji over raw enum names.\n\nCall this when you need a category value for another tool:\n  • create_transaction requires a category — use category.name (e.g. FOOD_AND_DRINK) as the category field, or category.id as categoryId for user-defined categories.\n  • list_transactions accepts categoryIds — use category.id values to filter.\n  • get_spending_analytics breaks down totals by category automatically.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "searchHint": {
            "type": [
              "null",
              "string"
            ]
          },
          "typeHint": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List categories"
      }
    },
    {
      "name": "list_expense_projections",
      "description": "Lists expense projections (expected future spending) for the authenticated user.\n\nUse projection.id as projectionId in update_projection or delete_projection.\nTo add an expense, call create_expense_projection. For income, use list_income_projections.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List expense projections"
      }
    },
    {
      "name": "list_files",
      "description": "Lists uploaded files/receipts for the authenticated user (limit defaults to 50, at most 100; page with skip while hasMore is true). Use file.id as fileId in update_file or delete_file.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "type": [
              "null",
              "integer"
            ]
          },
          "skip": {
            "type": [
              "null",
              "integer"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List files"
      }
    },
    {
      "name": "list_goals",
      "description": "Lists every saving goal for the authenticated user across all life plans.\n\nCall this first when you need a savingGoalId for any other goal tool:\n  • read_goal requires savingGoalId — use goal.id from this response.\n  • delete_goal requires savingGoalId — use goal.id from this response.\n\nUse this when users ask to see their goals, savings targets, or progress toward a purchase.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "type": [
              "null",
              "integer"
            ]
          },
          "skip": {
            "type": [
              "null",
              "integer"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List goals"
      }
    },
    {
      "name": "list_income_projections",
      "description": "Lists income projections (expected future income streams) for the authenticated user.\n\nUse projection.id as projectionId in update_projection or delete_projection.\nTo add income, call create_income_projection. For expenses, use list_expense_projections.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List income projections"
      }
    },
    {
      "name": "list_invoices",
      "description": "Lists invoices for an account. Use invoice.id as invoiceId in read_invoice, update_invoice, or delete_invoice.\n\nRequires accountId — call list_accounts first if you do not have one.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountId": {
            "type": [
              "null",
              "string"
            ]
          },
          "pagination": {
            "additionalProperties": false,
            "properties": {
              "limit": {
                "type": "integer"
              },
              "skip": {
                "type": "integer"
              }
            },
            "required": [
              "limit",
              "skip"
            ],
            "type": [
              "null",
              "object"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List invoices"
      }
    },
    {
      "name": "list_life_plans",
      "description": "Lists life plans for the authenticated user, including embedded saving goals, income blocks, and expense blocks.\n\nCall this when you need lifePlanName (display name) or lifePlanId for read_life_plan or when building a financial overview.\nFor goals only, list_goals is simpler. For income/expense projections, use list_income_projections or list_expense_projections.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "type": [
              "null",
              "integer"
            ]
          },
          "skip": {
            "type": [
              "null",
              "integer"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List life plans"
      }
    },
    {
      "name": "list_rules",
      "description": "Lists transaction automation rules. Use rule.id as ruleId in update_rule or delete_rule.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountId": {
            "type": [
              "null",
              "string"
            ]
          },
          "isActive": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "isIncome": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "name": {
            "type": [
              "null",
              "string"
            ]
          },
          "vendorName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List rules"
      }
    },
    {
      "name": "list_saved_filters",
      "description": "Lists saved transaction filters (limit defaults to 10, at most 100; page with skip). Use savedFilter.id as savedFilterId in update_saved_filter or delete_saved_filter.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "type": [
              "null",
              "integer"
            ]
          },
          "skip": {
            "type": [
              "null",
              "integer"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List saved filters"
      }
    },
    {
      "name": "list_shared_accounts",
      "description": "Lists family shared accounts (HOUSEHOLD) the user belongs to.\n\nCall this first when you need organizationId for read_shared_account, update_shared_account, or delete_shared_account.\nEnterprise GROUP accounts are not listed here yet — only HOUSEHOLD (family) accounts are returned.\n\nFor the user's personal profile, use get_current_user_info instead.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountType": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List shared accounts"
      }
    },
    {
      "name": "list_spendables",
      "description": "Lists monthly spendable (guilt-free spend) limits for the authenticated user. To change limits use update_spendable; for threshold alerts use list_alerts; for email preferences use get_notification_settings.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List spendables"
      }
    },
    {
      "name": "list_subscriptions",
      "description": "Finds the recurring subscriptions and bills the user pays, detected from transaction history. Read-only.\n\nUse this for: \"What subscriptions am I paying for?\", \"How much do I spend on subscriptions a month?\", \"Did any subscription go up in price?\", \"Which subscriptions have I stopped paying?\".\n\nA vendor is reported when it has repeated expense charges (default at least 3) at a steady price (within 15%) on a weekly, biweekly, monthly, quarterly or annual cadence. Each entry has the typical and last amount, monthlyCost and annualCost, cadence, nextExpected date, and previousAmount when the latest charge changed price. status is `active` or `possibly_cancelled` (the next charge is overdue); possibly_cancelled entries are hidden unless includeInactive=true. Charges with varying amounts (groceries, fuel, restaurants) are not subscriptions and are not reported. Transfers are ignored. Totals are kept per currency.\n\nlookbackDays defaults to 400 (up to 1100). accountIds is optional; call list_accounts for IDs. At most 5,000 transactions are read; narrow lookbackDays or accountIds if the note says the history was cut off.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "includeInactive": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "lookbackDays": {
            "type": [
              "null",
              "integer"
            ]
          },
          "minOccurrences": {
            "type": [
              "null",
              "integer"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List subscriptions"
      }
    },
    {
      "name": "list_tags",
      "description": "Lists tags belonging to the authenticated user.\n\nOptional filters narrow the list (response includes totalCount vs filteredCount):\n  • searchHint — whole-token name match (e.g. \"business\")\n  • semanticHint — e.g. \"reimbursable\" for business/mileage tags\n\nCall this when you need tag IDs or names for another tool:\n  • create_transaction / update_transaction accept tagNames or tagIds.\n  • list_transactions accepts tagIds to filter spending by tag.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "searchHint": {
            "type": [
              "null",
              "string"
            ]
          },
          "semanticHint": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List tags"
      }
    },
    {
      "name": "list_time_logs",
      "description": "Lists time-tracking entries. Use entry.id as entryId in update_time_log or delete_time_log. Pass periodHint or filter.search like \"this week\" to infer a start-time range.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "filter": {
            "additionalProperties": false,
            "properties": {
              "addressId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "search": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "startAfter": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "startBefore": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "status": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "taskId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "userId": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": "object"
          },
          "periodHint": {
            "type": [
              "null",
              "string"
            ]
          },
          "sortBy": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List time logs"
      }
    },
    {
      "name": "list_transactions",
      "description": "Lists transactions for the authenticated user with optional filters. Call this to:\n  • Verify a transaction was created (call after create_transaction).\n  • Show recent transaction history to the user.\n  • Search for a specific transaction before deciding to add a new one (avoid duplicates).\n  • Resolve \"latest/last transaction\" requests before read/delete actions.\n  • Answer \"what do I categorize Uber as?\" via vendorHint / categoryHint.\n\nFilter IDs (accountIds, tagIds, categoryIds) come from list_accounts, list_tags, and list_categories respectively.\ncategories accepts human names (e.g. \"general merchandise\", \"food\") — auto-mapped to system enums. Combine with transactionType INCOME or EXPENSE.\nvendorHint / categoryHint are informal shortcuts (e.g. vendorHint=\"Uber\", categoryHint=\"food\").\nDates must be RFC 3339 strings (e.g. \"2025-01-01T00:00:00Z\"). transactionType: INCOME, EXPENSE, or TRANSFER.\nTemporal relativity tip: map natural language ranges (today, yesterday, this week, last month) to startDate/endDate in RFC 3339 before calling.\nDefaults: most recent transactions across all accounts; pass limit to cap result size.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "categories": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "categoryHint": {
            "type": [
              "null",
              "string"
            ]
          },
          "categoryIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ]
          },
          "limit": {
            "type": [
              "null",
              "integer"
            ]
          },
          "maxAmountInclusive": {
            "type": [
              "null",
              "number"
            ]
          },
          "minAmountInclusive": {
            "type": [
              "null",
              "number"
            ]
          },
          "searchQuery": {
            "type": [
              "null",
              "string"
            ]
          },
          "skip": {
            "type": [
              "null",
              "integer"
            ]
          },
          "startDate": {
            "type": [
              "null",
              "string"
            ]
          },
          "tagIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "transactionType": {
            "type": [
              "null",
              "string"
            ]
          },
          "vendorHint": {
            "type": [
              "null",
              "string"
            ]
          },
          "vendorNames": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List transactions"
      }
    },
    {
      "name": "list_trip_mileage_logs",
      "description": "Lists trip/mileage deduction transactions (tagged mileage-deduction or name contains 'mileage').\n\nNo dedicated trip-mileage API exists — this aggregates mileage-tagged transactions from list_transactions.\nperiodHint (or a period phrase in query) such as \"this month\" or \"last month\" limits the date range. Any other text in query filters by transaction name, description or vendor.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "type": [
              "null",
              "integer"
            ]
          },
          "periodHint": {
            "type": [
              "null",
              "string"
            ]
          },
          "query": {
            "type": [
              "null",
              "string"
            ]
          },
          "skip": {
            "type": [
              "null",
              "integer"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List trip mileage logs"
      }
    },
    {
      "name": "list_unusual_transactions",
      "description": "Flags expense transactions that look unusual compared with the user's own history. Read-only.\n\nUse this for: \"Is that transaction unusual?\", \"Anything odd in my spending this month?\", \"Did I get charged twice?\", \"Any surprising charges lately?\".\n\nEach flagged transaction has a severity (high or medium) and reasons: `amount_high_for_vendor` (far above what that vendor usually charges), `amount_high_for_category` (far above the usual for that category), `new_vendor_large_amount` (first charge from a vendor and larger than 95% of earlier expenses), and `possible_duplicate` (same vendor and amount within 48 hours). Each charge is compared only with charges before it, using up to a year of earlier history. Transfers are ignored.\n\nfrom/to are RFC 3339 timestamps for the window to scan; the default is the last 30 days and the maximum is 365 days. limit defaults to 20 (max 100); results are ordered high severity first, then newest. accountIds is optional; call list_accounts for IDs. To check one specific charge, scan a window around its date and look for its transactionId.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "from": {
            "type": [
              "null",
              "string"
            ]
          },
          "limit": {
            "type": [
              "null",
              "integer"
            ]
          },
          "to": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "List unusual transactions"
      }
    },
    {
      "name": "read_account",
      "description": "Reads one account by accountId for the authenticated user.\n\nUse this when you already have an accountId (from list_accounts or create_account) and need full account details.\n\nIf accountId is unknown, call list_accounts first and use account.id, or pass accountName to resolve automatically.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountId": {
            "type": "string"
          },
          "accountName": {
            "type": [
              "null",
              "string"
            ]
          },
          "includeCollaboratorInvitations": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "includeCollaborators": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "includeComputedBalance": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "includeCryptoHoldings": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "includePlaidAccessObject": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get account"
      }
    },
    {
      "name": "read_goal",
      "description": "Reads one saving goal by savingGoalId for the authenticated user.\n\nUse this when you already have a savingGoalId (from list_goals or create_goal) and need full goal details.\n\nIf savingGoalId is unknown, pass goalName with the goal name (or hint like \"vacation\"), or call list_goals first and use goal.id.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "goalName": {
            "type": [
              "null",
              "string"
            ]
          },
          "savingGoalId": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get goal"
      }
    },
    {
      "name": "read_invoice",
      "description": "Reads one invoice by invoiceId from list_invoices or create_invoice.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "invoiceId": {
            "type": "string"
          }
        },
        "required": [
          "invoiceId"
        ],
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get invoice"
      }
    },
    {
      "name": "read_life_plan",
      "description": "Reads one life plan by lifePlanId, including saving goals and fixed income/expense blocks.\n\nGet lifePlanId from list_life_plans or create_life_plan. If unknown, call list_life_plans first or pass lifePlanName to resolve it automatically.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "lifePlanId": {
            "type": "string"
          },
          "lifePlanName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get life plan"
      }
    },
    {
      "name": "read_shared_account",
      "description": "Reads one shared account (family HOUSEHOLD or enterprise GROUP) by organizationId.\n\nUse when organizationId is known from list_shared_accounts or create_shared_account.\nIf organizationId is unknown, call list_shared_accounts first.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "organizationId": {
            "type": "string"
          }
        },
        "required": [
          "organizationId"
        ],
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get shared account"
      }
    },
    {
      "name": "read_test_clock",
      "description": "Reads the current simulated transaction feed and goal progress for the clock.id returned by create_test_clock, including scheduled events that have not happened yet.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Read test clock"
      }
    },
    {
      "name": "read_transaction",
      "description": "Reads one transaction by transactionId for the authenticated user.\n\nUse this when you already have a transactionId (for example from create_transaction or list_transactions) and need full details before follow-up actions like deletion.\n\nTemporal relativity tip: if the user says \"the latest/last transaction\" and you do not yet have a transactionId, first call list_transactions with limit=1 (default sort is newest first).\nContext management tip: reuse transactionId from prior tool outputs whenever available instead of searching again.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "transactionId": {
            "type": "string"
          }
        },
        "required": [
          "transactionId"
        ],
        "type": "object"
      },
      "scope": "read",
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true,
        "title": "Get transaction"
      }
    },
    {
      "name": "update_account",
      "description": "Updates one account by accountId for the authenticated user. Wraps the updateAccount RPC.\n\nGet accountId from list_accounts, read_account, or create_account.\nIf accountId is unknown, pass accountName (current name or hint like \"checking\") to resolve it automatically.\nIf several accounts match the hint, this asks which one — do not guess.\nFor risky credit limits (far above income, or very large), pass naturalLanguageHint with the full user sentence; the tool may ask for confirmation via confirmHighCreditLimit=true.\nIf accountFieldMasks is omitted, masks are inferred from the provided account fields.\nAfter updating, confirm in plain language.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "account": {
            "additionalProperties": false,
            "properties": {
              "accountIconPreference": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "accountSubtype": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "accountType": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "appleCardIntegration": {
                "additionalProperties": false,
                "properties": {
                  "appleCardAccountId": {
                    "type": "string"
                  },
                  "lastSyncedAt": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "appleCardAccountId"
                ],
                "type": [
                  "null",
                  "object"
                ]
              },
              "assetType": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "countryId": {
                "type": [
                  "null",
                  "integer"
                ]
              },
              "creditLimit": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "customIcon": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "customIconColor": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "customImageFileId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "debtInterestRate": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "defaultCurrency": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "fuelEfficiency": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "giftCardVendorId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "giftCardVendorName": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "governmentAccountType": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "gracePeriod": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "interestRecurrenceRate": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "investmentType": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "isVariableInterestRate": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "positionOrder": {
                "type": [
                  "null",
                  "integer"
                ]
              },
              "savingInterestRate": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "stockPrice": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "stockQuantity": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "stockSymbol": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "transactionSyncNotificationSettings": {
                "additionalProperties": false,
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "enabled"
                ],
                "type": [
                  "null",
                  "object"
                ]
              }
            },
            "type": "object"
          },
          "accountFieldMasks": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "accountId": {
            "type": "string"
          },
          "accountName": {
            "type": [
              "null",
              "string"
            ]
          },
          "confirmHighCreditLimit": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "naturalLanguageHint": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "required": [
          "account"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update account"
      }
    },
    {
      "name": "update_file",
      "description": "Updates file metadata (name, date) by fileId. Wraps the updateFile RPC.\n\nGet fileId from list_files.\nIf fileId is unknown, pass fileName (current name or hint like \"June receipt\"); every hint word must match a whole word of the file name, and more than one match returns the candidates to ask about.\nIf fileFieldMasks is omitted, masks are inferred from the provided file fields.\nAfter updating, call list_files to verify the new values.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "file": {
            "additionalProperties": false,
            "properties": {
              "date": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": "object"
          },
          "fileFieldMasks": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "fileId": {
            "type": "string"
          },
          "fileName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "required": [
          "file"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update file"
      }
    },
    {
      "name": "update_goal",
      "description": "Updates one saving goal by savingGoalId for the authenticated user. Wraps the updateSavingGoal RPC.\n\nIf savingGoalId is unknown, pass goalName with the current goal name (or hint like \"vacation\").\n\nGet savingGoalId from list_goals, read_goal, or create_goal.\nsavingGoal.amount is in CENTS, not dollars: $10,000 = 1000000.\nIf savingGoalFieldMasks is omitted, masks are inferred from the provided savingGoal fields.\nAfter updating, call read_goal to verify the new values.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "goalName": {
            "type": [
              "null",
              "string"
            ]
          },
          "savingGoal": {
            "additionalProperties": false,
            "properties": {
              "accountId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "amount": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "carPurchasePreferences": {
                "additionalProperties": false,
                "properties": {
                  "autoLoanPreferences": {
                    "additionalProperties": false,
                    "properties": {
                      "amortizationDuration": {
                        "type": [
                          "null",
                          "number"
                        ]
                      },
                      "downPaymentAmount": {
                        "type": [
                          "null",
                          "number"
                        ]
                      },
                      "downPaymentPercentage": {
                        "type": [
                          "null",
                          "number"
                        ]
                      },
                      "interestRatePercentage": {
                        "type": [
                          "null",
                          "number"
                        ]
                      },
                      "loanDurationTimeInterval": {
                        "type": [
                          "null",
                          "string"
                        ]
                      }
                    },
                    "type": [
                      "null",
                      "object"
                    ]
                  }
                },
                "type": [
                  "null",
                  "object"
                ]
              },
              "currency": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "currentAmount": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "debtPaymentRecurrenceRate": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "goalImageId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "goalType": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "homePurchasePreferences": {
                "additionalProperties": false,
                "properties": {
                  "mortgagePreferences": {
                    "additionalProperties": false,
                    "properties": {
                      "amortizationDuration": {
                        "type": [
                          "null",
                          "number"
                        ]
                      },
                      "downPaymentAmount": {
                        "type": [
                          "null",
                          "number"
                        ]
                      },
                      "downPaymentPercentage": {
                        "type": [
                          "null",
                          "number"
                        ]
                      },
                      "interestRatePercentage": {
                        "type": [
                          "null",
                          "number"
                        ]
                      },
                      "loanDurationTimeInterval": {
                        "type": [
                          "null",
                          "string"
                        ]
                      }
                    },
                    "type": [
                      "null",
                      "object"
                    ]
                  }
                },
                "type": [
                  "null",
                  "object"
                ]
              },
              "isActive": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "loanPreferences": {
                "additionalProperties": false,
                "properties": {
                  "amortizationDuration": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "downPaymentAmount": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "downPaymentPercentage": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "interestRatePercentage": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "loanDurationTimeInterval": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "type": [
                  "null",
                  "object"
                ]
              },
              "maturityDate": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "numberOfChildren": {
                "type": [
                  "null",
                  "integer"
                ]
              },
              "savingAnnualInterestRate": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "savingFrequency": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "startSavingsDate": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "targetAmount": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "targetDate": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": "object"
          },
          "savingGoalFieldMasks": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "savingGoalId": {
            "type": "string"
          }
        },
        "required": [
          "savingGoal"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update goal"
      }
    },
    {
      "name": "update_invoice",
      "description": "Updates an invoice by invoiceId. Wraps the updateInvoice RPC.\n\nGet invoiceId from list_invoices or read_invoice.\nIf invoiceId is unknown, pass invoiceClientName (current client name) to resolve it across all your accounts, or add accountId to search one account. More than one match returns the candidates to ask about.\nIf fieldMasks is omitted, masks are inferred from the provided invoice fields.\nAfter updating, call read_invoice to verify the new values.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "accountId": {
            "type": "string"
          },
          "fieldMasks": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "invoice": {
            "additionalProperties": false,
            "properties": {
              "clientName": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "contact": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "contactDetails": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "currency": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "deliveryMethod": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "dueDate": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "eTransferEmail": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "eTransferPhone": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "issuedAtDate": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "items": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "currency": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "discount": {
                      "type": "number"
                    },
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "quantity": {
                      "type": "integer"
                    },
                    "taxRate": {
                      "type": "number"
                    },
                    "unitPrice": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "description",
                    "unitPrice",
                    "currency",
                    "quantity",
                    "taxRate",
                    "discount"
                  ],
                  "type": "object"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "lineItems": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "currency": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "discount": {
                      "type": "number"
                    },
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "quantity": {
                      "type": "integer"
                    },
                    "taxRate": {
                      "type": "number"
                    },
                    "unitPrice": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "description",
                    "unitPrice",
                    "currency",
                    "quantity",
                    "taxRate",
                    "discount"
                  ],
                  "type": "object"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "paidAtDate": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "paymentMethod": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "payoutModel": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "recurrence": {
                "additionalProperties": false,
                "properties": {
                  "cronExpression": {
                    "type": "string"
                  },
                  "endAt": {
                    "type": "string"
                  },
                  "rrule": {
                    "type": "string"
                  },
                  "scheduleType": {
                    "type": "string"
                  },
                  "startAt": {
                    "type": "string"
                  },
                  "timezone": {
                    "type": "string"
                  }
                },
                "required": [
                  "startAt",
                  "endAt"
                ],
                "type": [
                  "null",
                  "object"
                ]
              },
              "status": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": "object"
          },
          "invoiceClientName": {
            "type": [
              "null",
              "string"
            ]
          },
          "invoiceId": {
            "type": "string"
          }
        },
        "required": [
          "invoice"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update invoice"
      }
    },
    {
      "name": "update_notification_settings",
      "description": "Updates insight-summary email notification settings (enabled flag and optional cron schedule). Wraps the updateInsightSummaryNotificationSetting RPC.\n\nProvide enabled and/or cron. After updating, call get_notification_settings to verify.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cron": {
            "type": [
              "null",
              "string"
            ]
          },
          "enabled": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update notification settings"
      }
    },
    {
      "name": "update_projection",
      "description": "Updates an income or expense projection by projectionId. Wraps the updateProjection RPC.\n\nGet projectionId from list_income_projections or list_expense_projections.\nIf projectionId is unknown, pass projectionName (current name). It resolves across income and expense projections to an exact case-insensitive match, or to the only projection whose name contains every word of projectionName; otherwise it returns the candidates to choose from.\nIf projectionFieldMasks is omitted, masks are inferred from the provided projection fields.\nAfter updating, call list_income_projections or list_expense_projections to verify.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "projection": {
            "additionalProperties": false,
            "properties": {
              "amount": {
                "type": [
                  "null",
                  "integer"
                ]
              },
              "category": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "cronExpression": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "customRepeatFrequency": {
                "additionalProperties": false,
                "properties": {
                  "frequencyAmount": {
                    "type": "integer"
                  },
                  "frequencyUnit": {
                    "type": "string"
                  }
                },
                "required": [
                  "frequencyUnit",
                  "frequencyAmount"
                ],
                "type": [
                  "null",
                  "object"
                ]
              },
              "description": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "endMonth": {
                "items": {
                  "maximum": 255,
                  "minimum": 0,
                  "type": "integer"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "isActive": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "isIncome": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "overrides": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "amount": {
                      "type": "integer"
                    },
                    "customRepeatFrequency": {
                      "additionalProperties": false,
                      "properties": {
                        "frequencyAmount": {
                          "type": "integer"
                        },
                        "frequencyUnit": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "frequencyUnit",
                        "frequencyAmount"
                      ],
                      "type": [
                        "null",
                        "object"
                      ]
                    },
                    "endMonth": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "repeatFrequency": {
                      "type": "string"
                    },
                    "startMonth": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "startMonth",
                    "amount",
                    "repeatFrequency"
                  ],
                  "type": "object"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "repeatFrequency": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "rrule": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "startMonth": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "timezone": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": "object"
          },
          "projectionFieldMasks": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "projectionId": {
            "type": "string"
          },
          "projectionName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "required": [
          "projection"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update projection"
      }
    },
    {
      "name": "update_rule",
      "description": "Updates a transaction automation rule by ruleId.\n\nGet ruleId from list_rules. If ruleId is unknown, pass ruleName (exact current name) to resolve it; partial names return candidates instead.\nOnly include the fields you want to change.\nSupported fields: name, isActive, conditions, actions.\nAfter updating, call list_rules to verify the new values.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "actions": {
            "additionalProperties": false,
            "properties": {
              "updateTransactionActions": {
                "additionalProperties": false,
                "properties": {
                  "transaction": {
                    "additionalProperties": false,
                    "properties": {
                      "category": {
                        "type": [
                          "null",
                          "string"
                        ]
                      },
                      "categoryId": {
                        "type": [
                          "null",
                          "string"
                        ]
                      },
                      "description": {
                        "type": [
                          "null",
                          "string"
                        ]
                      },
                      "isExcludedFromAnalytics": {
                        "type": [
                          "null",
                          "boolean"
                        ]
                      },
                      "name": {
                        "type": [
                          "null",
                          "string"
                        ]
                      },
                      "tagIds": {
                        "items": {
                          "type": "string"
                        },
                        "type": [
                          "null",
                          "array"
                        ]
                      }
                    },
                    "required": [
                      "tagIds"
                    ],
                    "type": "object"
                  },
                  "transactionFieldMasks": {
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "path": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "path"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "null",
                      "array"
                    ]
                  }
                },
                "required": [
                  "transaction",
                  "transactionFieldMasks"
                ],
                "type": "object"
              }
            },
            "required": [
              "updateTransactionActions"
            ],
            "type": [
              "null",
              "object"
            ]
          },
          "conditions": {
            "additionalProperties": false,
            "properties": {
              "accountId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "amountRange": {
                "additionalProperties": false,
                "properties": {
                  "max": {
                    "type": [
                      "null",
                      "number"
                    ]
                  },
                  "min": {
                    "type": [
                      "null",
                      "number"
                    ]
                  }
                },
                "type": [
                  "null",
                  "object"
                ]
              },
              "dateRange": {
                "additionalProperties": false,
                "properties": {
                  "endDate": {
                    "type": [
                      "null",
                      "string"
                    ]
                  },
                  "startDate": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "type": [
                  "null",
                  "object"
                ]
              },
              "vendorId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "vendorName": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": [
              "null",
              "object"
            ]
          },
          "isActive": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "name": {
            "type": [
              "null",
              "string"
            ]
          },
          "ruleId": {
            "type": "string"
          },
          "ruleName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update rule"
      }
    },
    {
      "name": "update_saved_filter",
      "description": "Updates a saved filter by savedFilterId. Wraps the updateSavedFilter RPC.\n\nGet savedFilterId from list_saved_filters.\nIf savedFilterId is unknown, pass savedFilterName (exact current name) to resolve it; partial names return candidates instead.\nIf savedFilterFieldMasks is omitted, masks are inferred from the provided savedFilter fields.\nAfter updating, call list_saved_filters to verify the new values.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "savedFilter": {
            "additionalProperties": false,
            "properties": {
              "description": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "filterCriteria": {
                "additionalProperties": false,
                "properties": {
                  "accountIds": {
                    "items": {
                      "type": "string"
                    },
                    "type": [
                      "null",
                      "array"
                    ]
                  },
                  "amount": {
                    "additionalProperties": false,
                    "properties": {
                      "maxValue": {
                        "type": [
                          "null",
                          "number"
                        ]
                      },
                      "minValue": {
                        "type": [
                          "null",
                          "number"
                        ]
                      }
                    },
                    "type": [
                      "null",
                      "object"
                    ]
                  },
                  "categories": {
                    "items": {
                      "type": "string"
                    },
                    "type": [
                      "null",
                      "array"
                    ]
                  },
                  "currencies": {
                    "items": {
                      "type": "string"
                    },
                    "type": [
                      "null",
                      "array"
                    ]
                  },
                  "endDate": {
                    "type": [
                      "null",
                      "string"
                    ]
                  },
                  "hasAttachment": {
                    "type": [
                      "null",
                      "boolean"
                    ]
                  },
                  "hasDescription": {
                    "type": [
                      "null",
                      "boolean"
                    ]
                  },
                  "hasRepeat": {
                    "type": [
                      "null",
                      "boolean"
                    ]
                  },
                  "hasSplit": {
                    "type": [
                      "null",
                      "boolean"
                    ]
                  },
                  "includeUntagged": {
                    "type": [
                      "null",
                      "boolean"
                    ]
                  },
                  "sortBy": {
                    "type": [
                      "null",
                      "string"
                    ]
                  },
                  "startDate": {
                    "type": [
                      "null",
                      "string"
                    ]
                  },
                  "tags": {
                    "items": {
                      "type": "string"
                    },
                    "type": [
                      "null",
                      "array"
                    ]
                  },
                  "type": {
                    "type": [
                      "null",
                      "string"
                    ]
                  },
                  "vendors": {
                    "items": {
                      "type": "string"
                    },
                    "type": [
                      "null",
                      "array"
                    ]
                  }
                },
                "type": [
                  "null",
                  "object"
                ]
              },
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": "object"
          },
          "savedFilterFieldMasks": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "savedFilterId": {
            "type": "string"
          },
          "savedFilterName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "required": [
          "savedFilter"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update saved filter"
      }
    },
    {
      "name": "update_shared_account",
      "description": "Updates a shared account (family or enterprise) by organizationId. Wraps the updateOrganization RPC.\n\nCurrently supports renaming via organization.name. If fieldMasks is omitted, masks are inferred from the provided organization fields.\nWhen organizationId is unknown, pass organizationName (the account's exact current name) to resolve it among the user's HOUSEHOLD and GROUP accounts.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "fieldMasks": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "organization": {
            "additionalProperties": false,
            "properties": {
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": "object"
          },
          "organizationId": {
            "type": "string"
          },
          "organizationName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "required": [
          "organization"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update shared account"
      }
    },
    {
      "name": "update_spendable",
      "description": "Sets the monthly spendable (guilt-free spend) limit. Wraps the updatePersonalPreference RPC.\n\nspendLimit is required (dollars, \u003e= 0). month is optional RFC 3339 and defaults to the current month.\nAfter updating, call list_spendables to verify the new value.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "month": {
            "type": "string"
          },
          "spendLimit": {
            "type": [
              "null",
              "number"
            ]
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update spendable"
      }
    },
    {
      "name": "update_tag",
      "description": "Updates a tag by tagId. Wraps the updateTag RPC.\n\nIf tagId is unknown, pass tagName with the current tag name (or hint like \"business\").\n\nGet tagId from list_tags.\nIf tagFieldMasks is omitted, masks are inferred from the provided tag fields.\nAfter updating, call list_tags to verify the new values.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "tag": {
            "additionalProperties": false,
            "properties": {
              "description": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": "object"
          },
          "tagFieldMasks": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "tagId": {
            "type": "string"
          },
          "tagName": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "required": [
          "tag"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update tag"
      }
    },
    {
      "name": "update_time_log",
      "description": "Updates a time log by entryId. Wraps the updateTimeLog RPC.\n\nGet entryId from list_time_logs.\nIf entryId is unknown, pass entryNotesHint or useLatestEntry to resolve it automatically.\nOnly include the fields you want to change in input.\nAfter updating, call list_time_logs to verify the new values.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "entryId": {
            "type": "string"
          },
          "entryNotesHint": {
            "type": [
              "null",
              "string"
            ]
          },
          "input": {
            "additionalProperties": false,
            "properties": {
              "addressId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "billable": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "breaks": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "end": {
                      "type": "string"
                    },
                    "start": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "start",
                    "end"
                  ],
                  "type": "object"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "currency": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "endTime": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "hourlyRate": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "invoiceId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "invoicePayed": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "latitude": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "longitude": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "notes": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "startTime": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "status": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "tags": {
                "items": {
                  "type": "string"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "taskId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "timeZone": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": "object"
          },
          "useLatestEntry": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update time log"
      }
    },
    {
      "name": "update_transaction",
      "description": "Updates one transaction by transactionId. Wraps the updateTransaction RPC.\n\nIf transactionId is unknown, pass transactionNameHint (name or partial match like \"coffee\") or useLatestTransaction=true for the most recent entry (no name hint).\nIf several transactions match the hint, this asks which one — do not guess (even when useLatestTransaction is set).\n\nInformal category names (e.g. \"food\", \"dining\", \"this looks like groceries\") auto-map to system categories; user-defined category names from list_categories resolve to their categoryId.\nUnrecognized category labels are refused — ask the user or call list_categories.\n\nTo tag a transaction, pass tagNames (e.g. [\"Client Meals\"]): the named tags are added to its existing tags. transaction.tagIds replaces the full tag list instead. Pass one or the other, not both.\n\nGet transactionId from list_transactions, read_transaction, or create_transaction.\nIf transactionFieldMasks is omitted, masks are inferred from the provided transaction fields.\nAfter updating, confirm in plain language using friendly category names (not underscore enums).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "tagNames": {
            "items": {
              "type": "string"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "transaction": {
            "additionalProperties": false,
            "properties": {
              "accountId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "amount": {
                "type": [
                  "null",
                  "number"
                ]
              },
              "category": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "categoryId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "cronExpression": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "currency": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "deletedOneOffSplitParticipants": {
                "items": {
                  "type": "string"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "description": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "endDate": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "expenseCategory": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "fileIds": {
                "items": {
                  "type": "string"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "inReview": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "incomeCategory": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "isExcludedFromAnalytics": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "isPending": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "lineItems": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "amount": {
                      "type": "number"
                    },
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "amount"
                  ],
                  "type": "object"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "oneOffSplitParticipants": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "amount": {
                      "type": "integer"
                    },
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "amount"
                  ],
                  "type": "object"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "subcategory": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "tagIds": {
                "items": {
                  "type": "string"
                },
                "type": [
                  "null",
                  "array"
                ]
              },
              "transactedAt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "vendorId": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "vendorName": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "type": "object"
          },
          "transactionFieldMasks": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object"
            },
            "type": [
              "null",
              "array"
            ]
          },
          "transactionId": {
            "type": "string"
          },
          "transactionNameHint": {
            "type": [
              "null",
              "string"
            ]
          },
          "useLatestTransaction": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "type": "object"
      },
      "scope": "write",
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Update transaction"
      }
    }
  ]
}
