Era Context MCP connector
OAuth 2.1/DCRAccounting & FinanceAIProductivityConnect to Era Context MCP. Access personal finance data including transactions, accounts, spending insights, and AI-powered financial knowledge from Era.
Era Context MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'eracontextmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Era Context MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'eracontextmcp_accounts__list_financial_accounts',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "eracontextmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Era Context MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="eracontextmcp_accounts__list_financial_accounts",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- **Update transactions ** — Bulk-update up to 100 transactions: set category, description, merchant name, or review status
- **Search transactions ** — Search and filter transactions by merchant name, description, amount range, category, date range, and direction (debit/credit)
- Links transactions manage transfer — List, confirm, or reject system-detected transfer pairs between transactions (e.g
- Tags transactions manage transaction — Create, list, update, delete, assign, or remove user-defined tags on transactions
- Transaction transactions manage manual — Create, update, or delete transactions on a manual account
- Categories transactions manage — Create, update, hide, delete, merge, or reorder spending categories
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
eracontextmcp_accounts__check_account_balance#Get the current and available balance for a specific account, including credit limit if applicable. Requires an account_group_key from List Financial Accounts.1 param
Get the current and available balance for a specific account, including credit limit if applicable. Requires an account_group_key from List Financial Accounts.
account_group_keystringrequiredThe account group projection key. Obtain from accounts__list_financial_accounts (the account_group_key field).eracontextmcp_accounts__list_financial_accounts#List all linked accounts (bank, credit card, investment, manual) with balances and the account_group_key values used by other tools.1 param
List all linked accounts (bank, credit card, investment, manual) with balances and the account_group_key values used by other tools.
include_hiddenbooleanoptionalSet to true to also show accounts the user has chosen to hide. Default: false (only visible accounts).eracontextmcp_accounts__manage_account#Create, update, delete, or set the balance of a manually tracked account. Use action to specify the operation; amount must be a positive integer with a separate direction field.12 params
Create, update, delete, or set the balance of a manually tracked account. Use action to specify the operation; amount must be a positive integer with a separate direction field.
actionstringrequiredWhat to do: 'create' adds a new manual account, 'update' changes account properties (account_name applies to any account type; other fields are manual-only), 'delete' soft-deletes a manual account and its transactions, 'set_balance' records a balance snapshot on a manual account.account_group_keystringoptionalThe account group projection key identifying the account. Required for update, delete, and set_balance. Obtain from accounts__list_financial_accounts (the account_id field).account_namestringoptionalThe user-supplied display name (e.g., "Home Mortgage", "Savings Jar"). Required for create. On update, applies to any account type — manual or connected — and writes a user-layer override that surfaces as the effective name; the institution-supplied name is preserved underneath. Mutually exclusive with 'clear_account_name'.account_number_maskstringoptionalPartial account number (last 4 digits). Do NOT supply the full account number. On update: manual accounts only.account_typestringoptionalThe account type classification. Required for create (manual). On update: manual accounts only — supplying this for a connected account is rejected.amount_minor_unitsintegeroptionalThe balance amount in integer minor units (e.g., 150050 for $1,500.50, or 1000 for 1000 JPY). Required for set_balance. Positive = asset; negative = liability.as_of_datestringoptionalAs-of date for the balance record in ISO 8601 format (e.g., "2026-04-15"). Defaults to today if not specified. Optional, set_balance only.balance_currencystringoptionalISO 4217 currency for the balance (required for set_balance).clear_account_namebooleanoptionalOn update: set to true to remove a previously applied user account-name override, reverting the display name to the institution-supplied value (or empty when no provider name exists). Mutually exclusive with 'account_name'. Account-type-agnostic.currencystringoptionalISO 4217 currency for the account (required for create).initial_balance_minor_unitsintegeroptionalStarting balance in integer minor units (e.g., 150050 for $1,500.50, or 1000 for 1000 JPY). Positive = asset; negative = liability. Optional, create only.institution_namestringoptionalInstitution name for display and fingerprint matching (e.g., "Chase", "Fidelity"). On update: manual accounts only.eracontextmcp_accounts__set_account_visibility#Show or hide an account in the dashboard without disconnecting it — the account continues to sync.2 params
Show or hide an account in the dashboard without disconnecting it — the account continues to sync.
account_group_keystringrequiredThe account group projection key. Obtain from accounts__list_financial_accounts (the account_group_key field).visiblebooleanrequiredSet to true to show the account (Owner scope) or false to hide it (UserExcluded scope).eracontextmcp_accounts__toggle_balance_backfill#Enable balance history derivation from transaction data, or disable it to revert to snapshot-only balances.2 params
Enable balance history derivation from transaction data, or disable it to revert to snapshot-only balances.
account_group_keystringrequiredThe account group projection key identifying the target account group. Obtain from accounts__list_financial_accounts (the account_id field). Must be a manual account.enablebooleanrequiredSet to true to enable balance derivation from transaction history. Set to false to disable and revert to snapshot-only balance behavior.eracontextmcp_billing__cancel_subscription#Two-step cancellation: first call returns a confirmation key; second call with that key executes the cancellation.2 params
Two-step cancellation: first call returns a confirmation key; second call with that key executes the cancellation.
reasonstringrequiredWhy the user wants to cancel. Summarize their stated reason concisely.confirmation_keystringoptionalThe confirmation key from the first call. Omit on first call to receive a key; pass it on the second call to execute the cancellation.eracontextmcp_billing__get_current_plan#Get the user's active plan tier, billing period, feature entitlements, and usage against plan limits.0 params
Get the user's active plan tier, billing period, feature entitlements, and usage against plan limits.
eracontextmcp_billing__list_plans#List all available subscription plans with pricing, billing periods, and plan identifiers needed for the upgrade tool.1 param
List all available subscription plans with pricing, billing periods, and plan identifiers needed for the upgrade tool.
product_keystringoptionalWhich product to explore plan options for (e.g., 'hub', 'quant'). Defaults to 'hub' if omitted.eracontextmcp_billing__uncancel_subscription#Reverse a pending subscription cancellation before it takes effect, optionally with a winback discount.1 param
Reverse a pending subscription cancellation before it takes effect, optionally with a winback discount.
apply_couponbooleanoptionalWhether to apply the 50% off winback coupon during the uncancel. Defaults to true. Set to false if the user does not want the discount.eracontextmcp_billing__upgrade#Upgrade to a higher tier or different billing period. Use billing__list_plans first to get valid plan identifiers.6 params
Upgrade to a higher tier or different billing period. Use billing__list_plans first to get valid plan identifiers.
billing_periodstringrequiredHow often to bill: 'monthly', 'quarterly', or 'yearly'.target_planstringrequiredWhich plan to subscribe to (e.g., 'organize', 'automate', 'optimize'). Use billing__list_plans to see available plans.client_reference_idstringoptionalOptional client reference ID for referral attribution. Passed through to Stripe unchanged.coupon_idstringoptionalOptional Stripe coupon ID from Rewardful for referral discounts. Ignored when a promotion code is also provided.product_keystringoptionalWhich product to upgrade (e.g., 'hub', 'quant'). Defaults to 'hub' if omitted.promotion_codestringoptionalOptional promotion code to apply a discount at checkout (e.g., 'SAVE50'). Omit to let the user enter one manually.eracontextmcp_connections__connect_bank_account#Start a bank account connection flow via Plaid or a direct integration and return a redirect URL for the user to complete.2 params
Start a bank account connection flow via Plaid or a direct integration and return a redirect URL for the user to complete.
assistant_namestringoptionalYour name or the name of the AI assistant being used (e.g. 'Claude', 'ChatGPT'). This helps personalize the connection experience for the user.connection_idstringoptionalOptional existing connection ID for reconnection flows. Provide this to reconnect a stale or broken connection instead of creating a new one. Get connection IDs from the accounts listing.eracontextmcp_connections__disconnect_institution#Permanently remove a linked institution connection and unlink all associated accounts. Get the connection_id from accounts__list_financial_accounts.1 param
Permanently remove a linked institution connection and unlink all associated accounts. Get the connection_id from accounts__list_financial_accounts.
connection_idstringrequiredThe connection ID of the institution to disconnect. Obtain from accounts__list_financial_accounts (the connection_id field on account entries).eracontextmcp_help__get_help#Get help content for a specific topic: getting_started, connecting_accounts, what_can_i_ask, privacy_and_security, or troubleshooting. Topic is required.1 param
Get help content for a specific topic: getting_started, connecting_accounts, what_can_i_ask, privacy_and_security, or troubleshooting. Topic is required.
topicstringrequiredThe help topic to retrieve. Use 'getting_started' for first-time users, 'connecting_accounts' for account linking guidance, 'what_can_i_ask' for example prompts, 'privacy_and_security' for data handling details, or 'troubleshooting' for common issues.eracontextmcp_insights__analyze_spending#Break down spending into ranked groups by category, merchant, account, or time period — each with amount, percentage, and transaction count. Supports drill-down: call with group_by=category first, then again with a specific category and group_by=merchant.8 params
Break down spending into ranked groups by category, merchant, account, or time period — each with amount, percentage, and transaction count. Supports drill-down: call with group_by=category first, then again with a specific category and group_by=merchant.
account_group_keystringoptionalFilter to a specific account. Pass the account group projection key from accounts__list_financial_accounts (the account_group_key field).categorystringoptionalFilter to a specific category name for drill-down. For example, first call with group_by='category' to find 'Daily living' is the top category, then call again with category='Daily living' and group_by='merchant' to see which merchants drove that spending.group_bystringoptionalHow to group the spending: 'category' (e.g., Groceries, Transportation), 'merchant' (e.g., Amazon, Starbucks), 'account' (by bank account), 'week' or 'month' (spending over time).include_subcategoriesbooleanoptionalWhen true and group_by is 'category', groups results by parent category with subcategory breakdownperiodstringoptionalTime range for the breakdown. Use 'custom' with period_start/period_end for a specific date range.period_endstringoptionalCustom end date (YYYY-MM-DD). Used when period is 'custom'.period_startstringoptionalCustom start date (YYYY-MM-DD). Used when period is 'custom'.top_nintegeroptionalHow many groups to return, ranked by spending amount (highest first). Default: 10.eracontextmcp_insights__compare_spending_periods#Compare spending between two time periods side-by-side, returning the dollar and percentage change per group.5 params
Compare spending between two time periods side-by-side, returning the dollar and percentage change per group.
account_group_keystringoptionalFilter to a specific account. Pass the account group projection key from accounts__list_financial_accounts (the account_group_key field).categorystringoptionalFilter to a specific category name to compare only that category's spending between the two periods.group_bystringoptionalHow to break down the comparison: 'total' shows one overall comparison, 'category' compares each spending category, 'merchant' compares each merchant.period_astringoptionalThe first time period to compare (shown as the 'current' or 'newer' period in the results).period_bstringoptionalThe second time period to compare against (shown as the 'baseline' or 'older' period).eracontextmcp_insights__forecast_spending#Project end-of-period spending based on current pace and historical patterns.2 params
Project end-of-period spending based on current pace and historical patterns.
account_group_keystringoptionalLimit the projection to a specific account. Pass the account group projection key from accounts__list_financial_accounts (the account_group_key field). Omit to project across all accounts.periodstringoptionalThe time period to project spending for. 'this_month' is most common.eracontextmcp_insights__get_cash_flow#Get multi-period income vs. spending totals broken down by week or month, showing net cash flow per period.3 params
Get multi-period income vs. spending totals broken down by week or month, showing net cash flow per period.
account_group_keystringoptionalFilter to a specific account. Pass the account group projection key from accounts__list_financial_accounts (the account_group_key field). Omit to see cash flow across all accounts.granularitystringoptionalWhether to show cash flow by 'week' or 'month'.num_periodsintegeroptionalHow many periods to include (e.g., 6 months, 12 weeks). Default: 6, max: 12.eracontextmcp_insights__get_daily_financial_summary#Get a day-by-day breakdown of spending and income totals for a specific month, optionally filtered to one category.3 params
Get a day-by-day breakdown of spending and income totals for a specific month, optionally filtered to one category.
category_keystringoptionalOptional fcat_* category key to filter daily totals by a specific category. Omit to get unfiltered totals.monthintegeroptionalMonth number (1-12). Defaults to the current month.yearintegeroptionalYear of the month to query. Defaults to the current year.eracontextmcp_knowledge__confirm_or_reject_inference#Accept or dispute an AI-inferred financial fact. When rejecting, optionally provide the user's correct value.4 params
Accept or dispute an AI-inferred financial fact. When rejecting, optionally provide the user's correct value.
actionstringrequiredThe action to take: 'confirm' to accept the inferred value, or 'reject' to dispute it.slugstringrequiredThe slug of the inferred assertion to confirm or reject. Get assertion slugs from knowledge__get_financial_context_and_overview.corrected_valuestringoptionalThe user's corrected value when rejecting an inference (e.g., the system inferred '$5,000/mo' but the user's actual income is '$8,500/mo'). Only used when action is 'reject'.instance_idstringoptionalInstance identifier for repeatable assertions. Only needed when multiple instances exist for the same slug.eracontextmcp_knowledge__defer_question#Skip a question permanently or snooze it to resurface after a specified number of days.4 params
Skip a question permanently or snooze it to resurface after a specified number of days.
actionstringrequiredThe action to take: 'skip' to decline the question, or 'snooze' to defer it for a number of days.question_slugstringrequiredThe slug of the question to skip or snooze. Get available slugs from knowledge__get_pending_questions.pack_slugstringoptionalThe question pack slug containing this question. Defaults to 'financial-profile-v1' if omitted.snooze_daysintegeroptionalNumber of days to snooze the question (required when action is 'snooze'). The question will be re-surfaced after this many days.eracontextmcp_knowledge__forget#Delete a stored financial fact from the user's profile. Use when the user wants to clear an incorrect or outdated answer.3 params
Delete a stored financial fact from the user's profile. Use when the user wants to clear an incorrect or outdated answer.
slugstringrequiredThe slug of the fact to retract. Get assertion slugs from knowledge__get_financial_context_and_overview.instance_idstringoptionalInstance identifier for repeatable assertions. Only needed when multiple instances exist for the same slug.pack_slugstringoptionalThe question pack slug for flow progress recalculation when retracting an answer to a prompted question. Defaults to 'financial-profile-v1' if omitted.eracontextmcp_knowledge__get_financial_context_and_overview#Get the user's complete financial context — facts, goals, account summary, net worth, monthly spending, top categories, and pending personalization questions. Call this first for comprehensive context.4 params
Get the user's complete financial context — facts, goals, account summary, net worth, monthly spending, top categories, and pending personalization questions. Call this first for comprehensive context.
categorystringoptionalFilter assertions to a specific category (e.g., 'financial', 'preferences', 'goals'). Omit to return all categories.pack_slugstringoptionalThe question pack slug for completion progress data. Defaults to 'financial-profile-v1' if omitted.statusstringoptionalFilter assertions by lifecycle status: 'active' (current facts), 'superseded' (replaced by newer facts), 'retracted' (withdrawn), or 'draft' (not finalized). Omit to return only active assertions.tagsarrayoptionalFilter assertions to those matching specific tags (e.g., ['tax-relevant']). Omit to return all assertions regardless of tags.eracontextmcp_knowledge__get_pending_questions#Get unanswered personalization questions with display text, answer type, and criticality. High-criticality questions unlock additional features.2 params
Get unanswered personalization questions with display text, answer type, and criticality. High-criticality questions unlock additional features.
max_countintegeroptionalMaximum number of questions to return. Defaults to 5 if omitted.pack_slugstringoptionalThe question pack slug to retrieve questions from. Defaults to 'financial-profile-v1' if omitted.eracontextmcp_knowledge__recall_history#Get the full change history for a specific financial fact, including all past values and timestamps.2 params
Get the full change history for a specific financial fact, including all past values and timestamps.
slugstringrequiredThe slug of the fact to retrieve history for. Get assertion slugs from knowledge__get_financial_context_and_overview.instance_idstringoptionalInstance identifier for repeatable assertions. Only needed when multiple instances exist for the same slug.eracontextmcp_knowledge__remember#Store a financial fact, preference, or goal. Populate exactly one typed value field matching the answer_type (text, number, money, date, or boolean).18 params
Store a financial fact, preference, or goal. Populate exactly one typed value field matching the answer_type (text, number, money, date, or boolean).
answer_typestringrequiredThe structural type. For prompted questions, use the answer_type from knowledge__get_pending_questions.slugstringrequiredThe machine-readable identifier. For prompted questions, use the slug from knowledge__get_pending_questions.boolean_valuebooleanoptionalBoolean value for boolean answer type.categorystringoptionalThe logical grouping category. Auto-derived for prompted questions; required for ambient facts.confidencestringoptionalHow certain the system is about this fact: 'definitive' (user explicitly stated), 'confirmed' (inferred and user confirmed), 'inferred' (agent derived, not yet confirmed), or 'observed' (computed from data). Defaults to 'definitive' if omitted.date_valuestringoptionalDate value for date answer type (YYYY-MM-DD).instance_idstringoptionalInstance identifier for repeatable facts that can have multiple values (e.g., 'checking-1', 'savings-2' for account-related facts). Omit for single-value facts.modalitystringoptionalThe nature of the assertion: 'definite' (a stated fact), 'aspirational' (a goal or intention), or 'conditional' (contingent on something). Defaults to 'definite' if omitted.money_periodic_valueobjectoptionalPeriodic money value for money-periodic answer type (amount + currency + frequency).money_relative_valueobjectoptionalRelative money value for money-relative answer type (amount + currency + direction).money_valueobjectoptionalMoney value for money answer type.numeric_valuenumberoptionalNumeric value for number and scale answer types.pack_slugstringoptionalQuestion pack slug for flow tracking. Defaults to 'financial-profile-v1'.sourcestringoptionalHow this fact was captured: 'prompted' (user answered a question), 'conversational' (discovered during chat), 'inferred' (derived by agent), 'observed' (computed from data), or 'imported' (external source). Defaults to 'conversational' if omitted.tagsarrayoptionalOptional tags for additional categorization (e.g., ['tax-relevant', 'high-priority']).text_valuestringoptionalString value for text, text-multiline, single-select, multi-select (comma-separated), country (ISO alpha-2), and region answer types.valid_timestringoptionalWhen this fact became true in the user's life (YYYY-MM-DD). Omit if the fact has no specific start date.valid_untilstringoptionalWhen this fact should be considered stale and re-asked (YYYY-MM-DD). Omit if the fact does not expire.eracontextmcp_knowledge__show_question_ui#Render an interactive prompt for a specific pending question, including answer constraints and suggested presentation format.2 params
Render an interactive prompt for a specific pending question, including answer constraints and suggested presentation format.
question_slugstringrequiredThe slug of the question to present as a visual form. Get available slugs from knowledge__get_pending_questions.pack_slugstringoptionalThe question pack slug containing this question. Defaults to 'financial-profile-v1' if omitted.eracontextmcp_referral__get_dashboard_sso#Get a single-sign-on URL for the user's referral dashboard without a separate login.0 params
Get a single-sign-on URL for the user's referral dashboard without a separate login.
eracontextmcp_referral__get_referral_link#Get the user's unique shareable referral link for inviting others.0 params
Get the user's unique shareable referral link for inviting others.
eracontextmcp_referral__get_referral_stats#Get referral performance stats: invites sent, conversions, and earnings.0 params
Get referral performance stats: invites sent, conversions, and earnings.
eracontextmcp_referral__join_referral_program#Enroll the user in the referral program and create their affiliate profile.0 params
Enroll the user in the referral program and create their affiliate profile.
eracontextmcp_referral__switch_referral_campaign#Switch the user's active referral campaign to a different slug.1 param
Switch the user's active referral campaign to a different slug.
slugstringrequiredThe campaign slug to switch to. Valid values: 'invite' or 'creator'.eracontextmcp_transactions__import_csv_transactions#Import transactions from a CSV export of Monarch, Copilot, YNAB, Mint, or Wells Fargo. Use preview_only=true to validate before committing.4 params
Import transactions from a CSV export of Monarch, Copilot, YNAB, Mint, or Wells Fargo. Use preview_only=true to validate before committing.
account_group_keystringrequiredThe account group projection key of the manual account to import into. Obtain from accounts__list_financial_accounts (the account_id field). Must be a manual account.csv_contentstringrequiredThe complete CSV text content (including header row). Pass the raw CSV as a string — do NOT base64-encode, MCP is text-native.formatstringoptionalOptional format hint to bypass auto-detection. Supported values: "monarch", "copilot", "ynab", "mint", "wellsfargo", "chase", "bankofamerica", "amex", "schwab". If omitted, format is auto-detected from the CSV header row.preview_onlybooleanoptionalWhen true, parse and validate the CSV but do not write transactions. Returns per-row validation verdicts (valid/invalid + reason). Default: false.eracontextmcp_transactions__list_recurring_charges#List detected recurring charges (subscriptions, bills, income) with merchant, amount, and frequency.2 params
List detected recurring charges (subscriptions, bills, income) with merchant, amount, and frequency.
active_onlybooleanoptionalWhen true (default), only shows recurring items that have appeared within the last 60 days. Set to false to also include items that may have stopped.typestringoptionalFilter by type: 'subscription' (Netflix, Spotify, etc.), 'bill' (rent, utilities, etc.), 'income' (salary, freelance, etc.), or 'all' for everything.eracontextmcp_transactions__list_spending_categories#Get the full category tree with fcat_* keys, icons, and spending types. Call this to discover valid category keys for other tools.0 params
Get the full category tree with fcat_* keys, icons, and spending types. Call this to discover valid category keys for other tools.
eracontextmcp_transactions__list_transactions#Paginated chronological list of transactions with optional filters for date, account, category, tags, and review status. For keyword searches, use search_transactions instead.10 params
Paginated chronological list of transactions with optional filters for date, account, category, tags, and review status. For keyword searches, use search_transactions instead.
account_group_keystringoptionalFilter to transactions from a specific account. Pass the account group projection key from accounts__list_financial_accounts (the account_group_key field).category_keystringoptionalFilter to transactions with this fcat_* category projection key. Get category keys from transactions__list_spending_categories. When combined with include_children=true, includes transactions from all subcategories.from_datestringoptionalStart date for transaction range (YYYY-MM-DD). Defaults to all available transaction history.include_childrenbooleanoptionalWhen true and category_key is set, includes transactions from the parent category and all its subcategories. Use this for parent category transaction counts.pageintegeroptionalPage number (1-based)page_sizeintegeroptionalNumber of transactions per page (max 100)review_statusstringoptionalFilter to transactions by their review status. System rules like anomaly detection and bounced payment detection automatically flag transactions as 'needs_review'.rule_idsarrayoptionalRule projection keys (e.g. ["frul_abc"]). Only transactions matched by at least one of these rules are returned. Maximum 50 items; requests with more than 50 items are rejected with an error. Get rule keys from transactions__manage_automation_rules with 'list' action.tag_keysarrayoptionalTag projection keys (e.g. ["ftag_abc"]). Only transactions with at least one of these tags are returned. Maximum 50 items; requests with more than 50 items are rejected with an error. Get tag keys from transactions__manage_transaction_tags with 'list_tags' action.to_datestringoptionalEnd date for transaction range (YYYY-MM-DD). Defaults to today.eracontextmcp_transactions__manage_automation_rules#Create, list, update, delete, or enable rules that auto-categorize or tag matching transactions. Supports per-transaction and pattern-detection (transfer/recurring) rules.21 params
Create, list, update, delete, or enable rules that auto-categorize or tag matching transactions. Supports per-transaction and pattern-detection (transfer/recurring) rules.
actionstringrequiredWhat to do. Create adds a new rule, list shows existing rules, update changes a rule's conditions or actions, delete removes a rule permanently, enable/disable turns a rule on or off without deleting it, preview tests filters against recent transactions without saving anything.actionsarrayoptionalWhat to do with matching transactions (required for create and update). You can combine multiple actions. For category, merchant rename, description, review status, hide, and transfer actions, only the highest-priority rule's action applies. Tag actions (add/remove) always apply from all matching rules.application_scopestringoptionalDetermines which transactions this rule applies to. Prospective applies only to new transactions going forward. Retroactive applies only when explicitly re-running against existing transactions. Both (default) does both.applies_fromstringoptionalOnly apply this rule to transactions dated on or after this date (YYYY-MM-DD). Omit to apply to transactions of any date.applies_tostringoptionalOnly apply this rule to transactions dated on or before this date (YYYY-MM-DD). Omit to apply to transactions of any date.apply_retroactivelybooleanoptionalWhether to immediately apply the rule to the user's existing transactions. Default: true — all matching transactions are updated right away. When updating an existing rule, the old matches are undone first and the new definition is applied fresh. Set to false only if the user explicitly asks for the rule to apply to future transactions only.descriptionstringoptionalAn optional note explaining what this rule does or why it was created.filtersarrayoptionalConditions that determine which transactions this rule matches (required for create and update). When multiple filters are provided at the top level, ALL must match (AND logic). Use 'or' type filters to match ANY of several conditions.include_inactivebooleanoptionalWhen listing rules, set to true to also include disabled rules. Default: false (only active rules are shown).pattern_specobjectoptionalThe pattern detection specification. Required for pattern-scope rules. Supports four types: pair_match (transfer detection between accounts), frequency_threshold (counting occurrences in a window), recurring_group (periodic merchant charge detection), and statistical_anomaly (z-score anomaly detection).priorityintegeroptionalRules with higher priority numbers are evaluated first. When two rules could both set a category (or merchant name, etc.) on the same transaction, the higher-priority rule wins. Default: 0.revert_retroactivelybooleanoptionalWhen deleting or disabling a rule, whether to undo the changes it previously made to transactions (e.g., remove the category it assigned, remove tags it added). Default: false — previous changes are left in place. Set to true for a clean undo so the user's transactions return to their state before the rule existed.rule_keystringoptionalThe unique key of an existing rule. Required for update, delete, enable, and disable. Get this from the 'list' action response.rule_namestringoptionalA short, descriptive name for the rule (e.g., 'Categorize Uber as Transportation'). Required for create and update.rule_scopestringoptionalThe rule scope: 'transaction' (default) evaluates filters against each individual transaction. 'pattern' evaluates a pattern specification against a time-windowed batch of transactions.trigger_modestringoptionalWhen to trigger pattern evaluation. Defaults to 'on_batch_complete' for pattern rules, 'on_each_transaction' for transaction rules.user_overridesobjectoptionalOptional overrides for library rule parameters. Must match the rule's pattern_spec type (e.g. pair_match overrides for a pair_match rule). Library rules cannot be created or deleted, but their behavior can be customized using this field on update.versionintegeroptionalThe current version number of the rule, used to prevent conflicting edits. REQUIRED for update, delete, enable, and disable. Get this value from the 'list' action response. If someone else changed the rule since you last read it, the operation will fail with a conflict error — re-read the rule and retry.window_daysintegeroptionalHow many days to look back when searching for matching patterns. Required for pattern-scope rules. Must be between 1 and 365.window_exclude_trigger_accountbooleanoptionalWhen true, transactions from the same account as the trigger are excluded from the window query. Useful for transfer detection to avoid self-matching.window_lookahead_daysintegeroptionalHow many days to look ahead when searching for matching patterns. Default: 0 (no lookahead).eracontextmcp_transactions__manage_categories#Create, update, hide, delete, merge, or reorder spending categories. New categories require a parent_category_key and URL-safe slug.14 params
Create, update, hide, delete, merge, or reorder spending categories. New categories require a parent_category_key and URL-safe slug.
actionstringrequiredWhat to do. Create adds a new custom category, update changes display properties, hide/unhide controls visibility, delete removes a user-created category, merge_categories combines multiple into one.apply_retroactivelybooleanoptionalWhen true, retroactively re-evaluates transactions (up to 12 months) after mapping rules are created. Defaults to true.assignment_eligibilitystringoptionalControls whether the AI agent can auto-assign transactions to this category. Optional.category_keystringoptionalThe category key to operate on. Required for update, hide, unhide, delete. For merge_categories this is the target category key.descriptionstringoptionalA description of what this category covers. Optional.display_orderintegeroptionalDisplay order within sibling group. Optional.icon_namestringoptionalA single UTF emoji character used as the category icon in the UI (e.g. "🏠", "💰"). Optional.merge_source_keysarrayoptionalCategory keys to merge into the target. Required for merge_categories. These categories will be hidden.namestringoptionalThe display name for the category. Required for create, optional for update (null = unchanged).parent_category_keystringoptionalThe parent category key (fcat_*) under which to create the new category. Required for create.reorder_entriesarrayoptionalList of {category_key, display_order} pairs. Required for reorder.slugstringoptionalA unique URL-safe slug for the new category (lowercase alphanumeric and hyphens, 2-50 chars). Required for create.source_system_keysarrayoptionalSystem category keys (fcat_*) whose transactions should be routed to this new category. Used with create and merge_categories. Each source gets a mapping rule.spending_typestringoptionalSpending classification for budgeting and analytics. Optional.eracontextmcp_transactions__manage_manual_transaction#Create, update, or delete transactions on a manual account. Amount must be a positive integer; use direction=outflow or inflow. Currency is required for create.3 params
Create, update, or delete transactions on a manual account. Amount must be a positive integer; use direction=outflow or inflow. Currency is required for create.
account_group_keystringrequiredThe account group projection key shared by all operations. Obtain from accounts__list_financial_accounts (the account_id field). Must be a manual account.operationsarrayrequiredArray of transaction operations to execute sequentially. Each has its own action and fields.preview_onlybooleanoptionalWhen true, parse and validate all operations but do not write anything. Returns per-operation validation verdicts (valid/invalid + reason). Default: false.eracontextmcp_transactions__manage_transaction_tags#Create, list, update, delete, assign, or remove user-defined tags on transactions. version is required for update and delete.11 params
Create, list, update, delete, assign, or remove user-defined tags on transactions. version is required for update and delete.
actionstringrequiredWhat to do: 'create_tag' makes a new tag, 'list_tags' shows all tags, 'get_tag' gets details for one tag, 'update_tag' changes a tag's name or appearance, 'delete_tag' removes a tag, 'assign_tags' attaches a tag to specific transactions, 'remove_tags' detaches a tag from specific transactions.colorstringoptionalA hex color code for the tag's visual appearance (e.g., '#FF5733'). Optional.display_namestringoptionalThe name shown to the user (e.g., 'Business Trip'). Optional when creating (defaults to the tag name). Required when updating. Maximum 50 characters.iconstringoptionalAn icon name for the tag's visual appearance. Optional.include_deletedbooleanoptionalWhen listing tags, set to true to also include previously deleted tags. Default: false.namestringoptionalThe tag name (required for create_tag). Spaces are replaced with hyphens and text is lowercased to create a stable identifier (e.g., 'Business Trip' becomes 'business-trip'). Maximum 50 characters.tag_keystringoptionalThe tag's unique identifier (required for get_tag, update_tag, delete_tag, assign_tags, remove_tags). Get this from create_tag or list_tags responses.tag_typestringoptionalWhether this tag was created by the user ('user', default) or by an automation rule ('auto').transaction_idsarrayoptionalThe transaction group IDs (utgr_*) to tag or untag. REQUIRED for assign_tags and remove_tags. Get these from transactions__list_transactions or transactions__search_transactions responses. Up to 100 per call.type_filterstringoptionalWhen listing tags, only show tags of this type. Optional.versionintegeroptionalThe current version number of the tag, used to prevent conflicting edits. REQUIRED for update_tag and delete_tag. Get this from list_tags or get_tag responses.eracontextmcp_transactions__manage_transfer_links#List, confirm, or reject system-detected transfer pairs between transactions (e.g. a credit card payment matched to a bank debit).3 params
List, confirm, or reject system-detected transfer pairs between transactions (e.g. a credit card payment matched to a bank debit).
actionstringrequiredWhat to do: 'list' shows detected transfer links between accounts, 'confirm' marks a detected transfer as confirmed by the user (upgrades confidence), 'reject' removes a false positive transfer link and prevents re-detection.transaction_idstringoptionalWhen listing, only show transfer links involving this specific transaction. Optional.transfer_link_idstringoptionalThe unique identifier of the transfer link to confirm or reject. Get this from the 'list' action response. Required for confirm and reject.eracontextmcp_transactions__search_transactions#Search and filter transactions by merchant name, description, amount range, category, date range, and direction (debit/credit). Returns matching transactions with total count and sum — no arithmetic needed. Use for targeted questions like 'how much did I spend at Starbucks?', 'what was that $50 charge?', or 'show me all refunds this month'. Supports free-text search so exact merchant names are not required. Use category_slug with a parent category (e.g., 'daily-living') to search across all subcategories (Groceries, Dining out, etc.). For browsing recent activity chronologically, prefer transactions__list_transactions instead. Session context from knowledge__get_financial_context_and_overview enriches these results with the user's profile, goals, and preferences.17 params
Search and filter transactions by merchant name, description, amount range, category, date range, and direction (debit/credit). Returns matching transactions with total count and sum — no arithmetic needed. Use for targeted questions like 'how much did I spend at Starbucks?', 'what was that $50 charge?', or 'show me all refunds this month'. Supports free-text search so exact merchant names are not required. Use category_slug with a parent category (e.g., 'daily-living') to search across all subcategories (Groceries, Dining out, etc.). For browsing recent activity chronologically, prefer transactions__list_transactions instead. Session context from knowledge__get_financial_context_and_overview enriches these results with the user's profile, goals, and preferences.
account_group_keystringoptionalFilter to transactions from a specific account. Pass the account group projection key from accounts__list_financial_accounts (the account_group_key field).categorystringoptionalFilter to a specific category name (e.g., 'Groceries', 'Transportation').category_keystringoptionalFilter to transactions with this fcat_* category projection key. Get category keys from transactions__list_spending_categories. When combined with include_children=true, includes transactions from all subcategories.category_slugstringoptionalFilter by category using a slug (e.g., 'daily-living', 'groceries'). When a parent category slug is used (e.g., 'daily-living'), automatically includes all subcategories (Groceries, Dining out, etc.).directionstringoptionalFilter by money direction: 'debit' for money going out (purchases, payments), 'credit' for money coming in (income, refunds), or 'all' for both.include_childrenbooleanoptionalWhen true and category_key is set, includes transactions from the parent category and all its subcategories. Use this for parent category transaction counts.limitintegeroptionalMaximum number of transactions to return (1-50). The response also includes total_results count and sum even if the limit clips the list.max_amountnumberoptionalMaximum transaction amount.min_amountnumberoptionalMinimum transaction amount. Use negative values for charges/debits (e.g., -100 finds charges of $100 or more).periodstringoptionalTime range to search within. Use 'custom' with period_start/period_end for a specific date range.period_endstringoptionalCustom end date (YYYY-MM-DD). Used when period is 'custom'.period_startstringoptionalCustom start date (YYYY-MM-DD). Used when period is 'custom'.querystringoptionalFree-text search across merchant name and description. Exact merchant names are not required — partial matches work (e.g., 'star' matches 'Starbucks').review_statusstringoptionalFilter to transactions by their review status. System rules like anomaly detection and bounced payment detection automatically flag transactions as 'needs_review'.rule_idsarrayoptionalRule projection keys (e.g. ["frul_abc"]). Only transactions matched by at least one of these rules are returned. Maximum 50 items; requests with more than 50 items are rejected with an error. Get rule keys from transactions__manage_automation_rules with 'list' action.sort_bystringoptionalHow to order the results: by 'date' (newest first), 'amount', or 'merchant' name.tag_keysarrayoptionalTag projection keys (e.g. ["ftag_abc"]). Only transactions with at least one of these tags are returned. Maximum 50 items; requests with more than 50 items are rejected with an error. Get tag keys from transactions__manage_transaction_tags with 'list_tags' action.eracontextmcp_transactions__update_transactions#Bulk-update up to 100 transactions: set category, description, merchant name, or review status. Use clear_* fields to revert overrides to automatic values.9 params
Bulk-update up to 100 transactions: set category, description, merchant name, or review status. Use clear_* fields to revert overrides to automatic values.
transaction_idsarrayrequiredIDs of the transactions to update (up to 100 at once). Get these from transactions__list_transactions or transactions__search_transactions.category_keystringoptionalThe category to assign to these transactions. Call transactions__list_spending_categories first to get valid category keys.clear_categorybooleanoptionalRemove the user's manual category choice, reverting to the automatically detected category.clear_descriptionbooleanoptionalRemove the user's custom description, reverting to the original description from the bank.clear_merchant_namebooleanoptionalRemove the user's custom merchant name, reverting to the original name from the bank.clear_review_statusbooleanoptionalClear the review status. Use this instead of review_status when removing a status.descriptionstringoptionalSet a custom note or description for these transactions.merchant_namestringoptionalSet a custom merchant name for these transactions (e.g., rename 'AMZN*1234' to 'Amazon').review_statusstringoptionalReview status to assign: needs_review, reviewed, or flagged.