Lovie Company Formation
co.lovie/company-formationForm companies, manage bank accounts, cards, invoices and more — directly from your AI coding tools.
Tools · 202
GetAccount retrieves a single account by ID with its details
GetListAccountDetails retrieves account details in batch (eliminates N+1 GetAccount calls)
GetListAccounts retrieves a list of accounts with filtering and pagination
Cancel an accrual schedule so no further periodic entries are generated. Entries already posted for elapsed periods are kept. Audit-logged.
Close an accounting period: lock the window [start_date, end_date] and post a balanced closing entry that rolls the period's net income into equity (current-year earnings for a month/quarter close, re…
Create an accrual schedule that spreads a total amount across N monthly periods as accrual-only adjusting entries (e.g. amortize a prepaid, defer revenue, depreciate an asset). Each period posts Dr de…
Delete or void a journal entry. For entries tied to a transaction prefer re-categorizing the transaction (the entry re-derives). Deleting a derived entry is temporary — the engine re-creates it on the…
GetBalanceSheet returns assets, liabilities, and equity balances as of a date; equity includes net income to date, so the sheet always balances. Read-only.
GetChartOfAccounts returns the company's chart of accounts (flat list with parent links; build the tree client-side). Read-only.
GetGeneralLedger pages through one account's posted lines with opening, running, and closing balances — the account register. Read-only.
GetJournalEntryByTransaction returns the journal entry derived for one transaction (empty when none exists yet). Read-only.
GetListJournalEntries pages through the journal register with filters — the review queue is filter{needs_review: true}. Read-only.
GetListPeriods pages through a company's periods, newest first. Read-only.
GetListSchedules pages through a company's schedules. Read-only.
GetPeriod returns one closed period by id. Read-only.
GetProfitAndLoss returns the income statement for a period: revenue and expense accounts with activity, totals, and net income. Read-only.
GetSchedule returns one schedule with its postings. Read-only.
GetTrialBalance returns every account's debit and credit totals for a period; total debits equal total credits when the books balance. Read-only.
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 rec…
PreviewClose computes the per-currency revenue/expense totals and the net income a close would roll, without writing anything. Read-only.
PreviewSchedule computes the straight-line per-period split for the given amount and period count without persisting anything. Read-only.
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 you confirm one by ca…
Reopen a closed accounting period: void its closing entry(ies) and lift the write lock so entries dated inside the window can be edited and the period re-closed. Audit-logged.
Create or replace a double-entry journal entry (manual adjustment or per-transaction override). Lines must balance: total debits == total credits, 2-64 lines, positive decimal amounts with the sign ca…
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.
GetApprovalSessionStatus is a lightweight poll (status only) for the gated action to check whether it can proceed
ClearCapTableStakeholders deletes every stakeholder of a company in a single DB-level operation. Used by the "replace cap table" import flow.
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", "ma…
CreateCapTableAgreement creates a draft non-SAFE agreement.
Adds a stakeholder IDENTITY ONLY (name, type, email, metadata). Does NOT create any holding/security and will NOT appear in the investor pipeline. For an investor contributing capital via SAFE or pric…
DeleteCapTableAgreement removes an agreement.
DeleteCapTableRound permanently removes an unpriced SAFE round (open or light-closed) plus its round-scoped securities/agreements/snapshots. Priced / engine-closed rounds are rejected (FailedPrecondit…
DeleteCapTableSecurity removes one holding.
DeleteCapTableStakeholder removes one stakeholder from a cap table.
DownloadCapTableSafes presigns multiple SAFE agreement PDFs in one call.
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 …
GenerateCapTableAgreementPdf renders the PDF for one employee equity-grant agreement (option/rsu/rsa/fast) and stores it. Returns the S3 key. The presigned download URL is fetched via GetCapTableAgree…
GenerateCapTableDocs kicks off the async generation pipeline.
GenerateCapTableSummaryPdf renders the cap-table summary to a branded PDF on the backend document engine (Gotenberg) and returns the bytes (#364 — moves PDF generation out of the browser). Read-only.
GetCapTableAgreementPdfUrl returns a short-lived signed S3 URL for the rendered SAFE agreement PDF.
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 ve…
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.
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.…
GetCapTableSecurity returns one holding by id. Read-only.
GetCapTableStakeholder returns one stakeholder by id. Read-only.
GetCapTableSummary returns the dashboard aggregate (totals, stakeholder count, founders %, and per-type ownership segments) on the fully-diluted source roster. Keeps the ownership math server-side. Re…
GetListCapTableSecurities lists a company's holdings (optionally filtered to one stakeholder), paginated. Read-only.
GetListCapTableStakeholders returns a company's stakeholder roster (company-scoped, paginated). Read-only.
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)…
GetSafeImportConsent reports whether the company has granted current consent for an external AI to read imported SAFE contents.
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-movem…
GetWiredTransactions returns the confirmed-wire ledger (wired + refunded investor rows) for the fundraising Transactions page. Read-only.
GrantSafeImportConsent records the company's consent at the current wording version. Required before an MCP-origin SaveCapTableImport.
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 RecordCapTableI…
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 wi…
ListCapTableAuditEvents returns the append-only who/what/when audit log for a company's ownership-affecting cap-table mutations (B1). Read-only.
ListCapTableSummarySnapshots returns the point-in-time cap-table summary versions captured on material edits (B4). Read-only.
MatchCapTableStakeholder suggests the existing stakeholder a parsed SAFE's investor name maps to (fuzzy match). Read-only.
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 "est…
Records one holding end-to-end: resolves or creates the stakeholder, then creates the holding with all derived fields, attaching or auto-creating a round for SAFE/Preferred. SAFE requires a valuation_…
RecordCapTableRefund records a refund into the money-movement ledger (refund, confirmed) and flips the security's pipeline_status to 'refunded'.
Records an investor wire into the money-movement ledger and flips the security's pipeline_status to 'wired'. A wire is accepted ONLY when it is backed by one of: (a) a matched banking transaction_id (…
ReopenCapTableRound flips a CLOSED round back to OPEN (status only).
SetCapTableAuthorizedShares updates the company's authorized share ceiling (charter amendment must have been obtained before calling this). Owner-only.
Moves ONE investor's holding along the fundraising pipeline. Use this to change a stage — never UpdateCapTableSecurity, which is a full replace and will blank any field you do not resend. Forward goes…
Computes what every stakeholder takes home at ONE hypothetical exit valuation, running the liquidation-preference waterfall and converting SAFEs as if the exit were the price round. Read-only — nothin…
UpdateCapTableAgreement applies a full update (status/progress/timestamps).
UpdateCapTableAgreementStatus transitions a SAFE agreement's status (Feature 10 pipeline wiring) — e.g. to completed once signing finishes. Status-only update; artifact pointers are preserved.
UpdateCapTableSecurity applies a full update to a holding.
Edits an EXISTING stakeholder's identity (name, type, email, metadata) by id. FULL REPLACE; type is effectively immutable. To ADD a new stakeholder use CreateCapTableStakeholder; for an investor contr…
UpdateMyStakeholderName lets an investor correct the name the company holds for them — a misspelled name on a SAFE is the investor's to fix, and asking the founder to retype it was the only route. Sco…
CreateSafeEnvelope opens a two-party SAFE signing envelope from cap-table-supplied data (the caller fetched it via company.GetSafeAgreement): it renders the signable SAFE PDF, inserts the company (ord…
Issues a new virtual card at the card issuer. Set params.company_id to the company the card belongs to — the caller's membership is verified server-side, so pass a company the user actually belongs to…
Suspend a card at the issuer so it declines new charges. The card is not closed and no money moves; UnfreezeCard restores it. Safe to repeat: a card that is already frozen is returned unchanged and su…
Sync provider transactions (best-effort), then return the card's rows.
List the caller's own cards.
List the active cards of every member of the given company, as a narrow projection. Membership of the AUTHENTICATED caller in company_id is verified server-side — the id selects, it never authorizes.
Restore a frozen card at the issuer so it accepts charges again. Safe to repeat: a card that is already active is returned unchanged and successfully. A cancelled card cannot be restored and is reject…
Replace a card's spend limit at the issuer. amount_cents is in CENTS, not dollars — a $500 limit is 50000 — and interval chooses the window the limit resets over. The new limit replaces the old one ou…
Checks whether a proposed company or brand name is available as a US trademark and as a domain across common TLDs (.com, .io, .co, .net, .ai, .app). Call this whenever the user proposes or evaluates a…
GetCompany retrieves a single company by ID or code
GetListCompanies retrieves a list of companies with filtering and pagination
GetListCompanyMembers lists all members of a company
Lists the companies the SIGNED-IN user already belongs to, each with their role, plus that account itself in signed_in_as. Requires authentication. Call this only when the user asks about or wants to …
GetCounterparty retrieves a single counterparty by ID
GetListCounterparties retrieves a list of counterparties with filtering and pagination
GetListGlobalCounterparties performs a read-only batch lookup against the platform-wide canonical vendor registry. The filter accepts a list of provider stable IDs and/or aliases; the response returns…
Resolve all fields bound to a datatable for a company (platform + company bindings).
List datatables (platform + a company's own).
Resolve the child datatables related to a parent (for the UI field picker).
List available legal document templates (YAML catalog).
Find the best template match for a natural-language document request. Returns the template slug and its field definitions to collect before DocumentService.CreateDocument.
Create a finished document for a company from a template slug and field values.
Create a finished document by filling a company user-uploaded template with collected field values. Does not modify the original upload.
Fetch one document's metadata and its related signed/unsigned set.
Fetch one user-uploaded template including Vision-detected fillable fields.
List a company's documents, filtered by type, source, category, or template.
List the caller's saved signatures for the selected company.
List company-scoped user-uploaded templates (Use your own template). Separate from Lovie's builtin catalog.
Rename a stored document by updating its title. Company-scoped: only the owning company's members may rename.
Get a single field by ID or code
Get a single field option by ID or code
List field options with filtering and pagination
List fields with filtering and pagination
SuggestFieldOptions asks the LLM to propose dropdown option labels for a SELECT-typed field. Synchronous unary call.
List an entity's field values (detail/edit/admin flows only — N+1 over a grid).
Acknowledges entity-type warnings raised when the user chooses an entity type against the recommendation (e.g. an LLC despite indicators pointing to C-Corp). Required before proceeding whenever warnin…
AddShareholder adds a shareholder or LLC member
AppendConversationEntry atomically appends one or more chat entries to the formation's conversation_history. Owner-scoped.
Records the user's approval of the reviewed formation details (the certificate checkpoint). This only records approval — it files NOTHING with any state and charges NOTHING, so it is always safe to ca…
CheckName checks company name availability in the selected state
ClaimDemoFormations reassigns formations created during a demo session (under a hardcoded demo user) to a newly-signed-up real user. This is a cross-user mutation; the server enforces reviewer/admin/s…
Verifies with Stripe that payment actually completed and, on success, advances the formation to filing. Usually unnecessary — payment auto-confirms via webhook once the user pays. Only call this if th…
CreateFormation creates a formation with full data (MCP/bulk use case)
Analyzes a business description and recommends the best entity type (LLC or C-Corp) with a confidence score. Call this once you understand what the user is building. When the recommendation is LLC or …
Runs vision OCR on an uploaded cap table file and returns the extracted rows without persisting them. Each row may include a vesting schedule (vesting_start_date / vesting_total_months / vesting_cliff…
Runs vision OCR on an uploaded cap table for the active company and returns the extracted rows without persisting them. Each row may include a vesting schedule (vesting_start_date / vesting_total_mont…
Runs vision OCR on an already-uploaded signed Restricted Stock Purchase/Award Agreement (RSA) PDF for the active company and returns the founder and company names plus structured terms (total_shares, …
Reads a SAFE PDF and returns its terms WITHOUT saving anything. Always call this before ImportSAFE and show the result to the user for confirmation — never import a SAFE the user has not seen. Present…
Prepares the Certificate of Formation/Incorporation as a review checkpoint before filing. This is a confirmation step, NOT a downloadable document — the official, state-issued certificate is produced …
GetEinFilingInfo returns the stored payload without the SSN/ITIN.
GetElection83bPrefill returns prefilled values + missing fields for the 83(b) form, derived from the formation. Owner-scoped read.
GetFilingFee returns the state formation filing fee (table amount, formatted string, and Stripe Price id when charged via a pre-created Price). Used by the onboarding review/certificate step. Stateles…
Returns the full formation record for a formation_id: company name, entity type, state, business address, registered agent, share structure, shareholders, authorized party, EIN, certificate data, paym…
GetFormationDocumentDownloadUrl returns a short-lived presigned S3 URL for one document on a formation, selected by FormationDocumentType: the draft certificate, the state-stamped certificate, the pos…
GetFormationInfo returns educational content topics or content for a specific topic
GetFormationPurchaseQuote returns the CorpTools filing product, methods, parsed form schema, prefilled values, and missing required fields for a formation (non-DE/WY states). Reviewer-only; no side ef…
Returns what forming a company in a given state costs: each Lovie line item, the state's filing fee, and the total, all priced live. Creates nothing and charges nothing. Use this whenever the user ask…
GetFormationUploadURL returns a presigned PUT URL for a cap table or SAFE document
Lists the SIGNED-IN user's company formations (name, entity type, state, status, progress). Requires authentication. Do NOT call this during an in-progress formation: you already have the formation_id…
Returns a company's incorporation documents — certificate of incorporation, bylaws, incorporator action, board resolution, per-founder IP assignments and 83(b) elections, and the IRS EIN assignment le…
Returns a presigned S3 PUT URL for uploading a company document (kind=SAFE for a SAFE PDF, kind=RSA for a signed restricted stock purchase agreement, kind=CAP_TABLE for a cap-table file, kind=WIRE_PRO…
Generates ONE Stripe Checkout URL covering the whole purchase in a single one-time payment: the Lovie formation charge, the state's filing fee, and a year of registered agent service. Generating this …
PurchaseFormation places the CorpTools formation filing order: it claims the order atomically, adds the filing to the cart, and checks out with the stored payment method. Reviewer-only. Checkout moves…
PurchaseRegisteredAgent triggers a CorpTools registered-agent purchase.
RecordElection83bFiling records that the signed election was submitted to the IRS (postmark or online), with optional proof. Owner-scoped.
RunElection83bReminders runs the 83(b) reminder sweep (not-started nudges + deadline-relative sign/file reminders + late notice). Reviewer-only; also run in-process by the scheduled cron subcommand.
SaveCapTableImport replaces the formation's shareholders with the imported, founder-edited list
SendFormationEmail dispatches a formation lifecycle email via SendGrid.
Sets the company's business address. Always present the user with BOTH options: pass source = ADDRESS_SOURCE_OWN with a full US address if they want to use their own, or source = ADDRESS_SOURCE_NEED_A…
Sets the company name and returns its parts: base_name, entity_ending, and the derived full_name (base + ending). Set the entity ending first with formation_set_entity_ending. After setting the name, …
SetCompanyType sets the entity type and returns any warnings
SetElection83b persists the 83(b) election snapshot on the formation. Owner-scoped; called after PDF generation + signature envelope creation.
Sets the company's legal entity ending — the suffix that appears in the full legal name (e.g. "Inc.", "Corporation", "Co." for a C-Corp; "LLC", "L.L.C." for an LLC). Use one of the valid endings retur…
Sets the registered agent for the formation. Pass use_default = true to use Lovie's included registered agent (recommended for most founders), or use_default = false with an `agent` to supply a custom…
Sets the C-Corp share structure and returns the resulting total authorized capital. Pass use_default = true for the standard startup setup (10,000,000 shares at $0.0001 par), or use_default = false wi…
SetAuthorizedParty sets the authorized signatory for formation documents
SetState sets the state of formation (DE or WY) and returns available types
THE entry point for a new company formation — runs anonymously, no sign-in required. Call this DIRECTLY whenever the user wants to start, create, or form a company or formation. Do NOT call company_ge…
Collects and saves EIN (SS-4) filing information after the company is filed with the state. First ask whether the user has an SSN or ITIN; if they do not, set no_ssn and skip it — the EIN then takes ~…
SweepFormationOrderStatus polls CorpTools for the status of in-flight formation orders and updates each formation. Intended for the scheduled sweep (in-process subcommand) and manual/dry-run admin tri…
UpdateFormation applies a FieldMask-scoped patch to a formation. The caller supplies update_mask.paths to select the fields to replace.
GetGoogleAdsCampaignWindow aggregates each campaign over an arbitrary date range — the shape a charge is reconciled against. Distinct from the monthly list above, whose `month` key cannot describe a b…
List per-campaign monthly metrics for a company, with optional customer/campaign/month filtering and offset pagination.
GetInvoicePdfUrl returns a short-lived signed S3 URL for the rendered PDF.
GetKycStatus aggregates the user's inquiries into a single app-level KYC status. Safe to expose to agents.
GetMetaAdsCampaignWindow aggregates each campaign over an arbitrary date range — the shape a charge is reconciled against.
GetListNotifications lists notifications for the caller with filtering and pagination
GetNotification returns a single notification owned by the caller
GetDefaultSavedView returns the calling user's pinned default view for a datatable (empty when none is pinned)
GetListSavedViews lists saved views with filtering and pagination
GetSavedView retrieves a single saved view by ID
GetShopifyPayoutOrders lists the orders that make up a single payout, with the payout's authoritative gross/fees/net — the shape a deposit is reconciled against.
Open a multi-signer signature envelope for an already-created company document. Prefer the composite signature_send_document_for_signature tool; this low-level primitive never returns signing tokens.
GetConsentDocument returns the currently effective ESIGN consent version (or a specific historical version when id is provided).
RunSignatureReminders sweeps every Lovie Sign envelope that is still awaiting signature — SAFEs and plain documents alike; Docusign envelopes are excluded because Docusign runs its own reminders — and…
GetEnvelopeSigners lists an envelope's signers and their signing progress.
GetTikTokAdsCampaignWindow aggregates each campaign over an arbitrary date range — the shape a charge is reconciled against.
Set a transaction's category by taxonomy option code (e.g. "ai-products", "meals", "cloud-hosting"). Applies to the sign-appropriate detail field (income vs expense) and the umbrella category automati…
List transaction documents with filtering and pagination
List transactions with filtering, sorting, and pagination Supports: filtering by account, counterparty, card, types, statuses, date range, amounts Supports: sorting by date, amount, created_at, status…
Aggregate transactions into P&L groups (income/expenses) by a given dimension
Get a single transaction by ID or reference number
Recommend a bookkeeping category for a transaction using the platform classifier agent. Returns ranked taxonomy option codes with confidence and a short rationale; writes nothing. Apply one with Categ…
GetUser returns a single user by internal id or Clerk id
Cancel an open vendor bill so it no longer counts as an open payable. Only OPEN bills can be cancelled; a bill already paid or cancelled cannot.
GetXAdsCampaignWindow aggregates each campaign over an arbitrary date range — the shape a charge is reconciled against.
Resources · 1
ui://widget/formation-payment.html
Prompts · 4
Help me choose a US business address for my company formation. What are my options?
What's the status of my company formation and what do I need to do next?
I'm ready to pay for my formation and get it filed. Give me the payment link.
I want to start a US company. Walk me through forming it with Lovie, step by step.
Similar MCP servers embedding-nearest
How to use
Add to your Claude Desktop / Cursor / Cline MCP config:
{
"mcpServers": {
"lovie_company_formation": {
"url": "https://mcp.lovie.co/mcp/mcp",
"transport": "streamable-http"
}
}
}