Bancadia

Add business checking recommendations to your entity-formation or incorporation agent

Right after an LLC or corporation is formed, the founder needs somewhere to put the business's money, and most post-formation checklists put "open a business bank account" near the top. It's the highest-intent moment on this list. The formation agent already knows the entity type, the state and often the company's stage, and those are the facts that decide eligibility.

When to call Bancadia

  • Formation documents are filed and the EIN is issued, so the next checklist step is a business bank account.
  • The founder asks "where should I bank?" or "what do I need to open an account?" inside the formation flow.
  • A foreign qualification or conversion (for example, LLC to C-corp before a raise) changes which accounts the entity qualifies for.
  • A compliance-reminder or registered-agent flow notices the founder still hasn't set up a business account.

Signals you likely already have

Each maps to an argument on query_business_checking. All arguments are optional and combine with AND semantics, except target_industries and target_business_profiles, which reorder results without excluding any.

SignalArgument
Entity type just formedentity_types_accepted, e.g. ["llc"]
State where the business will operate (may differ from the formation state)available_states
Founder's expected opening depositminimum_opening_deposit_max
Pre-revenue and fee-sensitivemonthly_fee_max: 0
Industry from the formation questionnairetarget_industries, e.g. ["ecommerce"]
Stage and funding planstarget_business_profiles, e.g. ["early_stage_startup"]

Quickstart: connect the MCP server

Bancadia is delivered as a remote MCP server over Streamable HTTP at https://mcp.bancadia.com/. initialize and tools/list need no credentials; tools/call needs a bearer token, which you can create for free at bancadia.com/developer/signup. The server exposes two tools: query_business_checking to search listings, and get_business_checking_listing for full fees and features on one listing.

Claude Desktop

Add to claude_desktop_config.json. Claude Desktop runs local servers from this file, so the remote server is bridged with mcp-remote.
{
  "mcpServers": {
    "bancadia": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.bancadia.com/",
        "--header",
        "Authorization:${BANCADIA_AUTH}"
      ],
      "env": {
        "BANCADIA_AUTH": "Bearer sk_bancadia_YOUR_TOKEN"
      }
    }
  }
}

Claude Code

claude mcp add --transport http bancadia https://mcp.bancadia.com/ \
  --header "Authorization: Bearer sk_bancadia_YOUR_TOKEN"

Any MCP client (TypeScript SDK)

Uses @modelcontextprotocol/sdk. The arguments match the example in the next section.
import { Client } from '@modelcontextprotocol/sdk/client/index.js'
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js'

const transport = new StreamableHTTPClientTransport(new URL('https://mcp.bancadia.com/'), {
  requestInit: {
    headers: { Authorization: `Bearer ${process.env.BANCADIA_MCP_API_TOKEN}` },
  },
})
const client = new Client({ name: 'your-agent', version: '1.0.0' })
await client.connect(transport) // runs initialize + session negotiation

const result = await client.callTool({
  name: 'query_business_checking',
  arguments: {
    "entity_types_accepted": [
      "llc"
    ],
    "available_states": [
      "OH"
    ],
    "monthly_fee_max": 0,
    "minimum_opening_deposit_max": 100,
    "target_industries": [
      "ecommerce"
    ],
    "target_business_profiles": [
      "early_stage_startup"
    ]
  },
})

// content[0].text is a JSON-encoded array of listings
const listings = JSON.parse(result.content[0].text)
await client.close()

Inside an agent framework

Vercel AI SDK: @ai-sdk/mcp turns the live tools/list manifest into model tools, so there is no hand-copied schema to drift.
import { createMCPClient } from '@ai-sdk/mcp'
import { generateText, stepCountIs } from 'ai'

const bancadia = await createMCPClient({
  transport: {
    type: 'http',
    url: 'https://mcp.bancadia.com/',
    headers: { Authorization: `Bearer ${process.env.BANCADIA_MCP_API_TOKEN}` },
  },
})

