Skip to content
Scalekit Docs

Digits MCP

Vendor MCP12 toolsOAuth 2.1/DCRAccounting & FinanceAI

Digits is an AI-powered business finance platform. This MCP connector gives AI agents read-only access to your Digits data — transactions, financial...

Digits MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. 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>
  3. 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.actions
    const connector = 'digitsmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Digits MCP:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'digitsmcp_list_businesses',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Delete transactions — Delete one or more transactions for a business by their transaction fact IDs
  • Create transactions — Create one or more manual journal-entry transactions (double-entry bookkeeping records) for a business in a single atomic batch
  • Business select — Select a business to work with
  • Search term — Resolve a customer, vendor, category, department, location name or transaction description to its canonical form using fuzzy text matching
  • Query transactions — Query and filter individual transactions
  • List locations, departments, categories — This tool is used to list locations

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.

digitsmcp_create_transactions#Create one or more manual journal-entry transactions (double-entry bookkeeping records) for a business in a single atomic batch. Each transaction has two or more lines whose debits and credits balance. Each line debits or credits a category (account); resolve category_id via list_categories, and optionally party_id, department_id, and location_id via the corresponding list tools, before calling this tool. Amounts are positive decimal strings and the entry_type (DEBIT or CREDIT) determines the side. All transactions are created together: if any transaction is invalid, unbalanced, or falls in a closed accounting period, the entire batch fails and nothing is created.2 params

Create one or more manual journal-entry transactions (double-entry bookkeeping records) for a business in a single atomic batch. Each transaction has two or more lines whose debits and credits balance. Each line debits or credits a category (account); resolve category_id via list_categories, and optionally party_id, department_id, and location_id via the corresponding list tools, before calling this tool. Amounts are positive decimal strings and the entry_type (DEBIT or CREDIT) determines the side. All transactions are created together: if any transaction is invalid, unbalanced, or falls in a closed accounting period, the entire batch fails and nothing is created.

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business. Use list_businesses to see available IDs.
transactionsarrayrequiredThe journal-entry transactions to create. All are created together in one atomic batch.
digitsmcp_delete_transactions#Delete one or more transactions for a business by their transaction fact IDs. Resolve transaction_fact_ids via query_transactions before calling this tool. Deleting a fact also removes its sibling facts in the same ledger transaction, so a two-sided journal entry is deleted as a unit. The delete is soft: transactions are marked deleted rather than erased. Scheduled and QuickBooks-sourced transactions cannot be deleted this way, and a transaction that falls in a closed accounting period must be removed via a closed-period request instead — in either case nothing is deleted.2 params

Delete one or more transactions for a business by their transaction fact IDs. Resolve transaction_fact_ids via query_transactions before calling this tool. Deleting a fact also removes its sibling facts in the same ledger transaction, so a two-sided journal entry is deleted as a unit. The delete is soft: transactions are marked deleted rather than erased. Scheduled and QuickBooks-sourced transactions cannot be deleted this way, and a transaction that falls in a closed accounting period must be removed via a closed-period request instead — in either case nothing is deleted.

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business. Use list_businesses to see available IDs.
transaction_fact_idsarrayrequiredThe transaction fact IDs to delete. Use query_transactions to resolve. Sibling facts in the same ledger transaction are deleted together.
digitsmcp_dimensional_summarize_transactions#Summarizes transactions and aggregates them into multi-dimensional summaries. You can use it to receive timeseries data for that is aggregated and bucketed into dimensions (e.g. Category, Party, Time). # Important Notes - If you are only requesting a Time summary, you must provide a filter (such as category ID/type, party ID/role, etc) - Origin is required. Origin's "index" is 1 based for interval Day, Week, Month, and Quarter; it's the year for interval Year. "IntervalCount" is the number of lookback intervals. All fields in "origin" must be set. - You must include "Time" in the Along dimensions when using intervalCount > 1. - When filtering by balance sheet categories (Assets, Liabilities, Equity), you must set asPermanentAccount to true. - Always resolve the party / category / department / location using search_term first, then use the IDs returned in the filter. - The response may include a "summary" field where the current period amount is zero while prior period is non-zero; do not treat prior amounts as current-period values. - For bill or invoice questions, answer only from explicit fields returned by tools. Do not use expense or income transaction data to approximate bill or invoice amounts.12 params

