Skip to main content

Documentation Index

Fetch the complete documentation index at: https://help.mytruv.com/llms.txt

Use this file to discover all available pages before exploring further.

MyTruv MCP exposes 10 read-only tools. Your AI assistant decides which to call based on your prompt - you don’t need to invoke them directly.
ToolWhat it does
accountBalancesCurrent balances across all connected accounts
balanceHistoryAssets, liabilities, and net worth over time
connectedAccountsLookupList all connected links with status
transactionHistoryTransactions from connected bank accounts
searchTransactionsSearch and filter by text, amount, category, date
recurringTransactionsSubscriptions, bills, and recurring income
spendingAnalysisSpending by category, merchant, or time period
incomeReportAll income sources from payroll and bank data
getPayrollIncomePay stub history for a specific employer
getBankIncomeBank-derived income analysis for a specific account

accountBalances

Returns a snapshot of every connected account with individual balances and aggregated totals grouped by account type. Parameters: none. Response fields:
FieldTypeDescription
total_accountsintegerNumber of connected accounts
accounts[].idstringAccount ID - pass to account_ids in other tools
accounts[].typestringCHECKING, SAVINGS, CREDIT_CARD, INVESTMENT, LOAN, etc.
accounts[].subtypestring | nulle.g. BROKERAGE, ROTH_IRA for investment accounts
accounts[].maskstringMasked account number
accounts[].nicknamestringAccount display name
accounts[].balances.balancestringCurrent balance
accounts[].balances.available_balancestring | nullAvailable balance
accounts[].balances.credit_limitstring | nullCredit limit (credit cards only)
accounts[].providerobjectInstitution {id, name, logo_url}
aggregated_balances[]arrayTotals grouped by type + currency_code, with account_count
Example prompt: “What’s my current balance across all accounts?” Related: REST - Balances

balanceHistory

Returns historical balances across all connected accounts. Aggregates by default - filter with account_ids for specific accounts. Parameters:
ParameterTypeRequiredDefaultDescription
date_rangestringNo3M1M, 3M, 6M, 1Y, or ALL
account_idsstringNoAllComma-separated account IDs
Response fields:
FieldTypeDescription
time_series[].datestringYYYY-MM-DD
time_series[].assetsstringTotal asset value
time_series[].liabilitiesstringTotal liability value
time_series[].net_worthstringAssets minus liabilities
start_date / end_datestringRange of the series
Example prompt: “Show me my net worth trend over the last 6 months.” Related: REST - Balance History

connectedAccountsLookup

Lists every account link (connection) with provider and status.
This returns id for each link. To get the link_id value used by getPayrollIncome and getBankIncome, call incomeReport and use employments[].link_id from there - that field is curated for the income flow.
Parameters: none. Response fields:
FieldTypeDescription
results[].idstringUnique link identifier
results[].providerobjectProvider {id, name, logo_url}
results[].data_sourcestringpayroll or financial_accounts
results[].statusstringdone, session_expired, etc.
results[].initial_product_typestringProduct the link was originally created for
results[].created_at / updated_at / deleted_atstringTimestamps
Example prompt: “What accounts do I have connected?” Related: REST - Account Links

transactionHistory

Fetches transactions from all connected bank accounts and combines them into a single report. Descriptions are anonymized for privacy. Parameters:
ParameterTypeRequiredDefaultDescription
daysintegerNo30Number of days to retrieve (max 365)
categoriesstringNoAllComma-separated category names
Response fields:
FieldTypeDescription
countintegerTotal number of transactions
accounts[]arrayBank accounts with balances (same shape as accountBalances.accounts[])
transactions[].idstringTransaction ID
transactions[].account_idstringSource account ID
transactions[].amountstringTransaction amount
transactions[].currency_codestringe.g. USD
transactions[].categoriesarrayDisplay category names (e.g. ["Food & Dining", "Restaurants"])
transactions[].category_slugsarraySnake-case slugs for the same categories
transactions[].descriptionstringDescription (personal names anonymized, e.g. R***a K*****a)
transactions[].merchant_namestring | nullCleaned-up merchant name
transactions[].memostring | nullMemo line if present
transactions[].statusstringPOSTED or PENDING
transactions[].typestringCREDIT (money in) or DEBIT (money out)
transactions[].posted_atstring | nullWhen the transaction posted (null while pending)
transactions[].transacted_atstringWhen the purchase actually happened
Example prompt: “Show me all my grocery transactions from the last 2 weeks.” Related: REST - Transactions

