Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Lovie Company Formation

REMOTE · MCP.LOVIE.CO · 2 COMPONENTS · SCANNED SEP 21

Form companies, manage bank accounts, cards, invoices and more — directly from your AI coding tools.

+1 this week 89 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security97
Transport & Reachability100
Schema Quality & AI Usability74
  • 80% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 30375 tokens (~90/item across 334 items; 333 tools + 1 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability check failed: schema churn in the 30 days we've observed: 4 tool removals, 4 breaking changes, 0 auth/transport breaks, 135 additions. See how to fix → Fail
Tool Coverage83
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 42% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety45
  • Injection-marker check failed: the server instructions contains an instruction to conceal the call from the user, the text "Never tell the user", at byte 2460 of that field, plus 2 further marker(s) of the same kind. See how to fix → Fail
  • 19 of 24 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "accounting_suggest_transfer_pairs" implies "transfer" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 335 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Install

How do I install the Lovie Company Formation MCP server?

Lovie Company Formation is a hosted endpoint at https://mcp.lovie.co/mcp/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.lovie.co

# add to Claude Code
claude mcp add --transport http co-lovie-company-formation 'https://mcp.lovie.co/mcp/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "co-lovie-company-formation": {
      "url": "https://mcp.lovie.co/mcp/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "co-lovie-company-formation": {
      "type": "http",
      "url": "https://mcp.lovie.co/mcp/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.co-lovie-company-formation]
url = "https://mcp.lovie.co/mcp/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "co-lovie-company-formation": {
      "type": "remote",
      "url": "https://mcp.lovie.co/mcp/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add co-lovie-company-formation --url 'https://mcp.lovie.co/mcp/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  co-lovie-company-formation:
    url: "https://mcp.lovie.co/mcp/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "co-lovie-company-formation": {
      "Transport": "http",
      "Url": "https://mcp.lovie.co/mcp/mcp"
    }
  }
}
# add to Vellum
assistant mcp add co-lovie-company-formation -t streamable-http -u 'https://mcp.lovie.co/mcp/mcp'
// mcp.json
{
  "mcpServers": {
    "co-lovie-company-formation": {
      "type": "http",
      "url": "https://mcp.lovie.co/mcp/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 17 Sept 26 +1
    • Authorization: partial → pass security
    • New tool “kyc_start_kyc_inquiry” functional
  • 16 Sept 26 0
    • Tool “equity_onboarding_hydrate_formation_carry” rewrote its description, which is the text the model reads security
    • Tool “equity_onboarding_update” rewrote its description, which is the text the model reads security
  • 11 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

    • Tool “account_get_list_accounts” was removed security
    • Tool “card_get_list_card_transactions” was removed security
    • Tool “formation_get_election83b_prefill” was removed security
    • Tool “transaction_get_list_transactions” was removed security
    • New tool “itin_submit_itin_intake”, which the server declares destructive security
    • New tool “signature_reconcile_document_state”, which the server declares destructive security
    • New tool “trademark_delete_application”, which the server declares destructive security
    • New tool “trademark_submit_to_firm”, which the server declares destructive security
    • New tool “banking_set_application_ein”, which the server declares destructive security
    • New tool “banking_set_owner_identity_document_number”, which the server declares destructive security
    • New tool “banking_set_owner_tax_identifier”, which the server declares destructive security
    • New tool “banking_submit_banking_application”, which the server declares destructive security
    • New tool “commit_transfer”, which the server declares destructive security
    • New tool “equity_onboarding_submit”, which the server declares destructive security
    • New tool “formation_delete_pending_domain”, which the server declares destructive security
    • New tool “formation_get_domain_auth_code”, which the server declares destructive security
    • New tool “formation_remove_shareholder”, which the server declares destructive security
    • New tool “formation_set_domain_dns_records”, which the server declares destructive security
    • New tool “formation_set_founder_profile”, which the server declares destructive security
    • New tool “formation_set_shareholder_tax_identifier”, which the server declares destructive security
    • New tool “formation_start_domain_transfer”, which the server declares destructive security
    • Tool “accounting_preview_close” rewrote its description, which is the text the model reads security
    • Tool “cap_table_create_cap_table_round” rewrote its description, which is the text the model reads security
    • Tool “cap_table_create_cap_table_stakeholder” rewrote its description, which is the text the model reads security
    • Tool “cap_table_get_cap_table_agreement” rewrote its description, which is the text the model reads security
    • Tool “cap_table_get_cap_table_overview” rewrote its description, which is the text the model reads security
    • Tool “cap_table_get_cap_table_round” rewrote its description, which is the text the model reads security
    • Tool “cap_table_get_list_cap_table_agreements” rewrote its description, which is the text the model reads security
    • Tool “cap_table_get_list_cap_table_rounds” rewrote its description, which is the text the model reads security
    • Tool “cap_table_get_list_cap_table_wire_match_suggestions” rewrote its description, which is the text the model reads security
    • Tool “cap_table_list_cap_table_snapshots_for_round” rewrote its description, which is the text the model reads security
    • Tool “cap_table_list_cumulative_cap_table_snapshots_for_stakeholder” rewrote its description, which is the text the model reads security
    • Tool “cap_table_record_cap_table_investment” rewrote its description, which is the text the model reads security
    • Tool “cap_table_update_cap_table_round” rewrote its description, which is the text the model reads security
    • Tool “card_create_card” rewrote its description, which is the text the model reads security
    • Tool “card_get_card” rewrote its description, which is the text the model reads security
    • Tool “card_get_card_spend” rewrote its description, which is the text the model reads security
    • Tool “client_get_client” rewrote its description, which is the text the model reads security
    • Tool “client_get_list_clients” rewrote its description, which is the text the model reads security
    • Tool “formation_create_formation” rewrote its description, which is the text the model reads security
    • Tool “formation_get_formation_document_download_url” rewrote its description, which is the text the model reads security
    • Tool “formation_get_payment_link” rewrote its description, which is the text the model reads security
    • Tool “formation_save_cap_table_import” rewrote its description, which is the text the model reads security
    • Tool “formation_set_company_type” rewrote its description, which is the text the model reads security
    • Tool “formation_set_state” rewrote its description, which is the text the model reads security
    • Tool “formation_update_formation” rewrote its description, which is the text the model reads security
    • Tool “invoice_get_invoice” rewrote its description, which is the text the model reads security
    • Tool “invoice_get_list_invoices” rewrote its description, which is the text the model reads security
    • Tool “invoice_settings_get_invoice_settings” rewrote its description, which is the text the model reads security
    • Tool “payment_get_list_payments” rewrote its description, which is the text the model reads security
    • Tool “payment_get_payment” rewrote its description, which is the text the model reads security
    • Tool “signature_get_list_signature_envelopes” rewrote its description, which is the text the model reads security
    • Tool “signature_get_signature_envelope” rewrote its description, which is the text the model reads security
    • Tool “vendor_bill_create_vendor_bill” rewrote its description, which is the text the model reads security
    • Tool “vendor_bill_get_list_vendor_bills” rewrote its description, which is the text the model reads security
    • Tool “vendor_bill_get_vendor_bill” rewrote its description, which is the text the model reads security
    • Tool “vendor_bill_mark_vendor_bill_paid” rewrote its description, which is the text the model reads security
    • Schema quality: 17365 → 30245 functional
    • “card_create_card” added a required parameter “accountId”, so existing callers break functional
    • “field_suggest_field_options” added a required parameter “companyId”, so existing callers break functional
    • “invoice_get_invoice_pdf_url” added a required parameter “companyId”, so existing callers break functional
    • “saved_view_get_list_saved_views” added a required parameter “companyId”, so existing callers break functional
    • Tool coverage: 88% → 100% functional
    • Destructive annotations: 19 of 24 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "accounting_suggest_transfer_pairs" implies "transfer" and declares readOnlyHint instead, contradicting what its own name says it does. functional
    • New tool “transaction_get_list_categorization_rules” functional
    • New tool “itin_get_itin_application” functional
    • New tool “itin_get_itin_mailing_instructions” functional
    • New tool “itin_get_itin_quote” functional
    • New tool “itin_list_itin_applications” functional
    • New tool “itin_list_itin_documents” functional
    • New tool “itin_mark_itin_documents_mailed” functional
    • New tool “itin_poll_itin_checkout” functional
    • New tool “itin_save_itin_intake_draft” functional
    • New tool “itin_submit_itin_for_review” functional
    • New tool “list_accounts” functional
    • New tool “list_agents” functional
    • New tool “list_send_recipients” functional
    • New tool “mcp_draft_transfer” functional
    • New tool “read_agent_spend” functional
    • New tool “read_insights” functional
    • New tool “read_transactions” functional
    • New tool “request_transfer_approval” functional
    • New tool “subscription_get_list_subscriptions” functional
    • New tool “trademark_attach_document” functional
    • New tool “trademark_draft_goods_services” functional
    • New tool “trademark_firm_acknowledge_handoff” functional
    • New tool “trademark_firm_get_handoff_package” functional
    • New tool “trademark_firm_list_pending_handoffs” functional
    • New tool “trademark_firm_request_additional_info” functional
    • New tool “trademark_firm_update_handoff_status” functional
    • New tool “trademark_generate_package” functional
    • New tool “trademark_get_application” functional
    • New tool “trademark_get_clearance_report” functional
    • New tool “trademark_get_list_applications” functional
    • New tool “trademark_get_upload_url” functional
    • New tool “trademark_recommend_classes” functional
    • New tool “trademark_run_clearance” functional
    • New tool “trademark_set_classes” functional
    • New tool “trademark_set_competitors” functional
    • New tool “trademark_set_goods_services” functional
    • New tool “trademark_set_mark” functional
    • New tool “trademark_set_owner” functional
    • New tool “trademark_set_use_dates” functional
    • New tool “trademark_start_application” functional
    • New tool “trademark_study_competitors” functional
    • New tool “trademark_suggest_classes” functional
    • New tool “transaction_apply_categorization_rule” functional
    • New tool “transaction_batch_categorize_transactions” functional
    • New tool “transaction_batch_categorize_transactions_by_account” functional
    • New tool “transaction_categorize_transaction_by_account” functional
    • New tool “transaction_get_categorization_rule” functional
    • New tool “accounting_batch_accept_review_items” functional
    • New tool “accounting_batch_set_excluded” functional
    • New tool “accounting_confirm_statement_match” functional
    • New tool “accounting_confirm_transfer_pair” functional
    • New tool “accounting_get_funding_summaries” functional
    • New tool “accounting_get_gl_account_type_catalog” functional
    • New tool “accounting_get_list_review_items” functional
    • New tool “accounting_get_list_statements” functional
    • New tool “accounting_get_review_counts” functional
    • New tool “accounting_get_statement” functional
    • New tool “accounting_set_opening_balance” functional
    • New tool “accounting_suggest_statement_matches” functional
    • New tool “accounting_suggest_transfer_pairs” functional
    • New tool “accounting_unpair_transfer” functional
    • New tool “ads_insight_summarize_ad_spend” functional
    • New tool “approval_session_create_approval_session” functional
    • New tool “autonomous_pay” functional
    • New tool “banking_confirm_extracted_value” functional
    • New tool “banking_confirm_initial_transfer” functional
    • New tool “banking_extract_document_fields” functional
    • New tool “banking_get_banking_application” functional
    • New tool “banking_get_initial_transfer_preview” functional
    • New tool “banking_get_issuance_state” functional
    • New tool “banking_hydrate_from_cap_table” functional
    • New tool “banking_hydrate_from_formation” functional
    • New tool “banking_preview_cap_table_hydration” functional
    • New tool “banking_preview_formation_hydration” functional
    • New tool “banking_refresh_application_provider_status” functional
    • New tool “banking_refresh_owner_verification” functional
    • New tool “banking_start_banking_application” functional
    • New tool “banking_suggest_industry_code” functional
    • New tool “banking_update_banking_application” functional
    • New tool “banking_upsert_beneficial_owner” functional
    • New tool “captable_hydrate_formation_carry” functional
    • New tool “captable_preview_formation_carry” functional
    • New tool “card_get_dispute” functional
    • New tool “card_get_list_card_disputes” functional
    • New tool “company_update_company” functional
    • New tool “connection_suggest_connections” functional
    • New tool “draft_agent_account” functional
    • New tool “draft_payment” functional
    • New tool “equity_onboarding_get” functional
    • New tool “equity_onboarding_hydrate_formation_carry” functional
    • New tool “equity_onboarding_preview_formation_carry” functional
    • New tool “equity_onboarding_start” functional
    • New tool “equity_onboarding_update” functional
    • New tool “formation_check_domain_availability” functional
    • New tool “formation_confirm_cohort_deal_terms” functional
    • New tool “formation_confirm_naics_code” functional
    • New tool “formation_create_domain_checkout” functional
    • New tool “formation_create_domain_transfer_checkout” functional
    • New tool “formation_extract_safe_terms_ocr” functional
    • New tool “formation_get_domain_order” functional
    • New tool “formation_get_domain_transfer_status” functional
    • New tool “formation_get_formation_timeline” functional
    • New tool “formation_list_company_domains” functional
    • New tool “formation_lookup_domain_dns_records” functional
    • New tool “formation_record_entity_guidance_quiz” functional
    • New tool “formation_set_banking_intent” functional
    • New tool “formation_set_company_setup_details” functional
    • New tool “formation_set_selected_domain” functional
    • New tool “formation_set_team_equity” functional
    • New tool “formation_suggest_naics_codes” functional
    • New tool “formation_update_shareholder” functional
    • New tool “insight_get_insight” functional
    • New tool “insight_get_savings_summary” functional
    • New tool “itin_check_itin_eligibility” functional
    • New tool “itin_create_itin_checkout” functional
    • New tool “itin_create_itin_document_upload_link” functional
    • “accounting_preview_close” added an optional parameter “granularity” cosmetic
    • “cap_table_generate_cap_table_agreement_pdf” added an optional parameter “templateFields” cosmetic
    • “cap_table_import_safe” added an optional parameter “unsignedDocument” cosmetic
    • “cap_table_record_cap_table_wire” added an optional parameter “reviewedProof” cosmetic
    • “formation_add_shareholder” added an optional parameter “addressType” cosmetic
    • “formation_set_company_address” added an optional parameter “physicalBusinessAddress” cosmetic
    • “formation_start_formation” added an optional parameter “inviteToken” cosmetic
    • “signature_create_envelope” added an optional parameter “sourceCompanyId” cosmetic
    • “signature_create_envelope” added an optional parameter “sourceDocumentId” cosmetic
    • “transaction_get_summary” added an optional parameter “scope” cosmetic
    • “transaction_get_summary” added an optional parameter “timeBucket” cosmetic
    • “captable_send_safe_for_signature” dropped the optional parameter “accessCode” cosmetic
    • “formation_confirm_payment” dropped the optional parameter “paymentConfirmed” cosmetic
    • “formation_get_payment_link” dropped the optional parameter “billingInterval” cosmetic
    • “signature_create_envelope” dropped the optional parameter “accessCode” cosmetic
  • 10 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 7 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 5 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 3 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 1 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Probed https://mcp.lovie.co/mcp/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.lovie.co CN=WE1,O=Google Trust Services,C=US 11 Aug 2026 9 Nov 2026 ECDSA 256 ECDSA-SHA256 bd5572c47fda70e70ee37c945006247c
SANs: mcp.lovie.co
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.lovie.co. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
co. present 7786 8 Verified
lovie.co. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer realm="mcp", resource_metadata="https://mcp.lovie.co/.well-known/oauth-protected-resource/mcp/mcp"

Bearer realm="mcp", resource_metadata="https://mcp.lovie.co/.well-known/oauth-protected-resource/mcp/mcp"
Header Value
strict-transport-security max-age=0; includeSubDomains; preload
x-content-type-options nosniff

Protected resource metadata

Document https://mcp.lovie.co/.well-known/oauth-protected-resource/mcp/mcp
Retrieved Yes
Resource https://mcp.lovie.co/mcp/mcp
Authorisation server https://clerk.lovie.co

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.lovie.co/mcp/mcp Verified 200
http (plaintext) http://mcp.lovie.co/mcp/mcp HTTPS enforced 301 https://mcp.lovie.co/mcp/mcp
MCP tools · 333 exposed · ~29,622 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
formation_get_formation_quote ~91

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 asks about price instead of quoting figures from memory — formation is a single one-time payment, so there is no plan and no monthly/annual choice to describe.

NameTypeReqDescription
statestring
NameTypeReqDescription
filingFeeCentsstring
filingFeeDisplaystring
lineItemsarray
subtotalCentsstring
subtotalDisplaystring
totalCentsstring
totalDisplaystring

No examples provided.

formation_get_formation_timeline ~83

Returns a formation's progress timeline: each milestone (filing, company formed, tax identifier, banking, and — where an accelerator invests — the starter investment), its state, and a sentence describing it. Also lists co-founders who have not finished; they never block the filing. Read-only.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
NameTypeReqDescription
milestonesarray
pendingCofoundersarray

No examples provided.

formation_get_formation_upload_url ~56

GetFormationUploadURL returns a presigned PUT URL for a cap table or SAFE document

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
kindstring
mimeTypestring
NameTypeReqDescription
expiresAt
sourceS3Uristring
uploadUrlstring

No examples provided.

formation_get_list_formations ~122

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 from formation_start, so use formation_get_formation with that id to check the active formation. Only use this when the user explicitly asks to see all of their companies/formations and gives no specific formation_id.

NameTypeReqDescription
filterobject
pageSizeinteger
pageTokenstring
scopestring
NameTypeReqDescription
formationsarray
nextPageTokenstring
totalCountinteger

No examples provided.

formation_get_list_incorporation_documents ~151

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 letter (CP-575) — each with its filing and effective dates, jurisdiction, status and notes. Read-only. The 83(b) rows carry a statutory deadline: 30 days from the share issue, unreopenable, and filed by the founder personally, so a status of EXPIRED means the window closed, NOT that the founder failed to file. Sensitive rows (83(b), EIN) are returned only to a company owner or accountant.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
authorizedSharesstring
documentsarray
entitystring
formationId
hasFormationboolean
incorporatedDate

No examples provided.

formation_get_ocr_upload_url ~188

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_PROOF for a wire payment proof). Step 1 of every document-import flow: call with the matching kind and mime_type=application/pdf, upload the file bytes to the returned upload_url with an HTTP PUT, then pass the returned source_s3_uri to the next step — ImportSAFE for a SAFE, ExtractRsaTermsOcr (then CreateCapTableAgreement with type=RSA) for a signed RSA, or ExtractCapTableOcr for a cap table. Company-scoped — no formation record needed.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
kindstring
mimeTypestring
NameTypeReqDescription
expiresAt
sourceS3Uristring
uploadUrlstring

No examples provided.

formation_get_payment_link ~345

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 link files NOTHING and charges NOTHING — it only produces a URL; no state filing happens and no money moves until the user themselves completes Stripe checkout, so it is safe to call, including during testing; never refuse or stop short because it is a 'test'. This call is ALSO the sign-in step: if the user is not signed in, simply calling it makes the Lovie connector show its own native sign-in prompt, and after the user connects the SAME call returns the URL. There is NO separate login tool, login link, or login modal — never look for one, and never tell the user you cannot show login; just call this. Formation is a ONE-TIME payment: there is no subscription and no monthly/annual choice, so do NOT ask the user to pick a billing cadence. Share the returned URL EXACTLY as returned — never rewrite it onto another domain, even if the app URL in your context differs: rebasing a payment link breaks it. Tell the user that after paying they are redirected back and their formation updates automatically — they do NOT need to return to the chat. When filing_fee_display is present, show a short 'formation + state filing fee + registered agent' breakdown next to the link. Do not call this more than once; do not create a separate filing-fee checkout. This does not confirm payment.

NameTypeReqDescription
attributionobject
formationIdobjectyesUUID value wrapper.
subscriptionOnlyboolean
NameTypeReqDescription
filingFeeCentsstring
filingFeeDisplaystring
formationId
lineItemsarray
paymentStatusstring
paymentUrlstring
totalCentsstring
totalDisplaystring

No examples provided.

formation_list_company_domains ~50

Lists the company's domains with status (pending, purchased, transfer in progress, expired) and expiry dates. Call this first for any domain question.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
domainsarray

No examples provided.

formation_lookup_domain_dns_records ~125

Resolves the DNS records a company's domain currently answers with (A, AAAA, MX, TXT, NS, CNAME), as the public internet sees them. Use before changing DNS, and to check whether a change has taken effect. This is a live lookup, not Lovie's stored list, so it shows records the domain already had. DNS cannot enumerate a zone: the response reports which names were queried, and a record on any other name is invisible to it.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
domainstring
NameTypeReqDescription
dnsRecordsarray
lookupFailedboolean
queriedHostsarray

No examples provided.

formation_purchase_formation ~86

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 money and is never retried once it succeeds.

NameTypeReqDescription
filingMethodIdstring
formDataobject
formationIdobjectyesUUID value wrapper.
NameTypeReqDescription
cartItemIdsarray
corpToolsCompanyIdstring
formationId
invoiceIdsarray
statusstring

No examples provided.

formation_purchase_registered_agent ~32

PurchaseRegisteredAgent triggers a CorpTools registered-agent purchase.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
NameTypeReqDescription
corpToolsCompanyIdstring
corpToolsOrderIdstring
formationId
statusstring

No examples provided.

formation_record_election83b_filing ~94

RecordElection83bFiling records that the signed election was submitted to the IRS (postmark or online), with optional proof. Owner-scoped.

NameTypeReqDescription
filedDatestring
formationIdobjectyesUUID value wrapper.
methodstring
proofstring
proofFileNamestring
trackingNumberstring
NameTypeReqDescription
filing

No examples provided.

formation_record_entity_guidance_quiz ~100

Records the founder's answers to the three entity-choice questions — whether they expect to raise from investors, whether there is more than one owner, and whether this is their first company — and returns the entity type those answers point to, with the reasoning.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
isFirstTimestring
multipleOwnersstring
willRaiseVcstring
NameTypeReqDescription
recommendation

No examples provided.

formation_remove_shareholder ~85

Removes one owner from a formation and reports how many remain and what ownership now totals. The freed percentage is NOT given to anyone else, so the total will usually stop reaching 100% until the founder reallocates it. Refused once the filing is under way.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
shareholderIdobjectyesUUID value wrapper.
NameTypeReqDescription
formationId
ownershipCompleteboolean
totalOwnershipstring
totalShareholdersinteger

No examples provided.

formation_run_election83b_reminders ~66

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.

NameTypeReqDescription
dryRunboolean
NameTypeReqDescription
errorsarray
scannedinteger
sentarray

No examples provided.

formation_save_cap_table_import ~138

SaveCapTableImport replaces the formation's shareholders with the imported, founder-edited list. A request whose shareholders carry ssn_last4 is refused with INVALID_ARGUMENT and writes nothing — the existing roster is left exactly as it was: those four digits are recorded only by SetShareholderTaxIdentifier, after the whole identifier has reached the secret store. Accepting them here would report a saved number that nothing holds.

NameTypeReqDescription
capTableS3Uristring
editsMadeinteger
formationIdobjectyesUUID value wrapper.
safeMatchesarray
shareholdersarray
NameTypeReqDescription
formation
formationId
totalShareholdersinteger

No examples provided.

formation_send_formation_email ~60

SendFormationEmail dispatches a formation lifecycle email via SendGrid.

NameTypeReqDescription
additionalInformationRequiredobject
emailTypestring
filingRejectedobject
formationIdobjectyesUUID value wrapper.
NameTypeReqDescription
emailTypestring
formationId
messageIdstring
sentAt

No examples provided.

formation_set_banking_intent ~93

Records whether the founder wants a business bank account opened once their EIN arrives, plus a card preference, where cards should be sent, and roughly what they expect to spend each month. This records an intention ONLY — it opens no account, creates no account number, and moves no money. Say so when reporting it.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
intentobjectyes
NameTypeReqDescription
intent
recordedAt

No examples provided.

formation_set_company_address ~144

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_ASSISTANCE to give them Lovie's virtual mailbox (a real US address Lovie provides). Offer the mailbox proactively whenever the user has no address or prefers not to use a home/personal one. A real filing needs a resolvable US street, city, state, and ZIP.

NameTypeReqDescription
addressobject
formationIdobjectyesUUID value wrapper.
physicalBusinessAddressobject
sourcestring
NameTypeReqDescription
formationId
needsVirtualPostMailboolean

No examples provided.

formation_set_company_name ~92

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, call formation_check_name to verify availability in the selected state.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
nameobjectyesHuman-readable name (1-255 Unicode chars).
NameTypeReqDescription
baseNamestring
entityEndingstring
formationId
fullNamestring

No examples provided.

formation_set_company_setup_details ~80

Records a formation's alternate name, business purpose, company stage and Delaware filing speed. Any field left out is unchanged rather than cleared.

NameTypeReqDescription
alternateNamestring
companyStagestring
formationIdobjectyesUUID value wrapper.
processingSpeedstring
purposestring
NameTypeReqDescription
formation

No examples provided.

formation_set_company_type ~74

Sets the formation's entity type. Valid values are ENTITY_TYPE_LLC, ENTITY_TYPE_C_CORP, and ENTITY_TYPE_S_CORP — never send ENTITY_TYPE_UNSPECIFIED. Returns warnings the user must acknowledge before proceeding.

NameTypeReqDescription
companyTypestring
formationIdobjectyesUUID value wrapper.
NameTypeReqDescription
companyTypestring
formationId
validEntityEndingsarray
warningsarray
warningsRequireAcknowledgmentboolean

No examples provided.

formation_set_domain_dns_records ~171

Adds DNS records (A, AAAA, CNAME, CAA, MX, TXT, NS) to a domain the company purchased through Lovie and applies them at the registrar — no registrar login needed. Use when the founder wants to point their domain at a website host or set up email records. Host is relative to the domain ("@" for the root, "www" for a subdomain). This ADDS records: it cannot delete one, and it cannot reliably overwrite a record that already exists — the registrar's own tools are needed for either. Full nameserver delegation changes are not supported. Call LookupDomainDnsRecords first to see what is already there.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
dnsRecordsarray
domainstring
NameTypeReqDescription
domain

No examples provided.

formation_set_election83b ~59

SetElection83b persists the 83(b) election snapshot on the formation. Owner-scoped; called after PDF generation + signature envelope creation.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
recordobjectyes
NameTypeReqDescription
formation

No examples provided.

formation_set_entity_ending ~106

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 returned by formation_set_company_type. Set this BEFORE the company name so the full legal name is derived correctly.

NameTypeReqDescription
endingstring
formationIdobjectyesUUID value wrapper.
NameTypeReqDescription
entityEndingstring
formationId

No examples provided.

formation_set_founder_profile ~112

Records who the founder is — their name, contact details and where they are based — on a formation. A Social Security Number or ITIN is optional here: ask for it only if the person offers, pass it once, and never read it back. The response says whether one is on file, never the number.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
noSsnboolean
profileobjectyes
ssnItinstring
NameTypeReqDescription
hasSsnboolean
profile

No examples provided.

formation_set_registered_agent ~79

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 one.

NameTypeReqDescription
agentobject
formationIdobjectyesUUID value wrapper.
useDefaultboolean
NameTypeReqDescription
formationId
registeredAgent

No examples provided.

formation_set_selected_domain ~115

Sets the founder's chosen domain on the formation. Pass an empty string to clear the selection. Domain registration only requires payment, NOT state approval: for a paid formation the domain is claimable immediately — tell the founder to finish registration now on the formation page or on the dashboard's Domains page (takes a minute), so their website is live while the state filing completes. For unpaid formations the domain is purchasable right after checkout.

NameTypeReqDescription
domainstring
formationIdobjectyesUUID value wrapper.
NameTypeReqDescription
formationId
selectedDomainstring

No examples provided.

formation_set_share_structure ~107

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 with authorized_shares and par_value for a custom structure. C-Corp only.

NameTypeReqDescription
authorizedSharesinteger
formationIdobjectyesUUID value wrapper.
parValuestring
useDefaultboolean
NameTypeReqDescription
formationId
shareStructure
totalCapitalstring

No examples provided.

formation_set_shareholder_tax_identifier ~109

Files one shareholder's Social Security Number or ITIN against a formation. 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 for it directly, pass it once, and never repeat it back in your own message. No tool reads the number out again.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
shareholderIdobjectyesUUID value wrapper.
taxIdentifierstring
NameTypeReqDescription
ssnLast4string

No examples provided.

formation_set_signatory ~70

SetAuthorizedParty sets the authorized signatory for formation documents

NameTypeReqDescription
emailstring
formationIdobjectyesUUID value wrapper.
nameobjectyesHuman-readable name (1-255 Unicode chars).
phonestring
titlestring
NameTypeReqDescription
authorizedParty
formationId

No examples provided.

formation_set_state ~70

Sets the formation's state of formation. Every US state and DC is supported — pass the two-letter code (e.g. "TX", "DE", "WY"). Returns the entity types available for that state.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
statestring
NameTypeReqDescription
availableCompanyTypesarray
formationId
statestring
stateDescriptionstring

No examples provided.

formation_set_team_equity ~93

Sets the founding team's ownership split and vesting. Ownership must total exactly 100%. Existing people are matched by id and only the stated fields change. Invitations that fail to send are reported in the response and never block the filing.

NameTypeReqDescription
election83bIntentboolean
formationIdobjectyesUUID value wrapper.
membersarray
vestingobject
NameTypeReqDescription
inviteFailuresarray
shareholdersarray
totalOwnershipstring

No examples provided.

formation_start_domain_transfer ~77

Begins the paid transfer at the registrar using the EPP/auth code the user obtained from their current provider. The code is used once and never stored. Transfers take days; track with the transfer-status tool.

NameTypeReqDescription
authCodestring
companyIdobjectyesUUID value wrapper.
domainstring
NameTypeReqDescription
statusstring

No examples provided.

formation_start_formation ~325

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_get_my_companies or formation_get_list_formations first; those require auth and are only for existing records — starting a new formation needs neither. Returns a formation_id plus the ordered steps. Calling it again for the same signed-in user RESUMES the formation already in progress and returns its id with resumed=true — it does not create a second one, so a retry is safe. When resumed=true, tell the user which company you are continuing (the response carries its name) instead of assuming it is the one they just described. If they say they want a DIFFERENT, additional company, call again with force_new=true — that is the only time to set it; never set it to retry. Before walking the steps, briefly understand the user's business, experience, and funding (one question at a time), then give a tailored recommendation. Keep the formation_id and pass it to every later step. Call this exactly ONCE per formation — never start a second one to resume. When a later step needs sign-in, let the user connect and retry with the SAME formation_id; signing in automatically claims the in-progress formation, so it is never lost.

NameTypeReqDescription
forceNewboolean
inviteTokenstring
referralCodestring
sessionIdobjectUUID value wrapper.
sourcestring
NameTypeReqDescription
companyNamestring
currentStepstring
formationId
partnerPaysboolean
resumedboolean
sessionId
statusstring

No examples provided.

formation_submit_ein_filing_info ~147

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 ~45 business days via paper filing. Collect the remaining fields conversationally: date of birth, employee counts, first wages date, closing month of the accounting year, reason for applying, any prior EIN, and principal business activity.

NameTypeReqDescription
formationIdobjectyesUUID value wrapper.
infoobjectyes
noSsnboolean
ssnItinstring
NameTypeReqDescription
formationId
hasSsnboolean
submittedAt

No examples provided.

formation_suggest_naics_codes ~100

Ranks candidate 2022 NAICS industry codes for a formation from its business description. Returns SUGGESTIONS ONLY and changes nothing — always show the shortlist and have the person pick one. NAICS codes are two to six digits, not always six.

NameTypeReqDescription
businessDescriptionobjectFree-form description (max 5000 chars).
formationIdobjectyesUUID value wrapper.
maxResultsinteger
NameTypeReqDescription
matchedDescription
suggestionsarray

No examples provided.

formation_sweep_formation_order_status ~60

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 triggering.

NameTypeReqDescription
dryRunboolean
NameTypeReqDescription
errorsarray
scannedinteger
updatedarray

No examples provided.

formation_update_formation ~143

UpdateFormation applies a FieldMask-scoped patch to a formation. The caller supplies update_mask.paths to select the fields to replace. The roster is not patchable here — use AddShareholder, UpdateShareholder or RemoveShareholder. A patch whose shareholders carry ssn_last4 is refused with INVALID_ARGUMENT and writes nothing: those four digits are recorded only by SetShareholderTaxIdentifier, after the whole identifier has reached the secret store. Accepting them here would report a saved number that nothing holds.

NameTypeReqDescription
formationobjectyes
formationIdobjectyesUUID value wrapper.
updateMaskstringyesComma-separated field paths.
NameTypeReqDescription
formation

No examples provided.

formation_update_shareholder ~132

Corrects one owner on a formation — their name, contact details, ownership percentage, role or address. Refused once the filing is under way. Share counts and vesting are not editable here.

NameTypeReqDescription
addressobject
addressTypestring
emailstring
firstNamestring
formationIdobjectyesUUID value wrapper.
lastNamestring
ownershipPercentagestring
phonestring
rolestring
shareholderIdobjectyesUUID value wrapper.
NameTypeReqDescription
formationId
ownershipCompleteboolean
shareholder
totalOwnershipstring

No examples provided.

google_ads_metrics_get_google_ads_campaign_window ~92

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 billing period that starts mid-month.

NameTypeReqDescription
companyIdstring
customerIdstring
periodEndstring
periodStartstring
NameTypeReqDescription
campaignsarray
currencyCodestring
totalSpendstring

No examples provided.

google_ads_metrics_get_list_google_ads_campaign_metrics ~67

List per-campaign monthly metrics for a company, with optional customer/campaign/month filtering and offset pagination.

NameTypeReqDescription
companyIdstring
filterobject
pageSizeinteger
pageTokenstring
NameTypeReqDescription
metricsarray
nextPageTokenstring
totalCountinteger

No examples provided.

insight_get_insight ~27

Get a single insight by id.

NameTypeReqDescription
idobjectyesUUID value wrapper.
NameTypeReqDescription
insight

No examples provided.

insight_get_savings_summary ~74

Summarize savings for a company: identified (OPEN impact), estimated (marked-done projections), and realized (verifier-confirmed), with a per-detector-type split.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
fromMonthstring
toMonthstring
NameTypeReqDescription
byTypearray
estimatedCentsMonthlystring
identifiedCentsMonthlystring
realizedCentsMonthlystring

No examples provided.

invoice_get_invoice ~63

Returns one invoice by id with its line items, client, totals, due date and payment state. Read-only. Use this to answer questions about a specific invoice; to find its id, list the company's invoices first.

NameTypeReqDescription
idobjectyesUUID value wrapper.
NameTypeReqDescription
invoice

No examples provided.

invoice_get_invoice_pdf_url ~50

GetInvoicePdfUrl returns a short-lived signed S3 URL for the rendered PDF.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
invoiceIdobjectyesUUID value wrapper.
NameTypeReqDescription
expiresAt
urlstring

No examples provided.

invoice_get_list_invoices ~74

Lists a company's invoices, newest first, with client, amount, due date and status. Read-only and paginated. Filter by status to answer "what is unpaid" or "what is overdue".

NameTypeReqDescription
filterobject
pageSizeinteger
pageTokenstring
NameTypeReqDescription
invoicesarray
nextPageTokenstring
totalCountinteger

No examples provided.

invoice_settings_get_invoice_settings ~68

Returns a company's invoicing defaults: numbering, payment terms, currency, tax rate and the branding that appears on a rendered invoice. Read-only. Read this before creating an invoice if you need to know what the defaults will be.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
settings

No examples provided.

itin_check_itin_eligibility ~98

Checks whether the user is likely eligible for an ITIN (guidance, not an IRS ruling). Someone with — or eligible for — an SSN cannot get an ITIN; a valid passport makes the process simplest. Ask the two questions conversationally and relay the answer.

NameTypeReqDescription
applyingReasonstring
hasSsnOrEligibleboolean
hasValidPassportOrIdboolean
NameTypeReqDescription
likelyEligibleboolean
notesarray

No examples provided.

itin_create_itin_checkout ~110

Starts an ITIN purchase: creates the application and returns a Stripe Checkout URL. Give the URL to the user — payment always happens on the secure Stripe page, never in chat. Requires the user to have passed identity verification (KYC); if this answers failed-precondition, walk them through verifying first. After payment the intake is prefilled from what Lovie already knows, so the user mostly confirms.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
packagestring
NameTypeReqDescription
applicationId
checkoutUrlstring

No examples provided.

Common questions

What is the Lovie Company Formation MCP server?

Lovie Company Formation is an MCP server listed in the public MCP registry as co.lovie/company-formation. Form companies, manage bank accounts, cards, invoices and more, directly from your AI coding tools. This page covers its hosted endpoint (https://mcp.lovie.co/mcp/mcp).

Is the Lovie Company Formation MCP server safe to use?

Lovie Company Formation scores 89 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Lovie Company Formation MCP server expose?

Lovie Company Formation exposes 333 tools: account_get_account, account_get_list_account_details, accounting_batch_accept_review_items, accounting_batch_set_excluded, accounting_cancel_schedule, and 328 more. Their descriptions and schemas cost roughly 29,622 tokens of context every time the server is loaded.

Does the Lovie Company Formation MCP server require authentication?

Yes. Lovie Company Formation asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Lovie Company Formation MCP server still maintained?

Lovie Company Formation is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.