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¶
- Open Account → MCP connections.
- Name the connection, choose an expiry (30 days, 90 days, or one year), and confirm your CW password.
- 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.
- 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_benchmarkandget_filing_section_text. - When you run out, the server returns
429with aRetry-Afterheader and a body naming your plan, the window that ran out (hourorday) 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-Afterbefore 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_notesandget_insider_transactionsreturn bounded pages below 30,000 bytes. Follownext_offsetwith the same filters; do not assume the requested row count was returned. Filing section text has its ownnext_offsetfor 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.
Related docs¶
- Getting Started
- AI Agent Guide — the in-app assistant.
- Feature & Limitations Inventory
- Data & Methodology