Skip to content

Connect an AI Assistant (MCP)

Audience: Users · Private beta · Updated 2026-09-14

Capital Workbench runs a read-only Model Context Protocol server. Point Claude, Cursor or another MCP client at it and the assistant can query the same curated data the CW pages show — financial statements and statement lines, the full KPI catalog, working-capital and cash-flow bridges, peer and industry benchmarks, corporate filings and insider activity, data-quality notes, the AI Management Commentary takeaways, and the text of the filing sections behind them — directly from your own chat.

Private beta for existing accounts

Sign in to CW and choose Account → MCP connections, or open MCP settings. An active account with a verified email can create personal tokens. MCP access follows your existing Stripe tier; there is no separate MCP purchase during this beta.

Create and manage your tokens

  1. Open Account → MCP connections.
  2. Name the connection, choose an expiry (30 days, 90 days, or one year), and confirm your CW password.
  3. Select Create token. Copy the token into your client's bearer-token field before leaving the page. CW stores only a hash and cannot show it again.
  4. Return to MCP settings to see your tokens and usage, or select Revoke to stop new requests with a token immediately.

You can have up to five active tokens. Give each client its own token so you can revoke one connection without replacing the others. If you lose a token, revoke it and create a replacement. All tokens share your account's allowance.


Connection details

Setting Value
Endpoint https://mcp.capital-workbench.com/mcp
Transport Streamable HTTP (stateless, JSON responses)
Authentication Authorization: Bearer <your token>
Rate limit By plan: Free 60 units/hour · 500/day, Analyst 600/hour · 10,000/day, Enterprise 3,000/hour · 50,000/day. Most calls cost 1 unit; peer/industry benchmarks and filing text cost 3. 429 with Retry-After when exceeded — see Usage allowances
Research access Read-only financial and filing data. Tools do not edit your CW content or expose account records. Authenticated requests record operational usage. Filing text is limited to sections with published CW commentary.

Tool results include source and CW page links where available (cw_url) so you can open the chart, statement, or filing behind an answer.


Set up your client

Replace YOUR_TOKEN with the token you created in MCP settings. It starts with cwmcp_. Keep client configuration private; never commit a real token to Git.

Cursor

Add this entry to your personal ~/.cursor/mcp.json:

{
  "mcpServers": {
    "capital-workbench": {
      "url": "https://mcp.capital-workbench.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    }
  }
}

Save, then open Settings → Tools & MCP and confirm capital-workbench shows its tools. Cursor can also read the token from your environment with "Authorization": "Bearer ${env:CW_MCP_TOKEN}" if you prefer not to store it in the file.

Claude Code

claude mcp add --transport http capital-workbench \
  https://mcp.capital-workbench.com/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"

Run claude mcp list to confirm the connection.

Claude Desktop

CW does not provide OAuth sign-in. For a desktop client that cannot attach a bearer header directly, the third-party mcp-remote bridge can connect a local stdio configuration to this HTTP endpoint (requires Node.js). In Claude Desktop, open Settings → Developer → Edit Config and add:

{
  "mcpServers": {
    "capital-workbench": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.capital-workbench.com/mcp",
        "--header",
        "Authorization:${CW_MCP_AUTH}"
      ],
      "env": {
        "CW_MCP_AUTH": "Bearer YOUR_TOKEN"
      }
    }
  }
}

Keep Authorization:${CW_MCP_AUTH} exactly as written (no space) — the token lives in the env block so the argument survives on every operating system. Restart Claude Desktop afterwards.

Any other MCP client

Use the endpoint and bearer header above with any client that supports Streamable HTTP. See your client's documentation for where to store custom HTTP headers. A client that only accepts OAuth connections cannot connect directly to this beta.


What the assistant can do

Twenty-one read-only tools, grouped by the CW page they mirror. Every tool is bounded (periods, rows, characters) so a single call fits comfortably in an assistant's context; the caps are listed with each tool.

Find a company

Tool What it returns
search_companies Companies by ticker or name (up to 25). Start here to get the canonical ticker.
get_company_snapshot Headline KPIs plus up to 12 quarters of growth and profitability trend (Performance Overview).

KPIs

