co.lovie/company-formation · v1.0.10 · finance-and-payments
Lovie Company Formation is healthy: it completed an MCP handshake in 1160 ms and exposes 347 tools.
Form companies, manage bank accounts, cards, invoices and more — directly from your AI coding tools.
Endpoint: https://mcp.lovie.co/mcp/mcp (streamable-http)
Repository · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 347 |
| Latency | 1160 ms |
| Last checked (UTC) | 2026-10-17T01:20:40.368Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-17T01:20:40.368Z | Healthy | 1160 | |
| 2026-10-15T18:30:09.352Z | Healthy | 817 | |
| 2026-10-14T17:35:37.872Z | Healthy | 2248 |
account_get_account | GetAccount retrieves a single account by ID with its details |
account_get_list_account_details | GetListAccountDetails retrieves account details in batch (eliminates N+1 GetAccount calls) |
accounting_get_accounting_settings | GetAccountingSettings returns the company's fiscal-year start and where it comes from: a person's setting, the EIN filing's closing month, or January. Read-only. |
accounting_get_aging_report | Accounts receivable or accounts payable aging: the open balances per customer or supplier, split into not yet due, 1-30, 31-60, 61-90 and over 90 days past due, with totals. Reads the items open now; as_of_date only decides how overdue each one counts as. Items whose source sent no due date are aged |
accounting_get_balance_sheet | GetBalanceSheet returns assets, liabilities, and equity balances as of a date; equity includes net income to date, so the sheet always balances. Read-only. |
accounting_get_cash_flow_statement | GetCashFlowStatement returns the statement of cash flows for a period: net income, then operating, investing and financing activity, reconciled to the change in bank and cash balances. Read-only. |
accounting_get_chart_of_accounts | GetChartOfAccounts returns the company's chart of accounts (flat list with parent links; build the tree client-side). Read-only. |
accounting_get_close_target | GetCloseTarget names the window the next close has to cover: a reopened period first, else the month after the books are closed through, else the month of the first entry. The same rules ClosePeriod enforces. Read-only. |
accounting_get_funding_summaries | Per bank account and card, the balance the books show and how many posted entries came through it. Compare with the bank's own balance from account tools; a difference is what reconciliation resolves. Read-only. |
accounting_get_general_ledger | GetGeneralLedger pages through one account's posted lines with opening, running, and closing balances — the account register. Read-only. |
accounting_get_gl_account_type_catalog | GetGLAccountTypeCatalog returns every account type with the detail types it admits and the classification it implies — what the New account panel needs to populate its two dependent selects without duplicating the pairing rules. Static per release; safe to cache. Read-only. |
accounting_get_journal_entry_by_transaction | GetJournalEntryByTransaction returns the journal entry derived for one transaction (empty when none exists yet). Read-only. |
accounting_get_list_journal_entries | GetListJournalEntries pages through the journal register with filters — the review queue is filter{needs_review: true}. Read-only. |
accounting_get_list_periods | GetListPeriods pages through a company's periods, newest first. Read-only. |
accounting_get_list_review_items | List bank transactions awaiting bookkeeping review. Tabs: PENDING (nobody has reviewed the booking as it stands, whether the engine, a rule or a person made it), REVIEWED (a person marked it reviewed and it has not changed since; a trusted rule posting it on its own is not a review), EXCLUDED (delib |
accounting_get_list_schedules | GetListSchedules pages through a company's schedules. Read-only. |
accounting_get_list_statements | List the bank statements imported for reconciliation, newest period first, with how many of each statement's lines are still unmatched. Read-only. |
accounting_get_period | GetPeriod returns one closed period by id. Read-only. |
accounting_get_profit_and_loss | GetProfitAndLoss returns the income statement for a period: revenue and expense accounts with activity, totals, and net income. Read-only. |
accounting_get_report_series | GetReportSeries returns one P&L, balance sheet or cash flow statement per month, quarter or year of a range, in one call: the same figures the single-period RPCs give for each period. Read-only. |
accounting_get_review_counts | Count bank transactions per bookkeeping review tab (pending, reviewed, excluded) without fetching rows. Use to report how much review work is outstanding. |
accounting_get_schedule | GetSchedule returns one schedule with its postings. Read-only. |
accounting_get_similar_review_items | After booking one transaction, find the other pending transactions from the same counterparty in the same cash direction (money out vs money in), so the same correction can be applied to all of them. Returns up to 500 transaction ids, newest first, plus total_count, which counts every match and can |
accounting_get_statement | One statement with its lines and their matches. Read-only. |
accounting_get_trial_balance | GetTrialBalance returns every account's debit and credit totals for a period; total debits equal total credits when the books balance. Read-only. |
accounting_list_accounting_audit_events | ListAccountingAuditEvents pages through the append-only accounting audit log — who changed what and when across journal entries and the chart of accounts, newest first. Filter by entity_id for one record's history. Read-only. |
accounting_preview_close | PreviewClose computes the per-currency revenue/expense totals and the net income a close would roll, without writing anything, and reports what still blocks the close along with what closing carries with it. The blockers come from the function ClosePeriod refuses on, so a clean preview means the clo |
accounting_preview_schedule | PreviewSchedule computes the straight-line per-period split for the given amount and period count without persisting anything. Read-only. |
accounting_propose_schedules | Scan a company's recent posted transactions and suggest accrual schedules (e.g. amortize a large annual prepaid over 12 months). Returns proposals only — nothing is created until a person creates the schedule in the app. Each proposal carries the suggested kind, total amount, start date, period coun |
accounting_suggest_statement_matches | Rank ledger transactions against a statement's unmatched lines. Amount must match exactly; date proximity and description then rank the candidates. Writes nothing — a person applies a match on the reconcile screen. |
accounting_suggest_transfer_pairs | Rank the journal entries that could be the other half of a transfer between the company's own accounts: opposite direction, same amount, different instrument, dated within a few days. Writes nothing — a person confirms a pair in the app. |
ads_insight_summarize_ad_spend | SummarizeAdSpend unions the four ad platforms' daily campaign tables at read time into per-(provider, month, currency) spend/impressions/clicks/ conversions plus a per-currency CPA. Read-time only — no new storage. |
ads_insight_summarize_campaign_window | SummarizeCampaignWindow summarises one charge against the campaigns in its billing window. Results are cached per company + account + window + charge, so repeated panel opens do not re-run the agent. |
approval_session_create_approval_session | Opens a sensitive-action approval on the user's own trusted device: a push notification asks them to approve on their phone. Use before tools that demand an approval (the domain auth-code reveal, the trademark firm handoff, the ITIN submit): create the session with the exact action_type and payload |
approval_session_get_approval_session_status | Read the status of a trusted-device approval session: PENDING, APPROVED, REJECTED or EXPIRED. For a transfer, call this with the approval_session_id from request_transfer_approval once the user says they have answered on their phone, and call commit_transfer only when it returns APPROVED. Poll once |
autonomous_pay | Submit a signed payment mandate for autonomous execution. Runs the four-check pipeline and the per-agent autonomy fence; payments outside the agent's envelope are gated to human approval. |
banking_confirm_extracted_value | ConfirmExtractedValue records that a human checked a read value. Without it a low-confidence extraction holds its section open forever and the application can never be submitted. |
banking_confirm_initial_transfer | Records the opening deposit a founder chose for their banking application. This stores an intention only — it does not move money, and no funds are transferred by any part of Lovie today. Never tell the user their deposit has been sent. |
banking_extract_document_fields | Reads an uploaded document on a banking application — a Certificate of Incorporation or an IRS EIN letter — and fills in the values it states, each marked with where it came from and how confident the read was. It never sets the industry classification: no document states it. |
banking_get_banking_application | GetBankingApplication returns the whole application: the business facts, the beneficial owners, the uploaded documents, what each value's source was, and the sections still outstanding. It is the one read for answering "where is my application, and what is left?". It carries only the last four digi |
banking_get_initial_transfer_preview | Returns the suggested opening deposit for a banking application and the reason for that figure. Read-only: it moves no money and records nothing. |
banking_get_issuance_state | GetIssuanceState reports where this application's deposit account stands: whether it is queued, being opened, open, or could not be opened, and the last four digits once there are any. It exists as its own state so that an approved application is never mistaken for an open account. Approval is our |
banking_hydrate_from_cap_table | HydrateFromCapTable carries the company's carriable stakeholders onto an open application as beneficial owners. Idempotent: the stakeholder link identifies them, so running twice updates rather than duplicates, and an owner the applicant corrected keeps their correction. |
banking_hydrate_from_formation | HydrateFromFormation is idempotent: it writes values and their provenance in one transaction and never overwrites something the applicant supplied. |
banking_preview_cap_table_hydration | PreviewCapTableHydration says which of the company's cap-table stakeholders could be carried over as beneficial owners, without writing. Read-only, and unavailable rather than an error when there is nothing to carry. |
banking_preview_formation_hydration | PreviewFormationHydration says what a formation would carry over, without writing. Read-only so the entry picker can offer the warm path only when it is genuinely available. |
banking_refresh_application_provider_status | RefreshApplicationProviderStatus re-reads the provider's verification verdict for a submitted application and moves it on when the verdict has settled. Pull, not push, for the reason RefreshOwnerVerification is: a webhook nobody received leaves an applicant waiting on a state change that already hap |
banking_refresh_owner_verification | Re-reads the identity-verification outcome for one beneficial owner on a banking application and records it. Idempotent. Does not start a verification and does not carry any of that person's personal data. |
banking_set_application_ein | Files a company's employer identification number against a banking application. Nine digits, no separators. The whole number goes to the secret store and only its last four are recorded; the response returns nothing, and no tool reads the number back. A company that has applied for an EIN but not re |
banking_set_owner_identity_document_number | Files the number on a beneficial owner's passport or US driver's license against a banking application, for an owner who has no SSN or ITIN. Record the document first (kind, issuing country, expiry, and the issuing state for a license) on the owner. The number goes to the secret store; only its last |
banking_set_owner_tax_identifier | Files one beneficial owner's Social Security Number or ITIN against a banking application. The whole number goes to the secret store and only its last four digits are recorded, which is all the response returns. Ask the person which of the two they hold and pass it as kind: an ITIN starts with 9 and |
banking_start_banking_application | StartBankingApplication opens a business account application for a company. A company may have only one undecided application at a time; starting a second is refused rather than splitting the answers across two records. The path says where the answers will come from — WARM_FORMATION when the compan |
banking_submit_banking_application | SubmitBankingApplication freezes the application. It returns the blocking sections rather than a bare failure, so "submit is disabled" always comes with what is missing. Stays exposed — filling in and submitting an application is what an agent is for here — but marked destructive and non-idempotent |
banking_suggest_industry_code | Suggest NAICS industry classification codes from a plain-language description of what a business does. Returns each candidate code with its official title and the words that matched, best match first. Returns nothing when the description is too short or the business is outside the covered set — say |
banking_update_banking_application | UpdateBankingApplication takes a FieldMask. Every path in the mask also writes USER provenance, so correcting a carried-over value re-attributes it. |
banking_upsert_beneficial_owner | UpsertBeneficialOwner adds or updates one beneficial owner. A request whose owner carries ssn_last4 is refused with INVALID_ARGUMENT and writes nothing: those four digits are recorded only by SetOwnerTaxIdentifier, after the whole identifier has reached the secret store. Accepting them here would re |
cap_table_clear_cap_table_stakeholders | ClearCapTableStakeholders deletes every stakeholder of a company in a single DB-level operation. Used by the "replace cap table" import flow. |
cap_table_close_cap_table_round | CloseCapTableRound PERMANENTLY closes the round: runs the calc engine, persists the SAFE conversions + ownership snapshots, and flips the round to CLOSED. This is the action for "close the round", "make it permanent", or "finalize the round" — it CANNOT be undone and writes the cap-table of record, |
cap_table_create_cap_table_agreement | Records a non-SAFE agreement (option, RSU, RSA, FAST advisor agreement, board consent) against a company. Without signed_at it creates a draft and touches nothing else. SIGNED_AT IS NOT A DATE FIELD — it is a declaration that the document is already executed, and for a FAST it WRITES TO THE CAP TABL |
cap_table_create_cap_table_round | Opens a new funding round on a company's cap table — the container investors and their agreements are attached to. Writes. It does not raise money or close anything: a new round starts OPEN and holds no capital until investors are added to it. |
cap_table_create_cap_table_stakeholder | Adds a stakeholder IDENTITY ONLY (name, type, email, metadata). Does NOT create any holding/security and will NOT appear in the investor pipeline. For anyone who will hold equity — an investor putting in capital, or a founder or employee receiving shares — use RecordCapTableInvestment instead: it cr |
cap_table_delete_cap_table_agreement | DeleteCapTableAgreement removes an agreement. |
cap_table_delete_cap_table_round | DeleteCapTableRound permanently removes an unpriced SAFE round (open or light-closed) plus its round-scoped securities/agreements/snapshots. Priced / engine-closed rounds are rejected (FailedPrecondition). |
cap_table_delete_cap_table_security | DeleteCapTableSecurity removes one holding. |
cap_table_delete_cap_table_stakeholder | DeleteCapTableStakeholder removes one stakeholder from a cap table. |
cap_table_download_cap_table_safes | DownloadCapTableSafes presigns multiple SAFE agreement PDFs in one call. |
cap_table_extract_wire_payment_proof | Runs vision OCR on an already-uploaded wire payment proof (wire confirmation, bank statement, or transfer receipt — NOT an invoice) for a security and returns the extracted fields plus a verification verdict (verified | needs_review | mismatch). Nothing is persisted. Flow: call GetOcrUploadURL with |
cap_table_generate_cap_table_agreement_pdf | Renders the PDF for one employee equity-grant agreement (option/rsu/rsa/fast) and stores it; returns the S3 key. Generation is idempotent: when the agreement already has a PDF this returns it unchanged. A signed or void agreement is refused. regenerate=true (overwrite the existing PDF in place) is r |
cap_table_generate_cap_table_docs | Generates the SAFE agreement PDF for every SAFE holding of the given stakeholders (all of them when none are given). It runs synchronously: when it returns, queued_count agreements have rendered and are ready to prepare for signature, and failed_count agreements could not be rendered and are left FA |
cap_table_generate_cap_table_summary_pdf | GenerateCapTableSummaryPdf renders the cap-table summary to a branded PDF on the backend document engine (Gotenberg). It returns the bytes, or with as_link (always, for an assistant) a short-lived download link to give the user. Read-only. |
cap_table_get_cap_table_agreement | Returns one equity agreement by id — a SAFE, a stock purchase agreement or a grant — with its terms and the two signature blocks it prints. Read-only. Use this to answer questions about a specific agreement's valuation cap, discount, amount or signing state. To find the id, list a company's agreemen |
cap_table_get_cap_table_agreement_pdf_url | GetCapTableAgreementPdfUrl returns a short-lived signed S3 URL for the rendered SAFE agreement PDF. |
cap_table_get_cap_table_equity_plans | Returns a company's equity holdings grouped the way a founder thinks about them: founders, advisors, employees (option grants), and investors. Read-only. Founder, advisor and employee entries carry vesting progress resolved as of now — vested percentage, vested share or option count, and whether the |
cap_table_get_cap_table_health | GetCapTableHealth answers "is anything wrong with this cap table?". It runs every server-side check over the stored cap table and returns the issues as data: authorized shares not set, a share class at or over its authorized count, SAFEs with no signed document, no terms or no stated type, a SAFE st |
cap_table_get_cap_table_investor_access | GetCapTableInvestorAccess lists every investor stakeholder with its current cap-table visibility level (read directly from the stakeholder row; a new investor defaults to NONE). Read-only. |
cap_table_get_cap_table_overview | Says which view of a company's cap table is the current one: the live roster, or the post-conversion table produced by the latest closed round. Read-only, and small — it returns the mode and that round's id, not the table. Use it first when you do not know whether a company has closed a priced round |
cap_table_get_cap_table_round | Returns one funding round by id: its name, type, target, pre-money valuation, status and close date. Read-only. Use this for the terms of a specific round; for how much has actually been committed, signed and wired, use the round summaries tool instead. |
cap_table_get_cap_table_round_summaries | Returns, for every funding round that has investors attached, how much capital sits at each stage of the pipeline (committed, signed, wired), the total raised, and how many investors are in the round. Read-only. Use this to answer "how is the round going" or "how much have we actually collected" wit |
cap_table_get_cap_table_security | GetCapTableSecurity returns one holding by id. Read-only. |
cap_table_get_cap_table_stakeholder | GetCapTableStakeholder returns one stakeholder by id. Read-only. |
cap_table_get_cap_table_summary | GetCapTableSummary returns company-wide AGGREGATES on the fully-diluted roster: total shares, stakeholder count, founders' combined percentage, and ownership split by stakeholder type. Read-only. Aggregate only. "Per-type segments" groups by type (founder, investor, employee) and is not a per-holde |
cap_table_get_list_cap_table_agreements | Lists a company's equity agreements, newest first, each enriched with the stakeholder it belongs to. Read-only and paginated. Filter by type to see only SAFEs or only stock purchase agreements. Use this to answer "what have we signed" or to find the agreement id for a named investor. |
cap_table_get_list_cap_table_rounds | Lists a company's funding rounds with their terms and status. Read-only. Use this to answer "what rounds have we raised" or to find a round id before reading its investors. |
cap_table_get_list_cap_table_securities | GetListCapTableSecurities lists a company's holdings — the ONLY source of per-holder share counts, share class, price and vesting. Optionally filtered to one stakeholder; paginated, read-only. Call this before answering anything about how much a person owns, and before modeling dilution: the stakeh |
cap_table_get_list_cap_table_stakeholders | GetListCapTableStakeholders returns a company's stakeholder roster: identities only — name, type, email, title, address — and NO share counts or ownership percentages, which live on the securities. Paginated, read-only. To answer "who owns what", or anything needing a share count, call GetListCapTab |
cap_table_get_list_cap_table_wire_match_suggestions | Lists proposed matches between incoming bank transfers and the investors expected to have sent them, each with a confidence and the reason it was proposed. Read-only, and a suggestion only — nothing is recorded as received until somebody confirms it. Use this to answer "which wires have arrived and |
cap_table_get_my_investor_companies | GetMyInvestorCompanies returns the companies where the caller is a linked investor stakeholder (not a member), with the owner-granted access level — the entry point for the investor-facing portal (B3). Read-only. |
cap_table_get_safe_import_consent | GetSafeImportConsent reports whether the company has granted current consent for an external AI to read imported SAFE contents. |
cap_table_get_transaction_summary | GetTransactionSummary returns the committed / signed / wired capital totals for the Transactions page header. committed/signed come from the securities pipeline stage; wired comes from the money-movement ledger. Read-only. |
cap_table_get_wired_transactions | GetWiredTransactions returns the confirmed-wire ledger (wired + refunded investor rows) for the fundraising Transactions page. Read-only. |
cap_table_grant_safe_import_consent | GrantSafeImportConsent records the company's consent at the current wording version. Required before an MCP-origin SaveCapTableImport. |
cap_table_import_cap_table | ImportCapTable writes a whole cap table in one call and one transaction: every row lands or none does, a row naming an existing holder is added to them (and reported as reused), a round the file names is recorded as closed history, and the result is refused if it would break the cap table's rules or |
cap_table_import_rsa | Imports a signed Restricted Stock Purchase/Award Agreement (RSA) from an uploaded PDF and stores the document in S3. USE THIS (not ExtractRsaTermsOcr + CreateCapTableAgreement, and not RecordCapTableInvestment) whenever the user provides or uploads a signed RSA PDF. The grantee (founder/employee/adv |
cap_table_import_safe | Imports a SAFE from an uploaded SAFE PDF and stores the document in S3. USE THIS (not RecordCapTableInvestment) whenever the user provides or uploads a SAFE PDF file. Flow: (1) call GetOcrUploadUrl with kind=SAFE and mime_type=application/pdf to get a presigned PUT URL + source_s3_uri, (2) upload th |
cap_table_list_cap_table_audit_events | ListCapTableAuditEvents returns the append-only who/what/when audit log for a company's ownership-affecting cap-table mutations (B1). Read-only. |
cap_table_list_cap_table_snapshots_for_round | Returns the ownership table as it stood when a round closed — one row per stakeholder, with shares and percentage frozen at that moment. Read-only. Use this to answer "who owned what after the seed". For today's ownership, read the cap table summary instead: a snapshot is history and does not move. |
cap_table_list_cap_table_summary_snapshots | ListCapTableSummarySnapshots returns the point-in-time cap-table summary versions captured on material edits (B4). Read-only. |
cap_table_list_cumulative_cap_table_snapshots_for_stakeholder | Returns one stakeholder's position at every round close, oldest first — the dilution story for a single person or fund. Read-only. Use this to answer "how has my ownership changed" or "how much was this founder diluted across the rounds". |
cap_table_match_cap_table_stakeholder | MatchCapTableStakeholder suggests the existing stakeholder a parsed SAFE's investor name maps to (fuzzy match). Read-only. |
cap_table_preview_close_cap_table_round | PreviewCloseCapTableRound runs the SAME engine as CloseCapTableRound but does NOT persist or close anything — no status change, no snapshot writes. This is the action for "preview", "what-if", or "estimate the close"; it never finalizes the round. To actually close/finalize, use CloseCapTableRound. |