# BankSync

Connect AI agents to real bank accounts — transactions, balances, investments, and loans across 15,000+ institutions. Sync to Notion, Google Sheets, and Airtable.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add banksync/banksync-mcp

# Browse available tools
npx -y @smithery/cli@latest tool list banksync/banksync-mcp

# Get full schema for a tool
npx -y @smithery/cli@latest tool get banksync/banksync-mcp get_data_type_schema

# Call a tool
npx -y @smithery/cli@latest tool call banksync/banksync-mcp get_data_type_schema '{}'
```

## Direct MCP Connection

Endpoint: `https://banksync.run.tools`

**Required config:**
- `BANKSYNC_API_KEY` (query) — Your BankSync API key from banksync.io/developers

## Tools (28)

- `get_data_type_schema` — Get the available source fields for a given data type — use this before building fieldMappings in create_feed or update…
- `list_feed_sources` — List all supported feed source types and the data types each source can produce. Use this to discover valid source × da…
- `list_workspaces` — List all workspaces the authenticated user belongs to. Returns workspaceId, name, and role for each — workspaceId is re…
- `get_workspace` — Get name, subscription plan, and settings for a workspace. Returns 403 if the user is not a member — use list_workspace…
- `list_integrations` — List connected destination integrations (Notion, Google Sheets, Airtable) for a workspace. Returns integrationId needed…
- `delete_integration` — Remove a destination integration (Notion, Airtable, Google Sheets) from the workspace. Any feeds using this integration…
- `list_banks` — List all connected bank/institution connections for a workspace. Returns bankId needed for list_accounts, get_transacti…
- `get_bank` — Get a bank connection and its live accounts fetched directly from the institution. Returns bankId, institution name, an…
- `create_bank_link` — Initiate a new bank connection. Returns a link token and hosted authorization URL. For Plaid: open authUrl in a browser…
- `connect_bank` — Complete a Plaid bank connection by exchanging the public_token received from Plaid Link. Call create_bank_link first t…
- `delete_bank` — Remove a bank connection from the workspace. The bank will no longer sync data and existing feeds referencing it will f…
- `list_accounts` — Fetch live accounts for a bank connection directly from the institution — not cached. Returns accountId, accountType (c…
- `get_account` — Fetch a single account's current details directly from the institution. Returns accountType, balance, currency, and ins…
- `get_transactions` — Fetch bank transactions for an account. For Plaid banks: omit from/to and pass cursor for efficient incremental sync — …
- `get_balance` — Fetch the current live balance for an account directly from the institution — not cached. Returns current balance, avai…
- `get_holdings` — Get current investment holdings (positions, quantities, market values) for an investment account. Only valid for accoun…
- `get_trades` — Get investment transactions (buys, sells, dividends) for an investment account over a date range. Only valid for accoun…
- `get_loan` — Get loan details (outstanding balance, interest rate, next payment) for a loan or liability account (mortgage, personal…
- `list_feeds` — List all data pipeline feeds in a workspace. Returns feedId, name, source, dataType, and status. Use feedId with trigge…
- `get_feed` — Get the full configuration and status of a specific feed pipeline, including sourceConfig, destinationConfig, fieldMapp…
- `create_feed` — Create a new data pipeline feed. source must be one of: sync, extractor, upload. dataType must be one of: transactions,…
- `update_feed` — Update a feed's name, configuration, or schedule. Pass only the fields to change — this is a partial update. source and…
- `validate_feed` — Pre-flight validate a feed configuration without creating it. Returns errors (would block creation) and warnings (shoul…
- `delete_feed` — Permanently delete a feed and all its sync job history. This cannot be undone. Use cancel_job first if a sync is curren…
- `list_jobs` — List sync job history for a feed, newest first. Use the status filter to check for running jobs before triggering a new…
- `get_job` — Get current status and progress of a specific sync job. Poll this after trigger_sync to track completion. Status will b…
- `trigger_sync` — Queue a new sync job for a feed and return the full job object. Use get_job with the returned jobId to poll for progres…
- `cancel_job` — Cancel a queued or in_progress sync job. Returns the updated job with status="cancelled". Has no effect on completed or…

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get banksync/banksync-mcp <tool-name>
```