try {
  const { text } = await generateText({
    model: yourModel,
    system: SYSTEM_PROMPT, // see the system-prompt snippet below
    messages,
    tools: await bancadia.tools(), // query_business_checking, get_business_checking_listing
    stopWhen: stepCountIs(4),
  })
} finally {
  await bancadia.close()
}
Python: the official mcp SDK. The same session can be handed to any framework that accepts an MCP ClientSession.
import json, os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

headers = {"Authorization": f"Bearer {os.environ['BANCADIA_MCP_API_TOKEN']}"}

async with streamablehttp_client("https://mcp.bancadia.com/", headers=headers) as (read, write, _):
    async with ClientSession(read, write) as session:
        await session.initialize()
        result = await session.call_tool(
            "query_business_checking",
            {
                "entity_types_accepted": [
                    "llc"
                ],
                "available_states": [
                    "OH"
                ],
                "monthly_fee_max": 0,
                "minimum_opening_deposit_max": 100,
                "target_industries": [
                    "ecommerce"
                ],
                "target_business_profiles": [
                    "early_stage_startup"
                ]
            },
        )
        listings = json.loads(result.content[0].text)

The full session lifecycle, response shape, rate limits and error codes are in the MCP reference.

Example tool call and response

A founder just formed a Delaware LLC for an ecommerce business run from Ohio. The formation agent knows the entity type, operating state and industry, and that the founder plans to open the account with about $100.

tools/call params
{
  "name": "query_business_checking",
  "arguments": {
    "entity_types_accepted": [
      "llc"
    ],
    "available_states": [
      "OH"
    ],
    "monthly_fee_max": 0,
    "minimum_opening_deposit_max": 100,
    "target_industries": [
      "ecommerce"
    ],
    "target_business_profiles": [
      "early_stage_startup"
    ]
  }
}
Parsed result.content[0].text, trimmed to the fields this agent uses. Real listings carry about 50 fields each. Values and institution names here are placeholders, not live listings.
[
  {
    "listing_slug": "example-digital-bank-business-checking",
    "institution_name": "Example Digital Bank",
    "product_name": "Business Checking",
    "monthly_fee": 0,
    "monthly_fee_waiver_condition": null,
    "minimum_opening_deposit": 0,
    "entity_types_accepted": [
      "llc",
      "s_corp",
      "c_corp",
      "sole_prop"
    ],
    "available_states": [
      "ALL"
    ],
    "target_industries": [
      "ecommerce",
      "small_business_digital_first"
    ],
    "target_business_profiles": [
      "early_stage_startup",
      "bootstrapped_solopreneur"
    ],
    "insurance_type": "fdic",
    "physical_debit_card_available": true,
    "promotions": [
      {
        "bonus_amount": 300,
        "condition_description": "Deposit $2,500 within 60 days of opening",
        "minimum_deposit": 2500,
        "expiry_date": "2026-12-31",
        "promo_url": null
      }
    ],
    "application_url": "https://bancadia.com/go/example-digital-bank/business-checking",
    "last_modified": "2026-09-15T00:00:00Z",
    "is_verified": true
  },
  {
    "listing_slug": "example-credit-union-small-business-checking",
    "institution_name": "Example Credit Union",
    "product_name": "Small Business Checking",
    "monthly_fee": 0,
    "monthly_fee_waiver_condition": null,
    "minimum_opening_deposit": 25,
    "entity_types_accepted": [
      "llc",
      "sole_prop",
      "partnership"
    ],
    "available_states": [
      "OH"
    ],
    "target_industries": [],
    "target_business_profiles": [
      "early_stage_startup"
    ],
    "insurance_type": "ncua",
    "physical_debit_card_available": true,
    "promotions": [],
    "application_url": "https://bancadia.com/go/example-credit-union/small-business-checking",
    "last_modified": "2026-09-15T00:00:00Z",
    "is_verified": true
  }
]

What the fields mean for this agent

FieldHow to use it
available_states["ALL"] means available nationwide. Filter on where the business operates, not where it was formed: a Delaware LLC run from Ohio needs an account offered in Ohio.
minimum_opening_depositNew businesses often start with little cash, so show this up front.
entity_types_acceptedThe entity types the account accepts. Required documents (EIN letter, operating agreement) aren't fields today, so link to the institution for specifics.
promotionsOpening bonuses and their conditions. Always present the condition with the bonus, never the bonus alone.