Summarizes transactions and aggregates them into multi-dimensional summaries. You can use it to receive timeseries data for that is aggregated and bucketed into dimensions (e.g. Category, Party, Time). # Important Notes - If you are only requesting a Time summary, you must provide a filter (such as category ID/type, party ID/role, etc) - Origin is required. Origin's "index" is 1 based for interval Day, Week, Month, and Quarter; it's the year for interval Year. "IntervalCount" is the number of lookback intervals. All fields in "origin" must be set. - You must include "Time" in the Along dimensions when using intervalCount > 1. - When filtering by balance sheet categories (Assets, Liabilities, Equity), you must set asPermanentAccount to true. - Always resolve the party / category / department / location using search_term first, then use the IDs returned in the filter. - The response may include a "summary" field where the current period amount is zero while prior period is non-zero; do not treat prior amounts as current-period values. - For bill or invoice questions, answer only from explicit fields returned by tools. Do not use expense or income transaction data to approximate bill or invoice amounts.

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business. Use list_businesses to see available IDs.
originobjectrequiredRequired reporting period. interval, year, index, and interval_count must all be supplied; max_time is optional.
aggregate_facet_kindstringoptionalNo description.
alongobjectoptionalOptional dimensions used to group the transaction totals. When supplied, dimensions is required.
as_permanent_accountbooleanoptionalNo description.
default_category_typestringoptionalNo description.
directionstringoptionalNo description.
filterobjectoptionalNo description.
interval_partitionobjectoptionalNo description.
match_bystringoptionalNo description.
natural_flowstringoptionalNo description.
paginationobjectoptionalNo description.
digitsmcp_financial_statement#Generate complete financial statements: Profit & Loss, Balance Sheet, Cash Flow, AR/AP Aging. ## Statement Types (kind) 1. **ProfitAndLoss** - Income Statement showing revenue, expenses, and net income 2. **BalanceSheet** - Financial position with assets, liabilities, and equity 3. **CashFlow** - Cash movements categorized by operating, investing, and financing activities 4. **APAging** - Accounts Payable aging report. ONLY use for questions about total amount currently outstanding or due to vendors. Do NOT use for general bill questions (counts, averages, individual bill details, historical bill amounts). 5. **ARAging** - Accounts Receivable aging report. ONLY use for questions about total amount currently outstanding or due from customers. Do NOT use for general invoice questions (counts, averages, individual invoice details, historical invoice amounts). ## Parameters **Required:** - kind: Statement type ("ProfitAndLoss", "BalanceSheet", "CashFlow", "APAging", "ARAging") - origin: Time period for the statement. Origin's "index" is 1 based for interval Day, Week, Month, and Quarter; it's the year for interval Year. All fields in "origin" must be set. - interval: Time unit (Day, Week, Month, Quarter, Year) - year: Calendar year - index: Position within year (1-12 for Month, 1-4 for Quarter, etc.) - interval_count: Number of periods to include **Optional:** - look_back_count: Number of periods to include in lookback (overrides defaults) - For Month statements: defaults to 12 periods - For Quarter statements: defaults to 4 periods - For Year statements: defaults to 3 periods - show_account_numbers: Include account numbers (bool) - fiscal_year_start_month: Fiscal year start month (1-12 for Jan-Dec) - tax_form: Tax form for display - category_id: Filter to specific category (optional) - department_ids: Filter to specific departments (array of strings) - location_ids: Filter to specific locations (array of strings) ## Example Requests ### Profit & Loss for Q3 2024 { "kind": "ProfitAndLoss", "origin": { "interval": "Quarter", "year": 2024, "index": 3, "interval_count": 1 } } ### Balance Sheet for December 2024 { "kind": "BalanceSheet", "origin": { "interval": "Month", "year": 2024, "index": 12, "interval_count": 1 } } ### Cash Flow Statement for Last 6 Months { "kind": "CashFlow", "origin": { "interval": "Month", "year": 2024, "index": 12, "interval_count": 6 } } ### AP Aging Report with Account Numbers { "kind": "APAging", "origin": { "interval": "Month", "year": 2024, "index": 12, "interval_count": 1 }, "preferences": { "show_account_numbers": true } } ### Department-Specific P&L { "kind": "ProfitAndLoss", "origin": { "interval": "Quarter", "year": 2024, "index": 4, "interval_count": 1 }, "department_ids": ["dept-123", "dept-456"] } ## Common Patterns **"Show me the P&L for last quarter"** -> kind="ProfitAndLoss", origin with Quarter interval **"What's my current cash position?"** -> kind="BalanceSheet", origin with current month **"Show cash flow for the year"** -> kind="CashFlow", origin with Year interval or interval_count=12 **"What is our total outstanding A/R?"** -> kind="ARAging" for total receivable amount **"How much do we currently owe vendors?"** -> kind="APAging" for total payable amount **"Department P&L comparison"** -> Use department_ids to filter11 params

