The Era Context MCP connector routes your AI agent's tool calls to Era Context's own MCP server through Scalekit. Each user signs in to Era Context once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 51 tools.
- Tools
- 51
- What they doRead · write · destructive
- 26 · 19 · 626 read19 write6 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet 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>Create the Era Context MCP connection
In AgentKit > Connections, create an Era Context MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Era Context MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_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)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'eracontextmcp_accounts__list_financial_accounts',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_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)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooleracontextmcp_accounts__check_account_balanceGet the current and available balance for a specific account, including credit limit if applicable.Read-onlyAccounts 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.
Inputs
account_group_keystringrequired- The account group projection key. Obtain from accounts__list_financial_accounts (the account_group_key field).
eracontextmcp_accounts__list_financial_accountsList all linked accounts (bank, credit card, investment, manual) with balances and the account_group_key values used by other tools.Read-onlyAccounts List Financial Accounts
List all linked accounts (bank, credit card, investment, manual) with balances and the account_group_key values used by other tools.
Inputs
include_hiddenboolean- Set to true to also show accounts the user has chosen to hide. Default: false (only visible accounts).default
false
eracontextmcp_billing__get_current_planGet the user's active plan tier, billing period, feature entitlements, and usage against plan limits.Read-onlyBilling Get Current Plan
Get the user's active plan tier, billing period, feature entitlements, and usage against plan limits.
Inputs
currencystring- Which currency to show the amounts in, as an ISO 4217 code (e.g. 'eur', 'gbp'). Optional: omit it and the amounts are shown in the currency this platform can tell the user settles in — the one their live subscriptions are billed in, or, for a user holding no live subscription, the one their past subscriptions settled in — and in the default currency only where it can tell neither, or tells more than one. That is the same currency the response reports as settled_currency, so a null settled_currency means the amounts are in the default currency. A code outside the supported set is rejected rather than substituted, and the rejection names the codes that are supported.
eracontextmcp_billing__list_paymentsList the user's past invoices — what they were charged, when, for which service period, and whether each was paid.Read-onlyBilling List Payments
List the user's past invoices — what they were charged, when, for which service period, and whether each was paid. Use for 'what have I been charged?', 'when was I last billed?', or 'show me my receipts'. Amounts are in minor currency units (cents for USD). Pagination is forward-only and cursor-based, not page-numbered: pass the previous response's next_cursor back as cursor to get the next page, and stop when next_cursor is null (has_more is false). This tool returns no invoice PDF or hosted invoice link, by design.
Inputs
cursorstring- Opaque pagination cursor from the previous page's next_cursor. Omit for the first page. Echo it back exactly as received — it is not an offset and cannot be constructed or incremented.
limitinteger- Maximum invoices to return on this page. Values outside the supported range are clamped server-side, so an out-of-range value degrades to the nearest supported page size rather than failing.
eracontextmcp_billing__list_plansList all available subscription plans with pricing, billing periods, and plan identifiers needed for the upgrade tool.Read-onlyBilling List Plans
List all available subscription plans with pricing, billing periods, and plan identifiers needed for the upgrade tool.
Inputs
currencystring- Which currency to show the plan amounts in, as an ISO 4217 code (e.g. 'eur', 'gbp'). Optional: omit it and the amounts are shown in the currency this platform can tell the user settles in — the one their live subscriptions are billed in, or, for a user holding no live subscription, the one their past subscriptions settled in — and in the default currency only where it can tell neither, or tells more than one. That is the same currency the response reports as settled_currency, so a null settled_currency means the amounts are in the default currency. A code outside the supported set is rejected rather than substituted, and the rejection names the codes that are supported.
product_keystring- Which product to explore plan options for (e.g., 'hub', 'quant'). Defaults to 'hub' if omitted.
eracontextmcp_billing__list_subscriptionsList what the user is actually being charged for right now, read live from Stripe, broken down by individual line item.Read-onlyBilling List Subscriptions
List what the user is actually being charged for right now, read live from Stripe, broken down by individual line item. Use for 'what am I paying for?', 'when does my subscription renew?', 'how much is my add-on?', or 'am I being charged twice?'. Each subscription carries one or more items, and price, billing period and renewal date are per ITEM, not per subscription. A user may also hold more than one subscription. Call billing__list_payments for past invoices rather than inferring them from this response.
Inputs
This tool takes no inputs.
eracontextmcp_connections__list_connectionsList every one of the user's bank connections with an honest, provider-agnostic status for each: whether it is healthy, syncing with no data yet, needs reconnecting, is terminally denied, is currently disconnected, or one of several other narrower states.Read-onlyConnections List Connections
List every one of the user's bank connections with an honest, provider-agnostic status for each: whether it is healthy, syncing with no data yet, needs reconnecting, is terminally denied, is currently disconnected, or one of several other narrower states. This is the discover hop of the connection recovery loop — call this first to get each connection's connection_id, then act on a specific connection with connections__trigger_connection_resync, connections__connect_bank_account, or connections__disconnect_institution.
Inputs
This tool takes no inputs.
eracontextmcp_help__get_helpGet help content for a specific topic: getting_started, connecting_accounts, what_can_i_ask, privacy_and_security, or troubleshooting.Read-onlyHelp 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.
Inputs
topicstringrequired- The 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.one of
getting_startedconnecting_accountswhat_can_i_askprivacy_and_securitytroubleshooting
eracontextmcp_insights__analyze_spendingBreak down spending into ranked groups by category, merchant, account, or time period — each with amount, percentage, and transaction count.Read-onlyInsights 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.
Inputs
account_group_keystring- Filter to a specific account. Pass the account group projection key from accounts__list_financial_accounts (the account_group_key field).
category_keystring- Optional fcat_* category KEY (not a display name) to drill into one category. To get keys, call with group_by='category' and include_subcategories=true; each parent category returns its stable category_key. Pass one back here with group_by='merchant' to see the merchants that drove it. Keys are also listed by transactions__list_spending_categories (the key field). Omit to include all categories.
group_bystring- How to group the spending: 'category' (e.g., Groceries, Transportation), 'merchant' (e.g., Amazon, Starbucks), 'account' (by bank account), 'week' or 'month' (spending over time).one of
categorymerchantaccountweekmonthdefaultcategory include_subcategoriesboolean- When true and group_by is 'category', groups results by parent category with subcategory breakdowndefault
false periodstring- Time range for the breakdown. Use 'custom' with period_start/period_end for a specific date range.one of
this_weekthis_monthlast_monthlast_7_dayslast_30_dayslast_90_daysthis_yearlast_yearcustomall_timedefaultthis_month period_endstring- Custom end date (YYYY-MM-DD). Used when period is 'custom'.
period_startstring- Custom start date (YYYY-MM-DD). Used when period is 'custom'.
top_ninteger- How many groups to return, ranked by spending amount (highest first). Default: 10.default
10
eracontextmcp_insights__compare_spending_periodsCompare spending between two time periods side-by-side, returning the dollar and percentage change per group.Read-onlyInsights Compare Spending Periods
Compare spending between two time periods side-by-side, returning the dollar and percentage change per group.
Inputs
account_group_keystring- Filter to a specific account. Pass the account group projection key from accounts__list_financial_accounts (the account_group_key field).
category_keystring- Optional fcat_* category KEY (not a display name) to compare only that category's spending between the two periods. Obtain the key from transactions__list_spending_categories (the key field) or reuse a category_key returned by insights__analyze_spending. Omit to compare across all categories.
group_bystring- How to break down the comparison: 'total' shows one overall comparison, 'category' compares each spending category, 'merchant' compares each merchant.one of
totalcategorymerchantdefaulttotal period_astring- The first time period to compare (shown as the 'current' or 'newer' period in the results).one of
this_weekthis_monthlast_monthlast_7_dayslast_30_dayslast_90_daysthis_yearlast_yeardefaultthis_month period_bstring- The second time period to compare against (shown as the 'baseline' or 'older' period).one of
this_weekthis_monthlast_monthlast_7_dayslast_30_dayslast_90_daysthis_yearlast_yeardefaultlast_month
eracontextmcp_insights__forecast_spendingProject end-of-period spending based on current pace and historical patterns.Read-onlyInsights Forecast Spending
Project end-of-period spending based on current pace and historical patterns.
Inputs
account_group_keystring- Limit 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.
periodstring- The time period to project spending for. 'this_month' is most common.one of
this_monthlast_monthlast_30_daysthis_yeardefaultthis_month
eracontextmcp_insights__get_cash_flowGet multi-period income vs.Read-onlyInsights Get Cash Flow
Get multi-period income vs. spending totals broken down by week or month, showing net cash flow per period.
Inputs
account_group_keystring- Filter 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.
granularitystring- Whether to show cash flow by 'week' or 'month'.one of
weekmonthdefaultmonth num_periodsinteger- How many periods to include (e.g., 6 months, 12 weeks). Default: 6, max: 12.default
6
eracontextmcp_insights__get_daily_category_spendingGet a per-day, per-category spending breakdown for a calendar month.Read-onlyInsights Get Daily Category Spending
Get a per-day, per-category spending breakdown for a calendar month. Returns one row per day-and-category combination with the spending amount, transaction count, and the user's category display name, plus month totals. Use for spending-calendar drill-downs and questions like 'which categories did I spend on each day this month?' or 'break down my daily spending by category'. For per-day totals of spending, income, and bills use insights__get_daily_financial_summary; for ranked category totals over a period use insights__analyze_spending. For the current month, totals apply a same-day rolling cutoff: rows dated after today are still returned but excluded from total_amount and transaction_count. Results include only posted/settled transactions; pending (authorization-hold) transactions are excluded.
Inputs
monthinteger- Month number (1-12). Defaults to the current month.
yearinteger- Year of the month to query. Defaults to the current year.
eracontextmcp_insights__get_daily_financial_summaryGet a day-by-day breakdown of spending and income totals for a specific month, optionally filtered to one category.Read-onlyInsights Get Daily Financial Summary
Get a day-by-day breakdown of spending and income totals for a specific month, optionally filtered to one category.
Inputs
category_keystring- Optional fcat_* category key to filter daily totals by a specific category. Omit to get unfiltered totals.
monthinteger- Month number (1-12). Defaults to the current month.
yearinteger- Year of the month to query. Defaults to the current year.
eracontextmcp_knowledge__get_financial_context_and_overviewGet the user's complete financial context — facts, goals, account summary, net worth, monthly spending, top categories, and pending personalization questions.Read-onlyKnowledge 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.
Inputs
categorystring- Filter assertions to a specific category (e.g., 'financial', 'preferences', 'goals'). Omit to return all categories.
pack_slugstring- The question pack slug for completion progress data. Defaults to 'financial-profile-v1' if omitted.
statusstring- Filter assertions by lifecycle status: 'active' (current facts), 'superseded' (replaced by newer facts), 'retracted' (withdrawn), or 'draft' (not finalized). Omit to return only active assertions.one of
activesupersededretracteddraft tagsarray- Filter assertions to those matching specific tags (e.g., ['tax-relevant']). Omit to return all assertions regardless of tags.
eracontextmcp_knowledge__get_pending_questionsGet unanswered personalization questions with display text, answer type, and criticality.Read-onlyKnowledge Get Pending Questions
Get unanswered personalization questions with display text, answer type, and criticality. High-criticality questions unlock additional features.
Inputs
max_countinteger- Maximum number of questions to return. Defaults to 5 if omitted.default
5 pack_slugstring- The question pack slug to retrieve questions from. Defaults to 'financial-profile-v1' if omitted.
eracontextmcp_knowledge__recall_historyGet the full change history for a specific financial fact, including all past values and timestamps.Read-onlyKnowledge Recall History
Get the full change history for a specific financial fact, including all past values and timestamps.
Inputs
slugstringrequired- The slug of the fact to retrieve history for. Get assertion slugs from knowledge__get_financial_context_and_overview.
instance_idstring- Instance identifier for repeatable assertions. Only needed when multiple instances exist for the same slug.
eracontextmcp_knowledge__show_question_uiRender an interactive prompt for a specific pending question, including answer constraints and suggested presentation format.Read-onlyKnowledge Show Question Ui
Render an interactive prompt for a specific pending question, including answer constraints and suggested presentation format.
Inputs
question_slugstringrequired- The slug of the question to present as a visual form. Get available slugs from knowledge__get_pending_questions.
pack_slugstring- The question pack slug containing this question. Defaults to 'financial-profile-v1' if omitted.
eracontextmcp_nurture__get_my_statusGet the caller's own nurture (lifecycle email) campaign enrollment status — which campaigns they are currently enrolled in, their progress through each, and whether they have unsubscribed.Read-onlyNurture Get My Status
Get the caller's own nurture (lifecycle email) campaign enrollment status — which campaigns they are currently enrolled in, their progress through each, and whether they have unsubscribed. Use for questions like 'what emails am I signed up for?' or 'am I subscribed to X?'. Call nurture__set_subscription to change the subscription state for a specific campaign.
Inputs
This tool takes no inputs.
eracontextmcp_referral__get_dashboard_ssoGet a single-sign-on URL for the user's referral dashboard without a separate login.Read-onlyReferral Get Dashboard Sso
Get a single-sign-on URL for the user's referral dashboard without a separate login.
Inputs
This tool takes no inputs.
eracontextmcp_referral__get_referral_linkGet the user's unique shareable referral link for inviting others.Read-onlyReferral Get Referral Link
Get the user's unique shareable referral link for inviting others.
Inputs
This tool takes no inputs.
eracontextmcp_referral__get_referral_statsGet referral performance stats: invites sent, conversions, and earnings.Read-onlyReferral Get Referral Stats
Get referral performance stats: invites sent, conversions, and earnings.
Inputs
This tool takes no inputs.
eracontextmcp_transactions__list_recurring_chargesList detected recurring charges (subscriptions, bills, income) with merchant, amount, and frequency.Read-onlyTransactions List Recurring Charges
List detected recurring charges (subscriptions, bills, income) with merchant, amount, and frequency.
Inputs
active_onlyboolean- When 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.default
true typestring- Filter by type: 'subscription' (Netflix, Spotify, etc.), 'bill' (rent, utilities, etc.), 'income' (salary, freelance, etc.), or 'all' for everything.one of
allsubscriptionbillincomedefaultall
eracontextmcp_transactions__list_spending_categoriesGet the full category tree with fcat_* keys, icons, and spending types.Read-onlyTransactions 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.
Inputs
This tool takes no inputs.
eracontextmcp_transactions__list_transactionsPaginated chronological list of transactions with optional filters for date, account, category, tags, and review status.Read-onlyTransactions 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.
Inputs
account_group_keystring- Filter to transactions from a specific account. Pass the account group projection key from accounts__list_financial_accounts (the account_group_key field).
category_keystring- Filter 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_datestring- Start date for transaction range (YYYY-MM-DD). Defaults to all available transaction history.
include_childrenboolean- When true and category_key is set, includes transactions from the parent category and all its subcategories. Use this for parent category transaction counts.default
false pageinteger- Page number (1-based)default
1 page_sizeinteger- Number of transactions per page (max 100)default
50 review_statusstring- Filter to transactions by their review status. System rules like anomaly detection and bounced payment detection automatically flag transactions as 'needs_review'.one of
needs_reviewreviewedflagged rule_idsarray- Rule 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_keysarray- Tag 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_datestring- End date for transaction range (YYYY-MM-DD). Defaults to today.
eracontextmcp_transactions__search_transactionsSearch and filter transactions by merchant name, description, amount range, category, date range, and direction (debit/credit).Read-onlyTransactions 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_key with include_children=true to search across all subcategories of a parent category. 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.
Inputs
account_group_keystring- Filter to transactions from a specific account. Pass the account group projection key from accounts__list_financial_accounts (the account_group_key field).
category_keystring- Filter 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.
directionstring- Filter by money direction: 'debit' for money going out (purchases, payments), 'credit' for money coming in (income, refunds), or 'all' for both.one of
alldebitcreditdefaultall include_childrenboolean- When true and category_key is set, includes transactions from the parent category and all its subcategories. Use this for parent category transaction counts.default
false limitinteger- Maximum number of transactions to return (1-50). The response also includes total_results count and sum even if the limit clips the list.default
25 max_amountnumber- Maximum transaction amount.
min_amountnumber- Minimum transaction amount. Use negative values for charges/debits (e.g., -100 finds charges of $100 or more).
periodstring- Time range to search within. Use 'custom' with period_start/period_end for a specific date range.one of
this_weekthis_monthlast_monthlast_7_dayslast_30_dayslast_90_daysthis_yearlast_yearcustomall_timedefaultall_time period_endstring- Custom end date (YYYY-MM-DD). Used when period is 'custom'.
period_startstring- Custom start date (YYYY-MM-DD). Used when period is 'custom'.
querystring- Free-text search across merchant name and description. Exact merchant names are not required — partial matches work (e.g., 'star' matches 'Starbucks').
review_statusstring- Filter to transactions by their review status. System rules like anomaly detection and bounced payment detection automatically flag transactions as 'needs_review'.one of
needs_reviewreviewedflagged rule_idsarray- Rule 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_bystring- How to order the results: by 'date' (newest first), 'amount', or 'merchant' name.one of
dateamountmerchantdefaultdate tag_keysarray- Tag 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_accounts__set_account_visibilityShow or hide an account in the dashboard without disconnecting it — the account continues to sync.WriteAccounts Set Account Visibility
Show or hide an account in the dashboard without disconnecting it — the account continues to sync.
- Idempotent
Inputs
account_group_keystringrequired- The account group projection key. Obtain from accounts__list_financial_accounts (the account_group_key field).
visiblebooleanrequired- Set to true to show the account (Owner scope) or false to hide it (UserExcluded scope).
eracontextmcp_accounts__toggle_balance_backfillEnable balance history derivation from transaction data, or disable it to revert to snapshot-only balances.WriteAccounts Toggle Balance Backfill
Enable balance history derivation from transaction data, or disable it to revert to snapshot-only balances.
- Idempotent
Inputs
account_group_keystringrequired- The account group projection key identifying the target account group. Obtain from accounts__list_financial_accounts (the account_id field). Must be a manual account.
enablebooleanrequired- Set to true to enable balance derivation from transaction history. Set to false to disable and revert to snapshot-only balance behavior.
eracontextmcp_billing__uncancel_subscriptionReverse a pending subscription cancellation before it takes effect, optionally with a winback discount.WriteBilling Uncancel Subscription
Reverse a pending subscription cancellation before it takes effect, optionally with a winback discount.
- Idempotent
Inputs
apply_couponboolean- Whether 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__upgradeUpgrade to a higher tier or different billing period.WriteBilling Upgrade
Upgrade to a higher tier or different billing period. Use billing__list_plans first to get valid plan identifiers.
Inputs
billing_periodstringrequired- How often to bill: 'monthly', 'quarterly', or 'yearly'.one of
monthlyquarterlyyearly target_planstringrequired- Which plan to subscribe to (e.g., 'organize', 'automate', 'optimize'). Use billing__list_plans to see available plans.
client_reference_idstring- Optional client reference ID for referral attribution. Passed through to Stripe unchanged.
coupon_idstring- Optional Stripe coupon ID from Rewardful for referral discounts. Ignored when a promotion code is also provided.
currencystring- Which currency to bill the subscription in, as an ISO 4217 code (e.g. 'eur', 'gbp'). Optional: omit it and the subscription is billed in whatever currency this account already settles in. Naming a different currency is refused rather than applied whenever this platform can tell which single currency is in force — from the subscription a tier change would alter, or from the account's own settlement history; where it can tell from neither, or the history holds more than one currency, the purchase proceeds. A code outside the supported set is rejected rather than substituted; the rejection names the codes that are supported.
product_keystring- Which product to upgrade (e.g., 'hub', 'quant'). Defaults to 'hub' if omitted.
promotion_codestring- Optional promotion code to apply a discount at checkout (e.g., 'SAVE50'). Omit to let the user enter one manually.
eracontextmcp_connections__connect_bank_accountStart a bank account connection flow via Plaid or a direct integration and return a redirect URL for the user to complete.WriteConnections 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.
- Idempotent
Inputs
assistant_namestring- Your name or the name of the AI assistant being used (e.g. 'Claude', 'ChatGPT'). This helps personalize the connection experience for the user.
connection_idstring- Optional 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.
providerstring- Optional banking provider identifier for this connection. Omit to use the platform's default provider unless you have a specific provider requirement.default
mx
eracontextmcp_connections__set_proactive_sync_modeRecord whether Era may proactively ask a bank connection's provider for fresh data on its own schedule.WriteConnections Set Proactive Sync Mode
Record whether Era may proactively ask a bank connection's provider for fresh data on its own schedule. Set mode='disabled' when the user wants Era to stop reaching out to that bank between their own requests; set mode='enabled' to allow it again. This does NOT stop the connection: webhook updates, reconciliation and reads of data the provider already holds continue either way, and an on-demand refresh the user asks for is always honoured. Use connections__list_connections to obtain the connection_id.
- Idempotent
Inputs
connection_idstringrequired- The connection projection key identifying the bank connection. Obtain from connections__list_connections (the connection_id field on each connection entry).
modestringrequired- 'disabled' to stop Era proactively contacting this bank on its own schedule; 'enabled' to allow it. Repeating the instruction the connection already carries is a no-op — it records nothing and adds nothing to the user's history.one of
enableddisabled
eracontextmcp_connections__trigger_connection_resyncTrigger an on-demand data resync for a bank connection.WriteConnections Trigger Connection Resync
Trigger an on-demand data resync for a bank connection. This fetches the latest transaction and balance data from supported banks — most major institutions support on-demand refresh, though it may take a few minutes for data to arrive. Possible outcomes include: resync queued successfully; the bank requires the user to re-authenticate first; the user's plan does not include on-demand resync; data was already refreshed recently; or the connection was not found. Use connections__list_connections to obtain the connection_id.
- Idempotent
Inputs
connection_idstringrequired- The connection projection key identifying the bank connection to resync. Obtain from connections__list_connections (the connection_id field on each connection entry).
eracontextmcp_knowledge__confirm_or_reject_inferenceAccept or dispute an AI-inferred financial fact.WriteKnowledge Confirm Or Reject Inference
Accept or dispute an AI-inferred financial fact. When rejecting, optionally provide the user's correct value.
Inputs
actionstringrequired- The action to take: 'confirm' to accept the inferred value, or 'reject' to dispute it.one of
confirmreject slugstringrequired- The slug of the inferred assertion to confirm or reject. Get assertion slugs from knowledge__get_financial_context_and_overview.
corrected_valuestring- The 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_idstring- Instance identifier for repeatable assertions. Only needed when multiple instances exist for the same slug.
eracontextmcp_knowledge__defer_questionSkip a question permanently or snooze it to resurface after a specified number of days.WriteKnowledge Defer Question
Skip a question permanently or snooze it to resurface after a specified number of days.
Inputs
actionstringrequired- The action to take: 'skip' to decline the question, or 'snooze' to defer it for a number of days.one of
skipsnooze question_slugstringrequired- The slug of the question to skip or snooze. Get available slugs from knowledge__get_pending_questions.
pack_slugstring- The question pack slug containing this question. Defaults to 'financial-profile-v1' if omitted.
snooze_daysinteger- Number of days to snooze the question (required when action is 'snooze'). The question will be re-surfaced after this many days.
eracontextmcp_knowledge__rememberStore a financial fact, preference, or goal.WriteKnowledge Remember
Store a financial fact, preference, or goal. Populate exactly one typed value field matching the answer_type (text, number, money, date, or boolean).
- Idempotent
Inputs
answer_typestringrequired- The structural type. For prompted questions, use the answer_type from knowledge__get_pending_questions.one of
texttext-multilinenumbermoneymoney-periodicmoney-relativedatesingle-selectmulti-selectbooleanscalecountryregion slugstringrequired- The machine-readable identifier. For prompted questions, use the slug from knowledge__get_pending_questions.
boolean_valueboolean- Boolean value for boolean answer type.
categorystring- The logical grouping category. Auto-derived for prompted questions; required for ambient facts.one of
identityincome-and-employmenthouseholdassets-and-debtsgoalspreferencesbehavioraldefaultpreferences confidencestring- How 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.one of
definitiveconfirmedinferredobserveddefaultdefinitive date_valuestring- Date value for date answer type (YYYY-MM-DD).
instance_idstring- Instance identifier for repeatable facts that can have multiple values (e.g., 'checking-1', 'savings-2' for account-related facts). Omit for single-value facts.
modalitystring- The nature of the assertion: 'definite' (a stated fact), 'aspirational' (a goal or intention), or 'conditional' (contingent on something). Defaults to 'definite' if omitted.one of
definiteaspirationalconditionaldefaultdefinite money_periodic_valueobject- Periodic money value for money-periodic answer type (amount + currency + frequency).
money_relative_valueobject- Relative money value for money-relative answer type (amount + currency + direction).
money_valueobject- Money value for money answer type.
numeric_valuenumber- Numeric value for number and scale answer types.
pack_slugstring- Question pack slug for flow tracking. Defaults to 'financial-profile-v1'.
sourcestring- How 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.one of
promptedconversationalinferredobservedimporteddefaultconversational tagsarray- Optional tags for additional categorization (e.g., ['tax-relevant', 'high-priority']).
text_valuestring- String value for text, text-multiline, single-select, multi-select (comma-separated), country (ISO alpha-2), and region answer types.
use_connected_accountsstring- When the user wants the answer sourced from their connected financial accounts rather than a typed value, set this to "connected-accounts". Mutually exclusive with all typed value fields (text_value, numeric_value, boolean_value, date_value, money_value, money_periodic_value, money_relative_value). Use for balance and debt questions where the answer is available from the user's linked accounts.one of
connected-accounts valid_timestring- When this fact became true in the user's life (YYYY-MM-DD). Omit if the fact has no specific start date.
valid_untilstring- When this fact should be considered stale and re-asked (YYYY-MM-DD). Omit if the fact does not expire.
eracontextmcp_nurture__set_subscriptionSubscribe the caller to, or unsubscribe them from, a nurture (lifecycle email) campaign.WriteNurture Set Subscription
Subscribe the caller to, or unsubscribe them from, a nurture (lifecycle email) campaign. Takes effect immediately — no confirmation step, and always reversible by calling this tool again with the opposite value. Unsubscribing from a campaign the caller was never enrolled in is a safe no-op. Call nurture__get_my_status first to see the caller's current campaigns and subscription state.
- Idempotent
Inputs
campaign_idstringrequired- The campaign identifier. Obtain from nurture__get_my_status's response.
subscribedbooleanrequired- Set to true to subscribe (resubscribe if previously unsubscribed) or false to unsubscribe.
eracontextmcp_referral__join_referral_programEnroll the user in the referral program and create their affiliate profile.WriteReferral Join Referral Program
Enroll the user in the referral program and create their affiliate profile.
- Idempotent
Inputs
This tool takes no inputs.
eracontextmcp_referral__switch_referral_campaignSwitch the user's active referral campaign to a different slug.WriteReferral Switch Referral Campaign
Switch the user's active referral campaign to a different slug.
- Idempotent
Inputs
slugstringrequired- The campaign slug to switch to. Valid values: 'invite' or 'creator'.
eracontextmcp_transactions__import_csv_transactionsImport transactions from a CSV export of Monarch, Copilot, YNAB, Mint, or Wells Fargo.WriteTransactions 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.
- Idempotent
Inputs
account_group_keystringrequired- The 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_contentstringrequired- The complete CSV text content (including header row). Pass the raw CSV as a string — do NOT base64-encode, MCP is text-native.
formatstring- Optional 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.one of
monarchcopilotynabmintwellsfargochasebankofamericaamexschwab preview_onlyboolean- When true, parse and validate the CSV but do not write transactions. Returns per-row validation verdicts (valid/invalid + reason). Default: false.
eracontextmcp_transactions__manage_automation_rulesCreate, list, update, delete, or enable rules that auto-categorize or tag matching transactions.WriteTransactions 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.
Inputs
actionstringrequired- What 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.one of
createlistupdatedeleteenabledisablepreview actionsarray- What 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_scopestring- Determines 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.one of
prospectiveretroactiveboth applies_fromstring- Only apply this rule to transactions dated on or after this date (YYYY-MM-DD). Omit to apply to transactions of any date.
applies_tostring- Only apply this rule to transactions dated on or before this date (YYYY-MM-DD). Omit to apply to transactions of any date.
apply_retroactivelyboolean- Whether 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.
descriptionstring- An optional note explaining what this rule does or why it was created.
filtersarray- Conditions 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_inactiveboolean- When listing rules, set to true to also include disabled rules. Default: false (only active rules are shown).
pattern_specobject- The 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).
priorityinteger- Rules 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_retroactivelyboolean- When 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_keystring- The unique key of an existing rule. Required for update, delete, enable, and disable. Get this from the 'list' action response.
rule_namestring- A short, descriptive name for the rule (e.g., 'Categorize Uber as Transportation'). Required for create and update.
rule_scopestring- The rule scope: 'transaction' (default) evaluates filters against each individual transaction. 'pattern' evaluates a pattern specification against a time-windowed batch of transactions.one of
transactionpattern trigger_modestring- When to trigger pattern evaluation. Defaults to 'on_batch_complete' for pattern rules, 'on_each_transaction' for transaction rules.one of
on_each_transactionon_batch_completeon_scheduleon_demand user_overridesobject- Optional 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.
versioninteger- The 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_daysinteger- How many days to look back when searching for matching patterns. Required for pattern-scope rules. Must be between 1 and 365.
window_exclude_trigger_accountboolean- When 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_daysinteger- How many days to look ahead when searching for matching patterns. Default: 0 (no lookahead).
eracontextmcp_transactions__manage_categoriesCreate, update, hide, delete, merge, or reorder spending categories.WriteTransactions Manage Categories
Create, update, hide, delete, merge, or reorder spending categories. New categories require a parent_category_key and URL-safe slug.
Inputs
actionstringrequired- What 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.one of
createupdatehideunhidedeletemerge_categoriesreorderreset apply_retroactivelyboolean- When true, retroactively re-evaluates transactions (up to 12 months) after mapping rules are created. Defaults to true.
assignment_eligibilitystring- Controls whether the AI agent can auto-assign transactions to this category. Optional.one of
agent_eligiblemanual_only category_keystring- The category key to operate on. Required for update, hide, unhide, delete. For merge_categories this is the target category key.
descriptionstring- A description of what this category covers. Optional.
display_orderinteger- Display order within sibling group. Optional.
icon_namestring- A single UTF emoji character used as the category icon in the UI (e.g. "🏠", "💰"). Optional.
merge_source_keysarray- Category keys to merge into the target. Required for merge_categories. These categories will be hidden.
namestring- The display name for the category. Required for create, optional for update (null = unchanged).
parent_category_keystring- The parent category key (fcat_*) under which to create the new category. Required for create.
reorder_entriesarray- List of {category_key, display_order} pairs. Required for reorder.
slugstring- A unique URL-safe slug for the new category (lowercase alphanumeric and hyphens, 2-50 chars). Required for create.
source_system_keysarray- System 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_typestring- Spending classification for budgeting and analytics. Optional.one of
necessarydiscretionaryincomesavingstransferother
eracontextmcp_transactions__manage_transfer_linksList, confirm, or reject system-detected transfer pairs between transactions (e.g.WriteTransactions Manage Transfer Links
List, confirm, or reject system-detected transfer pairs between transactions (e.g. a credit card payment matched to a bank debit).
Inputs
actionstringrequired- What 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.one of
listconfirmreject transaction_idstring- When listing, only show transfer links involving this specific transaction. Optional.
transfer_link_idstring- The unique identifier of the transfer link to confirm or reject. Get this from the 'list' action response. Required for confirm and reject.
eracontextmcp_transactions__update_transactionsBulk-update up to 100 transactions: set category, description, merchant name, or review status.WriteTransactions 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.
- Idempotent
Inputs
transaction_idsarrayrequired- IDs of the transactions to update (up to 100 at once). Get these from transactions__list_transactions or transactions__search_transactions.
category_keystring- The category to assign to these transactions. Call transactions__list_spending_categories first to get valid category keys.
clear_categoryboolean- Remove the user's manual category choice, reverting to the automatically detected category.default
false clear_descriptionboolean- Remove the user's custom description, reverting to the original description from the bank.default
false clear_merchant_nameboolean- Remove the user's custom merchant name, reverting to the original name from the bank.default
false clear_review_statusboolean- Clear the review status. Use this instead of review_status when removing a status.default
false descriptionstring- Set a custom note or description for these transactions.
merchant_namestring- Set a custom merchant name for these transactions (e.g., rename 'AMZN*1234' to 'Amazon').
review_statusstring- Review status to assign: needs_review, reviewed, or flagged.one of
needs_reviewreviewedflagged
eracontextmcp_accounts__manage_accountCreate, update, delete, or set the balance of a manually tracked account.DestructiveAccounts 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.
Inputs
actionstringrequired- What 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.one of
createupdatedeleteset_balance account_group_keystring- The 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_namestring- The 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_maskstring- Partial account number (last 4 digits). Do NOT supply the full account number. On update: manual accounts only.
account_typestring- The account type classification. Required for create (manual). On update: manual accounts only — supplying this for a connected account is rejected.one of
unknowncheckingsavingsmoney_marketcdcredit_cardline_of_creditbrokerageira_traditionalira_rothretirement401khsamortgageauto_loanstudent_loanpersonal_loancryptoreal_estatemanual_assetmanual_liability amount_minor_unitsinteger- The 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_datestring- As-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_currencystring- ISO 4217 currency for the balance (required for set_balance).one of
usdeurgbpjpycadaudchfcnyhkdnzdsekkrwsgdnokmxninrbrlzaruahplndkkczkhufronbgnbhdqaraedtrythbmyrphpbtcethusdtusdcbnbxrpadasolunknownmulti clear_account_nameboolean- On 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.
currencystring- ISO 4217 currency for the account (required for create).one of
usdeurgbpjpycadaudchfcnyhkdnzdsekkrwsgdnokmxninrbrlzaruahplndkkczkhufronbgnbhdqaraedtrythbmyrphpbtcethusdtusdcbnbxrpadasolunknownmulti initial_balance_minor_unitsinteger- Starting 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_namestring- Institution name for display and fingerprint matching (e.g., "Chase", "Fidelity"). On update: manual accounts only.
eracontextmcp_billing__cancel_subscriptionTwo-step cancellation: first call returns a confirmation key; second call with that key executes the cancellation.DestructiveBilling Cancel Subscription
Two-step cancellation: first call returns a confirmation key; second call with that key executes the cancellation.
Inputs
reasonstringrequired- Why the user wants to cancel. Summarize their stated reason concisely.
accept_offerboolean- Set to true to accept the retention discount offer. Set to false or omit to decline and receive the billing page URL for manual cancellation. Only used on the second call alongside confirmation_key.
confirmation_keystring- The 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_connections__disconnect_institutionPermanently remove a linked institution connection and unlink all associated accounts.DestructiveConnections Disconnect Institution
Permanently remove a linked institution connection and unlink all associated accounts. Get the connection_id from accounts__list_financial_accounts.
Inputs
connection_idstringrequired- The connection ID of the institution to disconnect. Obtain from accounts__list_financial_accounts (the connection_id field on account entries).
eracontextmcp_knowledge__forgetDelete a stored financial fact from the user's profile.DestructiveKnowledge Forget
Delete a stored financial fact from the user's profile. Use when the user wants to clear an incorrect or outdated answer.
Inputs
slugstringrequired- The slug of the fact to retract. Get assertion slugs from knowledge__get_financial_context_and_overview.
instance_idstring- Instance identifier for repeatable assertions. Only needed when multiple instances exist for the same slug.
pack_slugstring- The question pack slug for flow progress recalculation when retracting an answer to a prompted question. Defaults to 'financial-profile-v1' if omitted.
eracontextmcp_knowledge__reset_pack_questionsWarning: this cannot be undone — only call when you have high confidence the user wants to reset and re-surface all previously skipped or snoozed questions.DestructiveKnowledge Reset Pack Questions
Warning: this cannot be undone — only call when you have high confidence the user wants to reset and re-surface all previously skipped or snoozed questions. This operation reverts all Skipped and Snoozed question states back to Pending so they will be re-surfaced by the flow engine. It does not delete any stored facts or assertions — only the skip/snooze state is reset. Call knowledge__get_pending_questions after a successful reset to obtain the newly re-surfaced questions.
- Idempotent
Inputs
pack_slugstring- The question pack slug to reset. Defaults to 'financial-profile-v1' if omitted.
eracontextmcp_transactions__manage_manual_transactionCreate, update, or delete transactions on a manual account.DestructiveTransactions 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.
Inputs
account_group_keystringrequired- The account group projection key shared by all operations. Obtain from accounts__list_financial_accounts (the account_id field). Must be a manual account.
operationsarrayrequired- Array of transaction operations to execute sequentially. Each has its own action and fields.
preview_onlyboolean- When true, parse and validate all operations but do not write anything. Returns per-operation validation verdicts (valid/invalid + reason). Default: false.
No tools match.