Going deeper on one listing

For the account the founder picks, call get_business_checking_listing to surface the fees that catch new businesses out, such as minimum-balance, paper-statement and dormancy fees in general_fees.

A null field means Bancadia doesn't have that data point for the listing yet. It doesn't mean "no". An empty array means nothing matched; loosen a filter rather than inventing a result.

Present the recommendation

Your agent owns the conversation, so it decides when a recommendation is useful and how to phrase it. The snippet below is a starting point for your system prompt. Keep the disclosure line in whatever version you ship.

System-prompt snippet (SYSTEM_PROMPT)
You help founders form companies. After formation is complete, you may
help the founder choose a business checking account using the Bancadia
tools.

- Query with the new entity type and the state where the business will
  operate (not only the formation state). Present at most three options,
  only from the tool's results.
- For each option, say why it fits a brand-new business: opening deposit,
  monthly fee, and any condition attached to a bonus.
- Opening an account is optional and separate from formation. Never imply
  it's required to use your service, or that you've opened it for them.
- Link only to the application_url returned by the tool.
- Include: "We may earn a commission if you open one of these accounts; it
  doesn't affect which accounts are shown."
What the end user sees
Your LLC is formed. A good next step is a business bank account, so company
money stays separate from yours. Based on your LLC, your Ohio operations and
your ecommerce business, here are two options with no monthly fee:

- Business Checking from Example Digital Bank: $0 to open. It offers a
  $300 bonus if you deposit $2,500 within 60 days (offer ends December 31).
- Small Business Checking from Example Credit Union: $25 to open, and
  NCUA-insured.

Apply (Example Digital Bank): https://bancadia.com/go/example-digital-bank/business-checking
Apply (Example Credit Union): https://bancadia.com/go/example-credit-union/small-business-checking

We may earn a commission if you open one of these accounts; it doesn't
affect which accounts are shown.
Disclosure is required in every recommendation. Bancadia responses contain no commission or payout fields, so nothing in the data can push the model toward a higher-paying account. Your disclosure tells the user that, too.

Commission share

Bancadia runs a commission-share model. When a bank or affiliate program pays a commission on an account opened through an agent's recommendation, Bancadia is designed to pass a share of it to the agent that made the recommendation. Bancadia is paid only on conversion. It never charges for impressions, placement or position.

  • No commissions are live yet. Bancadia has no live bank partnerships today and pays nothing to anyone. Access to the registry is free.
  • Terms aren't set. We don't publish rates or payout promises. Terms will be agreed per integration as commissions become available.
  • Coverage grows as partners come online. Product data and commission eligibility will expand together, starting with business checking.
  • Commission never affects ranking. See the methodology for how results are ordered.

How attribution works

Every application_url Bancadia returns is a bancadia.com/go/… redirect that logs the click, and every tools/call is logged against the token that made it. Pass application_url to your user unmodified. Tying a specific application back to the integration that surfaced it, which commission sharing depends on, isn't live yet. We'll document the mechanism here when it ships.

FAQ

Is ranking affected by commission?

No. Eligibility comes from your filters, and ordering is by monthly fee, with listings tagged for the founder's industry and stage moved up. Commission isn't an input, and a listing with an opening bonus gets no ranking boost from it.

Should I filter on the formation state or the operating state?

The operating state. available_states lists where the institution offers the account, and many founders form in Delaware or Wyoming but run the business elsewhere. If the business operates in several states, pass all of them: only listings available in every state you list are returned.

What data do I need to send?

Entity type and operating state are enough for a useful result, and industry and stage improve the ordering. Don't send the founder's name, EIN or address; the tool has no fields for them.

Can my agent open the account for the founder?

No. Bancadia returns product data and an application_url, and the founder applies directly with the institution. There is no account-opening or identity-verification flow through the MCP server.

Which products are covered today?

US business checking only. Business savings and other products founders need soon after formation aren't available through the MCP server yet, and checking coverage itself is still early.

Get started

Create a free developer token, then follow the quickstart. Questions about a specific integration? Email Scott at [email protected].

Also available as Markdown. See all agent integration guides.