Generate complete financial statements: Profit & Loss, Balance Sheet, Cash Flow, AR/AP Aging. ## Statement Types (kind) 1. **ProfitAndLoss** - Income Statement showing revenue, expenses, and net income 2. **BalanceSheet** - Financial position with assets, liabilities, and equity 3. **CashFlow** - Cash movements categorized by operating, investing, and financing activities 4. **APAging** - Accounts Payable aging report. ONLY use for questions about total amount currently outstanding or due to vendors. Do NOT use for general bill questions (counts, averages, individual bill details, historical bill amounts). 5. **ARAging** - Accounts Receivable aging report. ONLY use for questions about total amount currently outstanding or due from customers. Do NOT use for general invoice questions (counts, averages, individual invoice details, historical invoice amounts). ## Parameters **Required:** - kind: Statement type ("ProfitAndLoss", "BalanceSheet", "CashFlow", "APAging", "ARAging") - origin: Time period for the statement. Origin's "index" is 1 based for interval Day, Week, Month, and Quarter; it's the year for interval Year. All fields in "origin" must be set. - interval: Time unit (Day, Week, Month, Quarter, Year) - year: Calendar year - index: Position within year (1-12 for Month, 1-4 for Quarter, etc.) - interval_count: Number of periods to include **Optional:** - look_back_count: Number of periods to include in lookback (overrides defaults) - For Month statements: defaults to 12 periods - For Quarter statements: defaults to 4 periods - For Year statements: defaults to 3 periods - show_account_numbers: Include account numbers (bool) - fiscal_year_start_month: Fiscal year start month (1-12 for Jan-Dec) - tax_form: Tax form for display - category_id: Filter to specific category (optional) - department_ids: Filter to specific departments (array of strings) - location_ids: Filter to specific locations (array of strings) ## Example Requests ### Profit & Loss for Q3 2024 { "kind": "ProfitAndLoss", "origin": { "interval": "Quarter", "year": 2024, "index": 3, "interval_count": 1 } } ### Balance Sheet for December 2024 { "kind": "BalanceSheet", "origin": { "interval": "Month", "year": 2024, "index": 12, "interval_count": 1 } } ### Cash Flow Statement for Last 6 Months { "kind": "CashFlow", "origin": { "interval": "Month", "year": 2024, "index": 12, "interval_count": 6 } } ### AP Aging Report with Account Numbers { "kind": "APAging", "origin": { "interval": "Month", "year": 2024, "index": 12, "interval_count": 1 }, "preferences": { "show_account_numbers": true } } ### Department-Specific P&L { "kind": "ProfitAndLoss", "origin": { "interval": "Quarter", "year": 2024, "index": 4, "interval_count": 1 }, "department_ids": ["dept-123", "dept-456"] } ## Common Patterns **"Show me the P&L for last quarter"** -> kind="ProfitAndLoss", origin with Quarter interval **"What's my current cash position?"** -> kind="BalanceSheet", origin with current month **"Show cash flow for the year"** -> kind="CashFlow", origin with Year interval or interval_count=12 **"What is our total outstanding A/R?"** -> kind="ARAging" for total receivable amount **"How much do we currently owe vendors?"** -> kind="APAging" for total payable amount **"Department P&L comparison"** -> Use department_ids to filter

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business. Use list_businesses to see available IDs.
kindstringrequiredNo description.
originobjectrequiredRequired reporting period. interval, year, index, and interval_count must all be supplied; max_time is optional.
budget_identifierobjectoptionalNo description.
category_idstringoptionalNo description.
department_idsarrayoptionalNo description.
location_idsarrayoptionalNo description.
look_back_countintegeroptionalNo description.
preferencesobjectoptionalNo description.
show_otherbooleanoptionalNo description.
show_unassignedbooleanoptionalNo description.
digitsmcp_list_business_users#List all users with access to a business. Requires a business_id from select_business.1 param

