mcpserver.lol
registry/well-mcp
Connection check verified live · 26h ago

well-mcp

Connect your AI to your Well financial data - invoices, companies, contacts.

Tools 43
GitHub stars
Installs / wk
Licence
Transport streamable-http
Last checked 26h ago

Tools & capabilities

43 tools

Read from the running server on 26h ago.

well_add_contact_channel value*parent*channel*parent_id*workspace_ididempotency_key
Add a contact channel to a company or person. Wraps the resource-scoped REST endpoints (POST /v1/{companies,people}/:id/{emails,phones,web-links,locations}). channel + the matchi…
well_create_company name*descriptionworkspace_ididempotency_key
Create a new company in the current workspace. Use this tool when the user asks to create, add, or register a new company. REQUIRED: name OPTIONAL: description After creation, e…
well_create_invoice_document invoice_id*workspace_ididempotency_key
Render an existing invoice as a print-ready PDF and attach it as the invoice's source document. The letterhead carries the issuing company's own mark when Well has one on file, an…
well_create_invoice_from_data issuer*statustotalscurrency*due_datereceiver* +6
Create an invoice in Well from data you extracted by reading an invoice (your own OCR) — you send the structured fields, not the file. Well persists the invoice + its line items +…
well_create_person emailphonejob_titlelast_namefirst_name*workspace_id +1
Create a new person (contact) in the current workspace. Use this tool when the user asks to add, create, or register a new contact, employee, or person. REQUIRED: first_name OPTI…
well_create_statement_upload workspace_ididempotency_key
Mint a one-time, short-lived upload slot for a bank-statement file. Use this when the user has a statement file (PDF, or a large CSV/XML) to import; the file's bytes do not travel…
well_delete_company can modify data company_id*workspace_ididempotency_key
Delete a company from the current workspace (soft delete). Use this tool when the user asks to delete, remove, or archive a company. REQUIRED: company_id This soft-deletes the c…
well_delete_invoice can modify data invoice_id*workspace_ididempotency_key
Delete an invoice from Well (soft delete). REQUIRED: invoice_id Soft-deletes the invoice. Linked line items and payment_means rows are NOT cascade-deleted — they remain in the da…
well_delete_person can modify data person_id*workspace_ididempotency_key
Delete a person (contact) from the current workspace (soft delete). Use this tool when the user asks to delete, remove, or archive a contact. REQUIRED: person_id This soft-delet…
well_get_burn read-only yearmonthmonths_backworkspace_id
Get the workspace's average monthly burn — the trailing average of actual outflows, the exact same computation and number the Well app's avg-burn KPI tile shows. Use this instead o…
well_get_cash_flow_bridge read-only yearmonthworkspace_id
Get the workspace's cash-flow bridge — how the opening cash position became the closing one — the exact same steps the Well app's cash-flow waterfall chart shows. Use this instead…
well_get_cash_forecast read-only workspace_id
Get the workspace's cash-position forecast — trailing actual month-end balances plus a worst-case projection forward — the exact same series the Well app's "Cash Position Forecast"…
well_get_cash_position read-only yearmonthworkspace_id
Get the workspace's current cash position: total cash on hand right now, converted to the workspace base currency, plus a per-account breakdown — the exact same computation and num…
well_get_cost_structure read-only yearmonthworkspace_id
Get the workspace's cost structure: outflow for the latest closed month, broken down by category — the exact same computation and numbers the Well app's canvas cost-structure donut…
well_get_design_tokens read-only workspace_id
Get Well's colours, shape and type vocabulary, so a view you compose for Well data looks like Well rather than a generic page. Call this ONLY when you are about to render somethin…
well_get_entity read-only id*root*depthworkspace_id
Read ONE entity with its sub-resources nested in a single call. Convenience over well_get_schema + well_query_records: resolves the field paths for you and returns the single reco…
well_get_investment_holdings read-only workspace_idworkspace_connector_id*
Get the live holdings/positions (what's currently held and its value) for a connected Plaid investment account — brokerage, IRA, 401k, etc. WORKFLOW: 1. well_list_connectors() → p…
well_get_own_company read-only workspace_id
Get which company the workspace itself is: the confirmed own-company anchor (`anchor`) and any detected companies not yet confirmed as it (`candidates`). Use this whenever a quest…
well_get_runway read-only yearmonthworkspace_id
Get the workspace's current cash runway — cash on hand, trailing-3-month average burn, and months of cash left — the exact same computation and numbers the Well app's canvas KPI ca…
well_get_schema read-only rootdepthworkspace_id
Discover available data types and fields. USAGE: - well_get_schema() → List ALL available roots, including the accounting graph (ledger_accounts, journals, journal_entries) plus a…
well_get_statement_import_result read-only document_id*workspace_id
Read the outcome of a bank-statement upload started with well_create_statement_upload, by the document_id that tool returned. well_create_statement_upload already renders a card f…
well_invoke_connector_tool can modify data argstool*workspace_ididempotency_keyworkspace_connector_id*
Run one tool on a connected provider's own MCP server (e.g. create a record in Attio), on behalf of this workspace's connection. Use this ONLY for an action the user explicitly as…
well_list_connectors read-only qkindlimittitleoffsetsubtitle +2
List the connectors a workspace can install AND everything it has already connected, each with a one-click install deep link. ONE tool answers both halves of the connect question…
well_list_connector_tools read-only workspace_idworkspace_connector_id*
Discover the actions a connected provider exposes (e.g. "what can I do with Attio?"). WORKFLOW: 1. well_list_connectors() → pick the ENABLED provider (connection_status: "enabled"…
well_list_counterparties read-only cursorperiodsworkspace_iduncategorized_only
List the workspace's counterparty companies and how each one is CATEGORIZED — the company-level industry labels a counterparty carries. Use it for "which suppliers have no category…
well_list_missing_invoices read-only periodsfiscal_yearworkspace_idcalendar_yearfiscal_periodcalendar_month
List the supplier invoices a past period is still missing — the settled spend whose invoice has not been collected, one row per counterparty, exactly as the Well app's expense-invo…
well_list_periods read-only yeartitlemonthspurposesubtitleworkspace_id
List the recent accounting months of the workspace, with each month's close status, its invoice-retrieval state, and the counts that describe how much work it holds. Use this to as…
well_list_workspaces read-only workspace_id
List the workspaces this connection is authorized to access. Use this FIRST when a single token may cover more than one workspace. Each entry has: - workspace_id: pass this as the…
well_preview_invoice_fetch read-only periodsfiscal_yearworkspace_idcalendar_yearfiscal_periodcalendar_month
Preview which vendors a past period is still missing supplier invoices from, where each one's invoices are, and which route would obtain them. Use it for "what would happen if I fe…
well_query_records read-only root*limitcursorfieldsorderByallFields +3
Query records from Well's database. ⚠️ WORKFLOW: 1. To SHOW the user a table of a record type, just omit `fields`. You never choose columns for presentation: the table the user…
well_remove_contact_channel can modify data parent*channel*parent_id*channel_id*workspace_ididempotency_key
Remove a contact channel from a company or person. Wraps the resource-scoped DELETE endpoints (DELETE /v1/{companies,people}/:id/{emails,phones,web-links,locations}/:channelId).…
well_resolve_reconciliation_task action*task_ids*workspace_ididempotency_key
Approve or reject one or more reconciliation review tasks (from well_run_register_diff or the in-app review queue). - approve: confirms the match — the link is flipped to active.…
well_resolve_register_diff_gap task_id*workspace_ididempotency_keybank_ledger_account_id*category_ledger_account_id*
Post a well_run_register_diff gap (one of missing_in_register_ids' review tasks) into QuickBooks as a Purchase or Deposit. Requires the exact ledger_account_id (a UUID, not a name…
well_run_register_diff since_dateworkspace_ididempotency_keybank_workspace_connector_id*register_workspace_connector_id*
Diff a workspace's bank transactions against its accounting-register transactions (e.g. QuickBooks), and persist the result. - Every match — hard evidence (structured reference, I…
well_set_own_company can modify data company_id*workspace_ididempotency_key
Set which company the workspace itself IS — the confirmed own-company anchor. REQUIRED: company_id — a company that ALREADY EXISTS in this workspace. Obtain it with well_query_rec…
well_switch_workspace ackperiodsworkspace_idworkspace_idscounterpartiesidempotency_key +1
Write this connection's session context — the one place a conversation's standing choices live. This is the tool the widget cards call when the user CLICKS them: the workspace pin…
well_update_company can modify data namedomainlocalecompany_id*trade_namedescription +10
Update an existing company in the current workspace. Use this tool when the user asks to change, fix, rename, or edit a company's fields. REQUIRED: company_id OPTIONAL (only incl…
well_update_invoice can modify data termsstatusdue_datetax_totalinvoice_id*issue_date +13
Update an existing invoice in Well. Call well_get_schema("invoices") to discover all available fields. REQUIRED: invoice_id OPTIONAL (only pass fields you want changed): - refe…
well_update_person can modify data job_titlelast_nameperson_id*first_nameworkspace_ididempotency_key
Update an existing person (contact) in the current workspace. Use this tool when the user asks to change, fix, rename, or edit a person's fields. REQUIRED: person_id OPTIONAL (on…
well_upload_statement_bytes sha256filename*workspace_idcontent_base64*idempotency_key
Upload a bank statement file's BINARY CONTENT (PDF or image) as base64, so the file's real bytes reach Well without any out-of-band HTTP call. Use it for PDF and image statements…
well_upload_statement_content filename*content_text*workspace_ididempotency_key
Upload a bank statement's TEXT CONTENT (a .csv, .txt, or .xml file) directly, as an alternative to well_create_statement_upload's out-of-band file POST. Use it when the user's sta…
well_upsert_accounting_settings can modify data countryworkspace_idbase_currencycoa_confirmedidempotency_keyaccounting_framework +2
Set the workspace's accounting configuration: fiscal year start month, first fiscal year start date, country, base currency, accounting framework, and chart-of-accounts confirmatio…
well_wait_for_selection read-only kind*timeout_sworkspace_id
Read the user's card click — returns instantly if they already clicked; otherwise waits briefly. Call it after the tool whose card asks the user to click: well_list_workspaces (kin…