Well
by wellapp.ai in Company & people data
Connect your AI to your Well financial data - invoices, companies, contacts.
https://api.wellapp.ai/v1/mcp
This listing's own text contains instructions aimed at AI agents (see the security scan below). We withhold that text from agents and never recommend this service.
Last 30 days
- Uptime
- 100%
- Response time
- 322 ms typical, 736 ms slowest 5%
- Last check
- 4 h ago
- Next check
- in 2 h
How to call it
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"well": {
"type": "http",
"url": "https://api.wellapp.ai/v1/mcp"
}
}
}198 tools
- well_get_schema
Discover available data types and fields. USAGE: - well_get_schema() → List ALL available roots, including the accounting graph (ledger_accounts, journals, journal_entries) plus account_balances, tax_rates, exchange_rates — query these for real financial statements (compte de ré
- well_query_records
Read records from Well's context graph FOR YOUR OWN WORK. This draws nothing on the user's screen. Use it for every read whose answer is yours rather than the reader's: a gate checking whether a window holds transactions, a `totalCount` an answer has to quote, a sync log's lates
- well_create_company
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, enrichment (logo, domain, industry, tax ID, description fill-in) runs asynchronously in the backgroun
- well_create_person
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 OPTIONAL: last_name, job_title After creation, enrichment runs asynchronously in the background. Retur
- well_update_company
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 include fields the user wants changed): name, description, domain, registered_name, trade_name, tax_id
- well_update_person
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 (only include fields the user wants changed): first_name, last_name, job_title. NOT CHANGEABLE via t
- well_delete_company
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 company and its company_person relationships. Linked people records themselves are NOT deleted. Invoi
- well_delete_person
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-deletes the person and its company_person relationships. Linked companies themselves are NOT deleted. The
- well_update_invoice
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): - reference_number, issue_date (ISO date), due_date (ISO date) - status (draft | paid | canceled). Never
- well_delete_invoice
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 database, orphaned. The delete is reversible only at the database level.
- well_add_contact_channel
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 matching value field: - email → value.email - phone → value.e164_number (E.164; a leading "+
- well_remove_contact_channel
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). Pass channel_id = the UUID of the specific channel row to remove (NOT the parent). Find it by readin
- well_get_entity
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 record with its related data expanded. depth (relation-nesting BOUNDARY, 1-3, default 1): 1 = the ent
- well_list_connector_tools
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") and read its workspace_connector_id directly off the row. 2. well_list_connector_tools({ workspace
- well_invoke_connector_tool
Run one tool on a connected provider's own MCP server, on behalf of this workspace's connection: an action the user asked to take there (create a record in Attio), or a read of content Well does not sync (a page in a docs tool, a note in a CRM, a file the user pasted a link to).
- well_create_invoice_from_data
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 + payment means using the same pipeline as uploaded documents. Fill every field you can read from the
- well_issue_invoice
Issue a draft invoice: it becomes a full invoice. The invoice takes the workspace's next invoice number and, from then on, can no longer be edited or deleted. To correct an issued invoice, create a credit note that refers to it. REQUIRED: invoice_id, the draft invoice created wi
- well_list_workspaces
List the workspaces this connection is authorized to access. This draws nothing on the user's screen. Use this FIRST when a single token may cover more than one workspace, and use it for every case a caller can settle on its OWN: exactly one workspace, a hint that matches one, a
- well_list_connectors
List the connectors a workspace can install AND everything it has already connected, each with a one-click install deep link. The result DRAWS THE CONNECT CARD the user clicks in. It is also the answer to "which connectors can bring this provider's invoices in" (browser extensio
- well_run_register_diff
Diff a workspace's bank transactions against its accounting-register transactions (e.g. QuickBooks), and persist the result. - Every match — hard evidence (structured reference, IBAN, tax ID) or inference-only (memo/payee reading) — is raised as a review task with the candidate
- well_resolve_reconciliation_task
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. - reject: dismisses the match — the candidate does not silently re-surface. Each task_id resolves i
- well_resolve_register_diff_gap
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) for both: - bank_ledger_account_id: the bank/cash account the money moved through (e.g. Checking).
- well_get_investment_holdings
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() → pick the ENABLED Plaid connector (connection_status: "enabled") and read its workspace_connector_id d
- well_render_cost_structure
Put a cost breakdown YOU computed onto the cost-structure card. **This tool measures nothing.** It takes the slices and the method behind them as input and returns them for rendering. Call it only after you have computed the breakdown yourself and can state every field below fro
- well_get_own_company
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 question turns on "mine" versus "theirs" — my payables, my receivables, invoices I owe, what we billed —
- well_list_missing_invoices
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-invoices card shows them. Use it for "which invoices am I missing for <month>?" and as the input to fetc
- well_sum_missing_invoices
The missing supplier invoices of one ISO week that has ended, as one total: how many suppliers still miss an invoice, and the spend they cover, in the currency of the lines and converted to the workspace base currency. It returns no rows. `week` is an ISO week, `YYYY-Www` (Monda
- well_list_periods
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 ask the user WHICH month or months to work on before any close, review, or month-scoped read — do not
- well_preview_invoice_fetch
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 fetched <month>'s missing invoices?" before anything runs. Name the period ONE way: `{ calendar_year,
- well_switch_workspace
Write this conversation's context: the one place its standing choices live. This is the tool the widget cards call when the user CLICKS them: the workspace pin and queue, the selected months, the selected counterparties, and the step acknowledgements are all recorded here, and ev
- well_list_counterparties
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?", "what industries are my counterparties in?", and before categorizing a counterparty so you name
- well_wait_for_selection
Read the user's card click, holding the turn open until it lands. Call it in the SAME turn, right after the tool whose card asks the user to click: well_list_workspaces (kind "workspace"), well_list_periods (kind "periods"), well_list_missing_invoices (kind "counterparties" — its
- well_wait_for_process
Waits up to 5 seconds for one background process of the workspace and returns where it stands. Before each call, announce it with the sentence for its kind, and nothing else, unless the skill says to make that call with no announce sentence: - bank_sync: "Retrieving transactions
- well_set_own_company
Open the workspace's "Confirm your company" task for a company, or point to the one already open. This tool never anchors the company itself: a person confirms the company in Well, and only that confirmation writes it. The result carries confirmation_required: true and confirmati
- well_get_design_tokens
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 something yourself — an HTML artifact, a report, a chart you are drawing. You do not need it to answer in pr
- well_create_statement_upload
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 through the model. It returns a single-use upload URL + token; the client (or the user) POSTs the r
- well_upsert_accounting_settings
Set the workspace's accounting settings: fiscal year start month, first fiscal year start date, country, base currency, accounting framework, chart-of-accounts confirmation, the next invoice number, the incorporation date, the tax ID (value and type together), and the tax profile
- well_search_context
Search the workspace's recorded notes and context (meeting notes, tickets, imported documents, and the caller's own imported emails) for a query. Returns compact snippets — each result's "snippets" is an array of one or more matched passages from that note. The best note results
- well_search_mailbox_for_receipt
Search the caller's own connected Gmail, now, for one supplier's mail in a date window: the sender name or domain, from `from` to `to` inclusive, sent mail excluded. Use it for a missing receipt or invoice, one call per supplier, with the window widened by about a week on each si
- well_get_memory
Read what Well remembers about this workspace and about the user: standing decisions (how a supplier's transactions are categorised, which company the workspace is), stated preferences (currency, report format), facts the user told Well before, and recent task outcomes. Call it o
Security scan
- Unusually long description in tool:well_query_records
well_query_records Read records from Well's context graph FOR YOUR OWN WORK. Thi… - Unusually long description in tool:well_update_company
well_update_company Update an existing company in the current workspace. Use th… - Unusually long description in tool:well_create_invoice_from_data
well_create_invoice_from_data Create an invoice in Well from data you extracted … - Unusually long description in tool:well_issue_invoice
well_issue_invoice Issue a draft invoice: it becomes a full invoice. The invoice… - Unusually long description in tool:well_list_workspaces
well_list_workspaces List the workspaces this connection is authorized to access… - Unusually long description in tool:well_list_connectors
well_list_connectors List the connectors a workspace can install AND everything … - Unusually long description in tool:well_render_cost_structure
well_render_cost_structure Put a cost breakdown YOU computed onto the cost-struc… - Unusually long description in tool:well_list_missing_invoices
well_list_missing_invoices List the supplier invoices a past period is still mis… - Unusually long description in tool:well_sum_missing_invoices
well_sum_missing_invoices The missing supplier invoices of one ISO week that has… - Unusually long description in tool:well_list_periods
well_list_periods List the recent accounting months of the workspace, with each … - Unusually long description in tool:well_preview_invoice_fetch
well_preview_invoice_fetch Preview which vendors a past period is still missing … - Unusually long description in tool:well_switch_workspace
well_switch_workspace Write this conversation's context: the one place its stand… - Unusually long description in tool:well_list_counterparties
well_list_counterparties List the workspace's counterparty companies and how eac… - Unusually long description in tool:well_wait_for_selection
well_wait_for_selection Read the user's card click, holding the turn open until … - Unusually long description in tool:well_list_uncategorized_window
well_list_uncategorized_window List the transactions in a date window that carry… - Unusually long description in tool:well_render_burn
well_render_burn Put a burn figure YOU computed onto the burn card. **This tool… - Unusually long description in tool:well_sum_transactions
well_sum_transactions Sum a workspace's transactions over a date window, grouped… - Unusually long description in tool:well_list_possible_double_debits
well_list_possible_double_debits Find the pairs of outgoing bank movements that … - Unusually long description in tool:well_measure_subscriptions
well_measure_subscriptions Measure the workspace's subscriptions from its bank a… - Unusually long description in tool:well_measure_category_trend
well_measure_category_trend Measure ONE spending category for one month against … - Unusually long description in tool:well_measure_recurring_inflows
well_measure_recurring_inflows Measure who pays the workspace on a regular caden… - Unusually long description in tool:well_sum_invoices
well_sum_invoices Sum a workspace's billed amounts over a window of whole months… - Unusually long description in tool:well_sum_receivables
well_sum_receivables What the workspace's customers still owe it: the outstandin… - Unusually long description in tool:well_sum_payslips
well_sum_payslips The payroll total of a window of whole months, summed on the s… - Unusually long description in tool:well_measure_customer_ltv
well_measure_customer_ltv Measure the revenue lifetime value (LTV) of every cust… - Unusually long description in tool:well_render_customer_ltv
well_render_customer_ltv Draw the customer lifetime value (LTV) ranking as a bar… - Unusually long description in tool:well_get_vat_summary
well_get_vat_summary Read the VAT position of a workspace over a window of whole… - Unusually long description in tool:well_prepare_vat_return
well_prepare_vat_return Prepare a French company's VAT return (CA3) for one peri… - Unusually long description in tool:well_get_pennylane_statements
well_get_pennylane_statements Build a profit and loss (compte de résultat) and a… - Unusually long description in tool:well_render_mrr
well_render_mrr Put an MRR figure YOU computed onto the MRR card. **This tool m… - Unusually long description in tool:well_list_account_balances
well_list_account_balances List every account on the workspace with its stored b… - Unusually long description in tool:well_render_cash_position
well_render_cash_position Put a cash position YOU computed onto the cash card. … - Unusually long description in tool:well_list_cash_scope
well_list_cash_scope List the account types a reader can count as cash, each wit… - Unusually long description in tool:well_render_runway
well_render_runway Put a runway YOU computed onto the runway card. **This tool … - Unusually long description in tool:well_render_cash_forecast
well_render_cash_forecast Put a cash forecast YOU computed onto the forecast car… - Unusually long description in tool:well_render_cash_flow_bridge
well_render_cash_flow_bridge Put a cash-flow bridge YOU computed onto the cash-f… - Unusually long description in tool:well_list_burn_exemptions
well_list_burn_exemptions List the categories a reader can exempt from burn over… - Unusually long description in tool:well_list_recurring_contexts
well_list_recurring_contexts List the billing contexts a reader can count as rec… - Unusually long description in tool:well_list_member_candidates
well_list_member_candidates List the teammates a workspace can invite, exactly a… - Unusually long description in tool:well_invite_members
well_invite_members Invite one or more teammates into a workspace, or into a wor… - Asks the agent to hide things from the user in tool:well_enqueue_invoice_fetch
enqueued counterparty can go on a link. Never tell the user the link covers a counterparty it does not name. Use well_preview_invoice_fetch - Unusually long description in tool:well_set_transaction_category
well_set_transaction_category Set ONE transaction's category — the write that cl… - Unusually long description in tool:well_list_accounts_needing_company
well_list_accounts_needing_company List the workspace's accounts that cannot yet… - Unusually long description in tool:well_list_unposted_transactions
well_list_unposted_transactions List the transactions of a fiscal period that ca… - Unusually long description in tool:well_show_records
well_show_records Put a table of records IN FRONT OF THE USER. Use it when the u… - Unusually long description in tool:well_get_worklist_status
well_get_worklist_status Ask whether a repair gate is still OPEN, without drawin… - Unusually long description in tool:well_get_connector_coverage
well_get_connector_coverage Read what a workspace has CONNECTED and what it can … - Unusually long description in tool:well_get_session_digest
well_get_session_digest Get everything a returning person's first answer needs, … - Unusually long description in tool:well_propose_next_steps
well_propose_next_steps Put five next steps on a card, as five tiles the person … - Unusually long description in tool:well_set_counterparty_default_category
well_set_counterparty_default_category Declare what spend at ONE counterparty is… - Asks the agent to hide things from the user in tool:well_list_unposted_journals
s scanned", NOT "every row is posted" — do not tell the user the close can skip this step on a truncated empty read. The period is named in - Unusually long description in tool:well_list_unposted_journals
well_list_unposted_journals List the transactions AND invoices of a fiscal perio… - Unusually long description in tool:well_upsert_canvas
well_upsert_canvas Write one canvas: create a board, or replace the arrangement … - Unusually long description in tool:well_preview_provider_export
well_preview_provider_export Show the user what Well can fetch from a provider's… - Unusually long description in tool:well_render_canvas
well_render_canvas Draw one of the workspace's saved canvases WITH its figures, … - Unusually long description in tool:well_generate_document
well_generate_document Generate a document as a PDF and store it in the workspac… - Asks the agent to hide things from the user in tool:well_draft_email
l `well_send_email_draft` yourself, and do not tell the user the email was sent until they say so. When the token authorizes one workspace, - Unusually long description in tool:well_draft_email
well_draft_email Show an email draft on a card so the user can read it, edit it … - Asks the agent to hide things from the user in tool:well_send_email_draft
document exists. Well sent nothing, so never tell the user the email was sent. A failure carries an `error_reason`; nothing was sent. When - Mentions credentials or secret files in tool:well_get_workspace_preferences
pply. `mail_sender_choice` is a member-private key read one sender at a time: pass `namespace` set to the `namespace` that `well_list_mail_ - Unusually long description in tool:well_upsert_preference
well_upsert_preference Set a workspace preference. `scope: "workspace"` with no … - Unusually long description in tool:well_define_line_items
well_define_line_items Read what this workspace has already billed, and flag whi… - Unusually long description in tool:well_get_fx_quote
well_get_fx_quote Call this FIRST for any question about an exchange rate or a c… - Unusually long description in tool:well_share_canvas
well_share_canvas Freeze one of the workspace's saved canvases WITH its figures … - Unusually long description in tool:well_search_places
well_search_places Search up to 3 places of a kind near a location, from Google … - Unusually long description in tool:well_list_contract_terms
well_list_contract_terms List the contracts and insurance policies Well read fro… - Asks the agent to hide things from the user in tool:well_retry_period_matching
nt journal like any automatic match, so do not tell the user that nothing will be posted. Say Well is looking again for `enqueued_invoice_id - Unusually long description in tool:well_list_receipt_candidates
well_list_receipt_candidates List the payments a stored receipt may belong to, s… - Unusually long description in tool:well_preview_browser_skill
well_preview_browser_skill Preview a published browser skill for a provider: wha… - Asks the agent to hide things from the user in tool:well_delete_whatsapp_link
méro", "repartir de zéro sur WhatsApp". Never tell the user this cannot be done. It is not for starting a new conversation topic, and not fo - Unusually long description in tool:well_share_widget
well_share_widget Freeze ONE widget's figures and return a link that opens it on… - Unusually long description in tool:well_send_message
well_send_message Send one email to one or several people (a supplier, a custome… - Unusually long description in tool:well_create_schedule
well_create_schedule Create one workspace schedule: a job Well runs on a clock o… - Unusually long description in tool:well_list_schedules
well_list_schedules List this workspace's schedules, newest first, each with its… - Unusually long description in tool:well_update_schedule
well_update_schedule Change, arm, pause or resume one workspace schedule. Use i… - Unusually long description in tool:well_find_free_time
well_find_free_time Find when the user is free, or when the user and other works…
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 4 h ago | Passed | 200 | 830 ms |
| 14 h ago | Passed | 200 | 322 ms |
| 23 h ago | Passed | 200 | 736 ms |
| 32 h ago | Passed | 200 | 353 ms |
| 42 h ago | Passed | 200 | 234 ms |
| 2 days ago | Passed | 200 | 279 ms |