searchTransactions

More powerful than transactionHistory for targeted lookups. Supports text search, amount ranges, type filtering, and pagination. Parameters:
ParameterTypeRequiredDefaultDescription
querystringNo-Text in descriptions and memos (case-insensitive)
min_amountnumberNo-Minimum absolute amount
max_amountnumberNo-Maximum absolute amount
transaction_typestringNoAllDEBIT or CREDIT
categoriesstringNoAllComma-separated category names
daysintegerNo90Days to look back (max 365)
sort_bystringNodatedate or amount
sort_orderstringNodescdesc or asc
limitintegerNo20Results per page (max 50)
offsetintegerNo0Pagination offset
Response fields:
FieldTypeDescription
total_matchesintegerTotal matching transactions before pagination
transactions[]arraySame shape as transactionHistory.transactions[]
Example prompts:
  • “Find all transactions over $500 in the last 90 days.”
  • “How much did I spend at coffee shops?“

recurringTransactions

Detects recurring patterns from bank data and splits them into inflows (income) and outflows (expenses). Parameters:
ParameterTypeRequiredDefaultDescription
statusstringNoactiveactive, inactive, irregular, or all
Top-level shape: {recurring_transactions: {outflows: [...], inflows: [...]}}. Outflow fields:
FieldTypeDescription
source_id / source_namestringStable ID and human label for the recurring source
account_idstringAccount the recurring transaction posts to
categoriesarrayDisplay category names
descriptionstringRepresentative description
frequencystringW weekly, BW biweekly, SM semi-monthly, M monthly, Q quarterly, Y yearly
average_amount / median_amount / last_amountstringStats across detected occurrences
statusstringactive, inactive, or irregular
first_detected / last_transaction_date / next_expected_datestringDetection window and forecast
logo_urlstring | nullBrand logo when MyTruv has one
historical_transactions[]arrayThe individual transactions used to detect this stream
Inflow fields: same shape as outflow plus income_type (e.g. PAYCHECK). Example prompt: “Show me all my active subscriptions.”

spendingAnalysis

Spending breakdowns grouped by category, merchant, or time period, with trend comparisons. Parameters:
ParameterTypeRequiredDefaultDescription
group_bystringYes-category, merchant, or time_period
time_periodstringYes-day, week, month, quarter, or year
start_datestringNo3 periods backStart date (YYYY-MM-DD)
end_datestringNoTodayEnd date (YYYY-MM-DD)
account_idsstringNoAllComma-separated account IDs
categoriesstringNoAllComma-separated category names
link_idstringNoAll linksFilter to a specific link
min_total_amountnumberNo50.00Group amounts below this threshold as Other
secondary_group_bystringNo-Only when group_by=time_period: nest a top-10 category or merchant breakdown inside each time bucket
INVESTMENT-type accounts (brokerage, crypto, IRA) are always excluded - stock buys, reinvestments, and margin interest are not personal spending.
Response fields (only the field matching group_by is populated; the other two stay null):
FieldTypeDescription
spending.by_category[].categorystringCategory name
spending.by_category[].total_amountstringTotal spent in the category
spending.by_category[].transaction_countintegerNumber of transactions
spending.by_category[].percentage_of_totalstringShare of total spending
spending.by_category[].trendstring | null% change vs prior period
spending.by_category[].subcategories[]arrayNested {name, amount, count} (≥ min_total_amount)
spending.by_category[].time_series[]arrayPer-period {start_date, end_date, amount, count}
spending.by_category[].largest_transactionobjectThe biggest single transaction in this group
spending.by_merchant[]arraySame shape but keyed on merchant_name
spending.by_time_period[]arraySame shape but keyed on period_start / period_end
summary.total_spendingstringTotal across range
summary.average_daily_spendingstringAverage per day
summary.average_monthly_spendingstringAverage per month
summary.total_transactionsintegerTransactions analyzed
summary.unique_merchantsintegerDistinct merchants in range
summary.top_category / top_merchantstringHighest-spending category and merchant
request_idstringRequest identifier (useful for debugging)
created_atstringISO timestamp the analysis was run
Example prompts:
  • “Break down my spending by category this month.”
  • “Compare my spending month over month for the last quarter.”