Tool What it returns
get_kpi_catalog Every active KPI definition: id, label, unit, direction (higher/lower is better), the statement concepts it needs. Use the ids with the tools below.
get_kpi_observations Any catalog KPI — revenue, gross/operating/net income, operating cash flow, capex, free cash flow, margins, DSO/DIO/DPO/CCC, net debt — on a fiscal-quarter grid (up to 12 quarters, with a quality status per period) or a fiscal-year grid (up to 5 years, built only from complete years, never annualised). One KPI or all of them.
get_available_kpis Which KPI cards currently have data for a company, and which page owns each.
get_kpi_history Up to 8 quarters of one KPI-card metric (DSO, DIO, DPO, CCC, cash ratios, margins…) with a link to the card.
get_kpi_forecast_drivers The historical statistics behind the KPI Forecast page — medians, quartiles and slider bounds for growth, margins, cash conversion, days and net debt. No forecast values; scenarios are built on the CW page.
get_data_quality_notes Why a metric is missing or flagged, in plain language, with a coverage scorecard.

Financial statements

Tool What it returns
get_financial_statements One income, balance-sheet or cash-flow statement — quarterly, annual or TTM — up to 4 periods, USD millions.
get_statement_lines Raw line items for up to 3 companies and 8 concepts (revenue, COGS, SG&A, R&D, operating income, net income, receivables, inventory, payables, debt, cash from operations, capex, buybacks, dividends…), up to 8 periods, USD as filed. Says plainly when an issuer does not break a line out.
get_statement_ratios Ten ratios computed server-side from those lines: CapEx/Revenue, R&D/Revenue, SG&A/Revenue, SBC/Revenue, interest coverage, effective tax rate, current ratio, debt/equity, dividend and buyback payout. Up to 3 companies, 3 ratios, 8 periods.

Working capital and cash

Tool What it returns
get_working_capital The Working Capital bundle: DSO/DIO/DPO/CCC cards with quality notes, up to 8 quarters of history with revenue, and CW's cash-opportunity estimate with its basis.
get_cash_analysis The Cash Analysis bundle: up to 8 single-quarter EBITDA → cash from operations → free cash flow bridges (non-cash add-backs, cash taxes, working-capital detail, residual), USD millions, plus the page's cards and summary.

Peers and industry

Tool What it returns
get_peer_benchmark The Peer Benchmarking comparison on nine metrics (DSO, DIO, DPO, CCC, revenue, gross/operating/FCF margin, net debt): company value, peer median/best/worst, rank. Uses CW's peer set for the company or up to 12 tickers you name. Read peer_quality and caveat — auto-selected peers are illustrative.
get_industry_benchmark Where the company sits in its CWIS industry cohort for DSO, DIO, DPO, CCC and the three margins: cohort size, median, quartiles, min/max, and a direction-adjusted percentile (100 = best in cohort). Reports which CWIS level was used and why CW widened the cohort if it had to (Industry Analytics).

Filings, insiders and commentary

Tool What it returns
get_corporate_filings Filing metadata and links (10-K, 10-Q, 8-K, DEF 14A, Forms ¾/5), including reporting persons on ownership filings.
get_insider_transactions Insider events from Forms ¾/5 for a company, newest first — purchases, sales, grants, exercises, tax withholding — with person, role, shares, price, 10b5-1 flag and the filing link. Last 12 months by default, up to 50 rows per call with paging (Insider Activity).
get_insider_persons The company's reporting persons (officers, directors, 10 % owners) with roles, filing counts and latest direct/indirect holdings.
list_commentary_filings The 10-K/10-Q sections for which CW has published Management Commentary, with accession numbers, so the two tools below can be pinned to a specific filing.
get_management_commentary AI Management Commentary takeaways: topic summaries, claims with short evidence phrases, coverage notes. MD&A for 10-K and 10-Q; Risk Factors for 10-K. Latest filing by default, or any published filing by accession number; optionally the filing sentences that anchor each takeaway (up to 12 short quotes).
get_filing_section_text The plain text of a published section — 10-K Item 7 (MD&A) or Item 1A (Risk Factors), 10-Q Part I Item 2 — in windows of up to 12,000 characters cut at paragraph boundaries, with a next_offset to keep reading. Only sections in CW's published commentary set are available; anything else returns not-published with the SEC and CW links.