List all users with access to a business. Requires a business_id from select_business.

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business to list users for. Use list_businesses to see available IDs.
digitsmcp_list_businesses#List all businesses (legal entities) the authenticated user has access to, including both direct employments and affiliations.0 params

List all businesses (legal entities) the authenticated user has access to, including both direct employments and affiliations.

digitsmcp_list_categories#This tool is used to list categories. Use this when you need to review category names, types, or identifiers.2 params

This tool is used to list categories. Use this when you need to review category names, types, or identifiers.

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business. Use list_businesses to see available IDs.
category_typesarrayoptionalNo description.
digitsmcp_list_departments#This tool is used to list departments. Use this when you need to review department names, status, or identifiers.2 params

This tool is used to list departments. Use this when you need to review department names, status, or identifiers.

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business. Use list_businesses to see available IDs.
statusstringoptionalNo description.
digitsmcp_list_locations#This tool is used to list locations. Use this when you need location names, active status, or ids.2 params

This tool is used to list locations. Use this when you need location names, active status, or ids.

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business. Use list_businesses to see available IDs.
statusstringoptionalNo description.
digitsmcp_query_transactions#Query and filter individual transactions. This tool provides access to transaction-level data with flexible filtering capabilities. ## Required Parameters **origin**: Time period specification with: - interval: Time unit (Day, Week, Month, Quarter, Year, etc.) - year: Calendar year - index: Position within year (1-based for Day/Week/Month/Quarter; the year itself for Year) - interval_count: Number of periods to include ## Optional Parameters - direction: Past or Future relative to the origin - filter: Transaction filters (category, party, department, location, amount range, etc.) - order: Sort order for the returned transactions - pagination: limit/offset controls - include_speed: Whether to include speed-layer (not-yet-compiled) transactions7 params

Query and filter individual transactions. This tool provides access to transaction-level data with flexible filtering capabilities. ## Required Parameters **origin**: Time period specification with: - interval: Time unit (Day, Week, Month, Quarter, Year, etc.) - year: Calendar year - index: Position within year (1-based for Day/Week/Month/Quarter; the year itself for Year) - interval_count: Number of periods to include ## Optional Parameters - direction: Past or Future relative to the origin - filter: Transaction filters (category, party, department, location, amount range, etc.) - order: Sort order for the returned transactions - pagination: limit/offset controls - include_speed: Whether to include speed-layer (not-yet-compiled) transactions

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business. Use list_businesses to see available IDs.
originobjectrequiredRequired query period. interval, year, index, and interval_count must all be supplied; max_time is optional.
directionstringoptionalNo description.
filterobjectoptionalNo description.
include_speedbooleanoptionalNo description.
orderobjectoptionalNo description.
paginationobjectoptionalNo description.
digitsmcp_search_term#Resolve a customer, vendor, category, department, location name or transaction description to its canonical form using fuzzy text matching. Before using an ID in transaction filters, run a final search on the full phrase and verify the selected canonical name matches the intended phrase. Use the kinds filter to restrict results to the entity types you need (e.g. Party, Category, Department, Location, Product, Discount).4 params

Resolve a customer, vendor, category, department, location name or transaction description to its canonical form using fuzzy text matching. Before using an ID in transaction filters, run a final search on the full phrase and verify the selected canonical name matches the intended phrase. Use the kinds filter to restrict results to the entity types you need (e.g. Party, Category, Department, Location, Product, Discount).

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business. Use list_businesses to see available IDs.
textstringrequiredNo description.
kindsarrayoptionalNo description.
sortarrayoptionalNo description.
digitsmcp_select_business#Select a business to work with. After calling this tool, use the returned business ID as business_id in subsequent tool calls.1 param

Select a business to work with. After calling this tool, use the returned business ID as business_id in subsequent tool calls.

NameTypeRequiredDescription
business_idstringrequiredThe ID of the business to select. Use list_businesses to see available IDs.