Related: REST - Spending

incomeReport

Aggregates income from all connected sources and deduplicates entries that appear in both payroll and bank data. Returns one record per employer or income source. Parameters: none. Response fields:
FieldTypeDescription
employments[].link_idstringUse with getPayrollIncome or getBankIncome
employments[].data_sourcestringpayroll or financial_accounts
employments[].providerstringProvider slug (e.g. rippling, chase_bank)
employments[].companyobject{name, address, phone, ein} for payroll; {name} for bank-derived
employments[].incomestringIncome amount
employments[].income_unitstringYEARLY, MONTHLY, etc.
employments[].pay_ratestringPer-pay-period amount
employments[].pay_frequencystringW weekly, BW biweekly, SM semi-monthly, M monthly
employments[].is_activebooleanCurrently active
employments[].job_title / job_typestringTitle and F (full-time) / P (part-time) etc.
employments[].start_date / end_datestring | nullEmployment range
employments[].bank_income_categorystring | nullSet when data_source=financial_accounts
employments[].statement_countintegerPay statements available (payroll only)
summaryobject{total_employments, payroll_sources, bank_sources, deduplicated_bank_sources, connected_bank_links}
Example prompt: “What are my income sources?” Related: REST - Income

getPayrollIncome

Full payroll income report with pay stub history for a single connected payroll account - earnings, deductions, and year-to-date totals for the last 90 days.
Use the link_id from incomeReport - do not guess this value.
Parameters:
ParameterTypeRequiredDefaultDescription
link_idstringYes-link_id from incomeReport
Response fields:
FieldTypeDescription
statusstringdone when the report is ready
provider / data_sourcestringProvider slug, always payroll
employments[].companyobject{name, address, phone, ein}
employments[].is_active / job_title / job_typevariousRole status and metadata
employments[].start_date / end_date / employed_in_rolestringEmployment timeline
employments[].statements[].pay_datestringPayment date
employments[].statements[].period_start / period_endstringPay period covered
employments[].statements[].gross_pay / net_paystring | nullPer-statement totals (older statements may be null)
employments[].statements[].gross_pay_ytd / net_pay_ytdstring | nullYear-to-date totals
employments[].statements[].regular / overtime / bonus / commission / other_paystring | nullEarnings breakdown
employments[].statements[].earnings[]array{name, amount, category, rate, units} line items
employments[].statements[].deductions[]array{name, amount, category} (taxes, retirement, benefits)
employments[].annual_income_summary[]arrayPer-year {year, regular, bonus, commission, overtime, other_pay, net_pay, gross_pay}
Example prompt: “Show me my recent pay stubs from Acme Corp.”

getBankIncome

Income analysis derived from bank transactions for a single connected account. Identifies income streams with historical averages, pay frequency, and the transactions used for detection.
Use the link_id from incomeReport - do not guess this value.
Parameters:
ParameterTypeRequiredDefaultDescription
link_idstringYes-link_id from incomeReport
Response fields:
FieldTypeDescription
income_sources[].namestringSource name (e.g. employer)
income_sources[].categorystringIncome category
income_sources[].average_amountstringHistorical average per payment
income_sources[].frequencystringDetected frequency
income_sources[].transaction_countintegerTransactions analyzed
income_sources[].transactions[]arrayIndividual transactions used for detection
Example prompt: “Analyze the income deposits in my Chase checking account.”

Next steps

Try these prompts

Ready-to-use prompts that exercise these tools.

REST API

Programmatic access without an AI assistant.