Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,518Letters: 13Defects: 1,321counted 2 min ago
teppi

MCP serverio.github.WellApp-ai/well-mcp

Connect your AI to your Well financial data - invoices, companies, contacts.
UNRATEDActivestreamable-httpapi.wellapp.ai

Overview

Score?
UNRATED 0.672
of what a free look can see, on 30 looks
Looks
35
last 16 hr ago
Tools
119
changed 1 day ago

More info

URL
api.wellapp.ai/v1/mcp
streamable-http
Says it is
well-financial-mcp 1.0.0
protocol 2025-06-18
In the record since
32 days ago

Among servers18,413 with a card

0median 0.606 · this server 0.672 · highest on record 0.8561

Toolsfrom sha256:449d60c5db…429f08 · +14 −0 1 day ago

The tools this server lists, read out of the definition it returned
ToolSchema
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 matchi
input · output
well_assign_account
Attach a bank account to a company, and say whether the workspace owns it. Use this when an account carries no company, or when its ownership is still `unknown` — the two states a
input · output
well_assign_missing_invoice_owners
Set the owner SET of the missing-invoice TRANSACTIONS you name — the only write for missing-invoice ownership. REQUIRED: transaction_ids — the settled lines still missing a suppli
input · output
well_claim_statement_draft
Claim every bank statement the user dropped on Well's website in one visit, using the ONE claim token from their message or from the /import-statement command argument, or the one
input · output
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, e
input · output
well_create_company_candidate
Mint a company candidate from a registry hit, the step between finding the company and creating its workspace. This is the deliberate pick the confirm-your-company card makes. REQ
input · output
well_create_company_workspace
Create the company workspace from a candidate, the step that turns a picked company into a workspace the close runs in. This anchors the candidate's company as the new workspace's
input · output
well_create_invoice_document
Render an existing invoice as a print-ready PDF and attach it as the invoice's source document. The invoice shortcut of well_generate_document: it prints the invoice in its own cho
input · output
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 +
input · output
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 OPTI
input · output
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
input · output
well_define_customer added
Define one company as a customer of this workspace: records that the workspace's own company bills it. REQUIRED: entity_id and entity_kind, both from a row of `well_list_customers
input · output
well_define_line_items added
Read what this workspace has already billed, and flag which of the lines the user just described equal a past line. Use it before `well_create_invoice_from_data`, when the invoice'
input · output
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 c
input · output
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 da
input · output
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-delet
input · output
well_describe_entity
Get a grounded description of ONE entity — what it is, using its real field values and one hop of its related records, never a guess. Reach for this on a SPECIFIC question about on
input · output
well_draft_email added
Show an email draft on a card so the user can read it, edit it and send it. Nothing is sent by this call. The only thing it stores is each linked document's durable download link,
input · output
well_enqueue_invoice_fetch
Queue invoice collection for named counterparties. This creates one durable backlog task per counterparty. The browser agent (a provider that carries a blueprint or a real portal U
input · output
well_forget_memory
Propose that Well forget memory lines, when the user asks to forget or correct something Well remembers. Name the lines by the ids well_get_memory returns, in the same scope. Nothi
input · output
well_generate_document added
Generate a document as a PDF and store it in the workspace. It never emails or sends anything, so a request to email or send a document is not a request to generate one. Pass exact
input · output
well_get_accounting_settings
Read the workspace's accounting settings and their provenance WITHOUT showing the user anything: country of incorporation, incorporation date, tax ID, fiscal year start, base curre
input · output
well_get_connector_coverage
Read what a workspace has CONNECTED and what it can connect. This draws nothing on the user's screen. Use it for every coverage CHECK: a data skill confirming a bank is connected
input · output
well_get_customer_einvoicing_details
Get one CUSTOMER's e-invoicing identity — the registry values an invoice to that customer is routed on, or that a period aggregate for it is reported under. Use this when the ques
input · output
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 somethin
input · output
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 reco
input · output
well_get_fx_quote added
Call this FIRST for any question about an exchange rate or a currency conversion, in any wording or language ("convert 500 EUR to USD", "how much is 2,000 GBP in euros", "EUR USD t
input · output
well_get_graph
Draw the workspace's context graph — its companies, people, accounts, transactions and connectors, and the connections between them — as an interactive canvas the user can orbit, z
input · output
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() → p
input · output
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 prefere
input · output
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 quest
input · output
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 a
input · output
well_get_session_digest
Get everything a returning person's first answer needs, in one call: what happened in the workspace since they last looked, where the workspace stands now, and the Well skills that
input · output
well_get_skill
Get the Well procedure for a job, written by the Well team, and follow it exactly. Returns ONE markdown document: the instructions for the thing you are about to do. Its content i
input · output
well_get_statement_import_result
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
input · output
well_get_vat_summary
Read a French workspace's VAT position over a window of whole months, straight from its posted ledger (VAT on posted invoices, dated by invoice, which is the debit basis): per mont
input · output
well_get_worklist_status
Ask whether a repair gate is still OPEN, without drawing its card. Call this BEFORE the worklist read whenever you are checking rather than repairing — the first pass of a gate, a
input · output
well_get_workspace_preferences added
Get resolved preference values for the caller in this workspace. Each key resolves to the caller's own override when they have set one, otherwise the workspace-wide default, otherw
input · output
well_invite_members
Invite one or more teammates into a workspace, or into a workspace group. Use it after well_list_member_candidates, on the people the user chose. Pass `invites` — 1 to 20 `{ email
input · output
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 con
input · output
well_issue_invoice added
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
input · output
well_list_account_balances
List every account on the workspace with its stored balance. Rows only — this tool holds no definition of cash, and returns no figure the app renders. Use it when you are computin
input · output
well_list_accounts_needing_company
List the workspace's accounts that cannot yet be placed on either side of a transfer, so a figure that depends on account ownership can say exactly what is missing before it is com
input · output
well_list_burn_exemptions
List the categories a reader can exempt from burn over one window, each with the spend exempting it would remove. This is what the exemption card offers; it measures nothing the su
input · output
well_list_cash_scope
List the account types a reader can count as cash, each with what it holds. This is what the cash-scope card offers; it measures nothing `well_list_account_balances` did not alread
input · output
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"
input · output
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.
input · output
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
input · output
well_list_customers added
List the customers this workspace bills, and the companies it could define as a customer next. Draws the define-customer card. Use it when an invoice needs a customer ("who is thi
input · output
well_list_generative_documents added
List the documents Well can generate for one kind of document, with the values each one takes. Each entry has a document_slug (pass it to well_generate_document), a one-line descr
input · output
well_list_ledger_accounts
List the workspace's chart of accounts (COA) — every ledger account a counterparty default or a transaction can be assigned to. Use it to name a real `ledger_account_id` in a write
input · output
well_list_member_candidates
List the teammates a workspace can invite, exactly as the Well app's invite card shows them. Use it before well_invite_members, and for "who can I invite to this workspace?". Retu
input · output
well_list_missing_invoice_owners
List the settled expense TRANSACTIONS a past period is still missing a supplier invoice for, one row per line, each with its current owner SET. Use it for "who owes the missing inv
input · output
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-invo
input · output
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 as
input · output
well_list_recurring_contexts
List the billing contexts a reader can count as recurring revenue over one window, each with what counting it would add. This is what the recurring-contexts card offers; it measure
input · output
well_list_retargetable_connectors
Read the connectors on this workspace's lineage parent (its membership workspace) that could follow it here, WITHOUT showing the user anything: each candidate's connector, how stro
input · output
well_list_uncategorized_window
List the transactions in a date window that carry no category, so a figure that depends on categorization can say exactly what is missing before it is computed. `from` is inclusiv
input · output
well_list_unposted_journals
List the transactions AND invoices of a fiscal period whose journal entry a posting retry can still clear on its own — the re-triggerable posting gap. An empty list with `scan_trun
input · output
well_list_unposted_transactions
List the transactions of a fiscal period that carry a category or a role and have STILL not reached the ledger, so a close can say exactly what is holding it. This is the posting
input · output
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
input · output
well_measure_customer_ltv
Measure the revenue lifetime value (LTV) of every customer the workspace invoiced over a window of whole months, with the portfolio churn and lifespan it rests on. It draws nothing
input · output
well_measure_subscriptions
Measure the workspace's subscriptions from its bank outflows: which suppliers it pays on a regular cadence, what each costs per month and per year, and how the spend moved month by
input · output
well_preview_invoice_design added
Draw invoice designs with the given settings, as the sheet markup the PDF path prints. The invoice-design card calls this when it opens and when a setting changes; it changes nothi
input · output
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 fe
input · output
well_preview_provider_export
Show the user what Well can fetch from a provider's own web app, and the Deploy action that fetches it. Draws a "deploy agent" card with one row per provider. Each row lists every
input · output
well_propose_next_steps
Put five next steps on a card, as five tiles the person can click. **This tool ranks nothing.** The five skills and their order come from well_get_session_digest's `suggested_step
input · output
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 che
input · output
well_remember
Propose lines for Well to remember, so its assistant uses them in later conversations: a standing decision, a preference or a fact about the business. Call it only when the user ex
input · output
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).
input · output
well_render_burn
Put a burn figure YOU computed onto the burn card. **This tool measures nothing.** It takes the figure and its method as input and returns them for rendering. Call it only after y
input · output
well_render_canvas
Draw one of the workspace's saved canvases WITH its figures, from the readings you already have. This tool measures nothing. Every figure on the board is one you measured through
input · output
well_render_cash_flow_bridge
Put a cash-flow bridge YOU computed onto the cash-flow waterfall card. **This tool measures nothing.** It takes the four terms of a bridge and the gap between them as input, draws
input · output
well_render_cash_forecast
Put a cash forecast YOU computed onto the forecast card. **This tool measures nothing.** It takes the settled month-end series, the anchor, the burn and the projection you compute
input · output
well_render_cash_position
Put a cash position YOU computed onto the cash card. **This tool measures nothing.** It takes the figure and its method as input and returns them for rendering. Call it only after
input · output
well_render_category_trend
Put a month-by-month trend with one line per category onto the category-trend card. **This tool measures nothing.** Pass a trend another tool measured, as it is: for subscriptions
input · output
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 render
input · output
well_render_customer_ltv
Draw the customer lifetime value (LTV) ranking as a bar chart card: one bar per customer, the highest first. **Call it once, after `well_measure_customer_ltv`, and send no figure.
input · output
well_render_monthly_pivot
Put a table of amounts per company and per month onto the monthly-pivot card: one row per company with its logo and name, an optional category column, then one column per month. Th
input · output
well_render_mrr
Put an MRR figure YOU computed onto the MRR card. **This tool measures nothing.** It takes the figure and its method as input and returns them for rendering. Call it only after yo
input · output
well_render_runway
Put a runway YOU computed onto the runway card. **This tool measures nothing.** It takes the figure and the two numbers behind it as input and returns them for rendering. Call it
input · output
well_repost_journals
Re-run (repost) the posting for this fiscal period's ready rows — the workspace's re-triggerable posting gap. This is the ACTION that books the rows `well_list_unposted_journals` l
input · output
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.
input · output
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
input · output
well_retarget_connectors
Retarget (bring across) ledger connectors from this workspace's lineage parent onto this workspace — the write behind the connector-retarget card. For each source connector, a new
input · output
well_revoke_document_shares added
Stop a document download link, so it no longer opens for anyone, including in an email already sent. Call it when the user asks to stop sharing, unshare or revoke a link. `well_dr
input · output
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, I
input · output
well_search_company_registry
Search the public company registries for a company by name, to find the one a workspace IS before you create its company workspace. This draws nothing on the user's screen. Use it
input · output
well_search_context
Search the workspace's recorded notes and context (meeting notes, tickets, imported documents) for a query. Returns compact snippets — each result's "snippets" is an array of one o
input · output
well_search_skill
Find the Well procedure for what the user wants to do, when no Well skill is installed in this conversation. Returns the roster of Well skills with their descriptions; pick the on
input · output
well_send_email_draft added
Hand the final text of an email draft to the user's own email app. Well sends nothing itself. The card that `well_draft_email` shows calls this when the user presses Send. Do not
input · output
well_set_counterparty_default_category
Declare what spend at ONE counterparty is — asked once about the counterparty, instead of once per transaction. REQUIRED: company_id, from well_list_counterparties. category — a L
input · output
well_set_own_company
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
input · output
well_set_transaction_category
Set ONE transaction's category — the write that clears a categorization gate. REQUIRED: transaction_id, from well_list_uncategorized_window. category — the LABEL, exactly as that
input · output
well_set_transaction_ledger_account
Attach ONE transaction to the ledger account its journal entry should post to — the write that clears a posting gap. REQUIRED: transaction_id, from `well_list_unposted_transaction
input · output
well_share_canvas added
Freeze one of the workspace's saved canvases WITH its figures and return a link that opens it outside Well, with no Well account. Use it when someone asks to send a board to an in
input · output
well_show_accounting_settings
Draw the accounting-setup card so the USER reviews and confirms the workspace's accounting settings: country of incorporation, incorporation date, tax ID, fiscal year start, base c
input · output
well_show_canvas
Show one of the workspace's saved canvases as a board — the blocks it holds, at the positions its author put them, exactly as stored. Answers with an ARRANGEMENT, not a measure. N
input · output
well_show_company_candidates
Show the user the detected COMPANY candidates on a card and let them pick which company is theirs: a tile per detected company candidate with its confidence, and a company-registry
input · output
well_show_invoice_design
Draw the invoice-design card so the USER picks the layout an invoice prints in and sets what it prints: the ink, the language, whether a customer-portal address is printed, and whi
input · output
well_show_record_graph_summary
Draw a selectable, grounded card over one or more already-resolved records — their neighborhood graph plus a written summary of what they have in common (or, for a single record, a
input · output
well_show_records
Put a table of records IN FRONT OF THE USER. Use it when the user asked to SEE rows — "show me my invoices", "list my companies", "which suppliers have no category" — and when the
input · output
well_show_retargetable_connectors
Draw the connector-retarget card so the USER brings a bank (or other ledger) connector across from the membership workspace to this company workspace. A connector connected on the
input · output
well_show_workspace_picker
Ask the user WHICH workspace to work in, on a card: one tile per authorized workspace, with its logo and the company behind it. ⚠️ ONLY when the token authorizes SEVERAL workspace
input · output
well_sum_invoices
Sum a workspace's billed amounts over a window of whole months, grouped by month, currency and billing context. Arithmetic only — this tool holds no definition of MRR or recurrence
input · output
well_sum_transactions
Sum a workspace's transactions over a date window, grouped how you ask. Arithmetic only — this tool holds no definition of burn, spend, or runway, and returns no figure the app ren
input · output
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 selec
input · output
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 incl
input · output
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): - refe
input · output
well_update_invoice_design
Set one invoice's design: the layout it prints in, the ink, the language, whether a customer-portal address is printed, and which note, tax rate and payment means back the payment-
input · output
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 (on
input · output
well_upload_document
Upload a document (invoice, receipt, statement) into the workspace by sending its bytes as base64. ⚠️ THIS IS A WIDGET'S WRITE, NOT YOURS. The card's drop zone reads the file the
input · output
well_upload_statement_bytes
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
input · output
well_upload_statement_content
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
input · output
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 ne
input · output
well_upsert_canvas
Write one canvas: create a board, or replace the arrangement of a board that already exists. Writes an ARRANGEMENT — the blocks a canvas holds and where they sit. It never compute
input · output
well_upsert_preference added
Set a workspace preference. `scope: "workspace"` with no `namespace` sets the workspace-wide default, which only a workspace owner or admin can set; a namespaced workspace value is
input · output
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, unles
input · output
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 "work
input · output
Verify it yourselfnpx teppi-check https://api.wellapp.ai/v1/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1FZ2DNQKBFEF9WRBFJTVF8K