Financial results state their basis (quarterly/annual/TTM), source and units, with coverage caveats. Uncertain timing stays explained-unavailable, matching Company Profile; it is not filled with an uncertain value — see Why is a value blank?.

Prompts to try

  • "Find Home Depot on Capital Workbench and give me the cash-conversion snapshot."
  • "Pull HD's DSO, DIO and DPO for the last 8 quarters and describe the trend."
  • "Give me Costco's revenue, gross margin and free cash flow by fiscal year, then the quarterly cash-flow bridge for the last four quarters."
  • "Compare Walmart, Target and Costco on SG&A/Revenue and the current ratio over the last two years."
  • "Where does Walmart sit in its industry cohort on cash conversion cycle, and how does it rank against its CW peers?"
  • "What are the Management Commentary takeaways from Walmart's latest 10-K MD&A on inventory and margins? Quote the sentences behind them."
  • "Read me the first part of Apple's latest 10-Q MD&A, then summarise what management says about services revenue."
  • "List Apple's open-market insider sales this year and who made them."

What it won't do

  • Return filing text outside the sections CW has published commentary on (no 8-K bodies, exhibits, proxy statements or XBRL text blocks), fetch anything live from sec.gov, run free-form database queries, or retrieve or edit your private CW content (reports, share links, favourites, AI briefs).
  • Return company news: the in-app news feed is a live proxy without persistence and is not served through MCP.
  • Give investment advice. Everything is public-filing data plus AI-generated reading of it — verify against the source before you rely on it.

Usage allowances by plan

MCP allowances follow the qualifying Stripe subscription on your personal CW account. Active, verified accounts without a qualifying paid subscription use Free. Manual plan overrides and organization subscriptions do not grant a paid MCP tier. Usage is counted in request units over a rolling hour and a rolling 24 hours; both limits apply across all your tokens. These are operational allowances, not billed usage or invoice line items.

Plan Per hour Per day Comfortable for
Free 60 units 500 units Looking up a few companies and a handful of metrics each
Analyst 600 units 10,000 units A full day of research across many companies
Enterprise 3,000 units 50,000 units Sustained research workflows
  • Every call costs 1 unit, including the assistant's housekeeping calls (initialize, tools/list), except three heavier tools that cost 3 units each: get_peer_benchmark, get_industry_benchmark and get_filing_section_text.
  • When you run out, the server returns 429 with a Retry-After header and a body naming your plan, the window that ran out (hour or day) and the limit. Assistants generally wait and retry on their own; if yours loops over many companies, ask it to batch its questions.
  • Your tier is resolved again on each request from CW's Stripe subscription records. After a subscription update reaches CW, you do not need a new token or a server restart to use the updated allowance.
  • Usage survives restarts and token replacement. Requests admitted for execution count even when execution fails; retries are new requests. Unauthenticated requests and refusals before admission do not consume units.
  • Check the last hour and last 24 hours in Account → MCP connections.

Missing data, pagination, and errors

  • 401: the token is missing, invalid, expired, revoked, or its account is no longer eligible. Check your client's bearer header and MCP settings.
  • 429: your shared allowance is exhausted. Wait for Retry-After before retrying. Replacing tokens does not reset it.
  • 503: access, usage recording, or financial publication is temporarily unavailable. During a publication hold, financial tools refuse results; if publication changes during a request, the buffered result is withheld. Try again later rather than treating missing values as zero.
  • Explained-unavailable: preserve the reason supplied with a missing or uncertain-timing value. Linked issuers use CW's accepted issuer mapping.
  • Paged results: get_data_quality_notes and get_insider_transactions return bounded pages below 30,000 bytes. Follow next_offset with the same filters; do not assume the requested row count was returned. Filing section text has its own next_offset for continuing through a section.

Privacy and revocation

  • Usage records: CW records account and token identifiers, effective tier, request units, tool name, outcome, and timestamps. The persistent audit does not contain bearer tokens, conversation text, tool arguments, or result bodies. Operational tool logs can include a ticker and duration.
  • Revocation: use Account → MCP connections → Revoke. New requests are refused immediately after revocation; no deploy is required. An already running request can finish. Expired tokens are refused automatically.
  • Not the AI Agent: the in-app AI Agent has its own allowances and runs inside CW. MCP calls do not use those allowances and no model runs on our side when you use MCP — your assistant does the reasoning over CW's data.