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 20

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 20 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
banking_preview_cap_table_hydration ~64

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.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
availableboolean
prefillPercentinteger
rowsarray
stillNeededarray

No examples provided.

banking_preview_formation_hydration ~68

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.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
formationIdobjectUUID value wrapper.
NameTypeReqDescription
availableboolean
formationId
prefillPercentinteger
rowsarray
stillNeededarray

No examples provided.

banking_refresh_application_provider_status ~138

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 happened. A tool, like RefreshOwnerVerification beside it, and idempotent for the same reason: asking again is how the answer arrives, so a client that prompts before every ask makes the one safe action feel dangerous. The verb heuristic does not know "Refresh", so this is stated rather than derived.

NameTypeReqDescription
applicationIdobjectyesUUID value wrapper.
NameTypeReqDescription
application

No examples provided.

banking_refresh_owner_verification ~73

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.

NameTypeReqDescription
applicationIdobjectyesUUID value wrapper.
ownerIdobjectyesUUID value wrapper.
NameTypeReqDescription
owner

No examples provided.

banking_set_application_ein ~105

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 received it does not have one to give — say so and move on rather than inventing digits.

NameTypeReqDescription
applicationIdobjectyesUUID value wrapper.
einstring

Structured output declared, but exposes no named fields.

No examples provided.

banking_set_owner_identity_document_number ~118

Files a non-US beneficial owner's passport number against a banking application, with its issuing country and expiry. The number goes to the secret store; only the country and expiry are recorded on the owner, and the response returns nothing. Use this instead of the tax-identifier tool for an owner who has no SSN or ITIN. Pass it once and do not repeat it back.

NameTypeReqDescription
applicationIdobjectyesUUID value wrapper.
documentNumberstring
ownerIdobjectyesUUID value wrapper.

Structured output declared, but exposes no named fields.

No examples provided.

banking_set_owner_tax_identifier ~124

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 for it directly and pass it once — never guess it, never read it back to them, and never repeat it in your own message. The owners section cannot be completed without one for each assessed owner.

NameTypeReqDescription
applicationIdobjectyesUUID value wrapper.
ownerIdobjectyesUUID value wrapper.
taxIdentifierstring
NameTypeReqDescription
ssnLast4string

No examples provided.

banking_start_banking_application ~124

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 company was formed with Lovie and most of the form can be carried over, COLD_MANUAL when the applicant types them in.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
formationIdobjectUUID value wrapper.
pathstring
NameTypeReqDescription
applicationIdyes

No examples provided.

banking_submit_banking_application ~130

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 so a client surfaces a confirmation. The freeze is one-way from the applicant's side: every subsequent write is refused with ErrApplicationFrozen, because what was submitted is what was reviewed. Being option-less made it look like an ordinary field write.

NameTypeReqDescription
applicationIdobjectyesUUID value wrapper.
NameTypeReqDescription
application
blockingSectionsarray

No examples provided.

banking_suggest_industry_code ~123

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 so rather than inventing a code. Never apply a suggestion without the person confirming it: the wrong code on a bank application is a compliance problem, not a typo.

NameTypeReqDescription
businessDescriptionobjectyesFree-form description (max 5000 chars).
limitinteger
NameTypeReqDescription
suggestionsarray

No examples provided.

banking_update_banking_application ~61

UpdateBankingApplication takes a FieldMask. Every path in the mask also writes USER provenance, so correcting a carried-over value re-attributes it.

NameTypeReqDescription
applicationobjectyes
updateMaskstringyesComma-separated field paths.
NameTypeReqDescription
application

No examples provided.

banking_upsert_beneficial_owner ~96

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 report a saved number that nothing holds.

NameTypeReqDescription
applicationIdobjectyesUUID value wrapper.
ownerobjectyes
NameTypeReqDescription
ownerId

No examples provided.

cap_table_clear_cap_table_stakeholders ~54

ClearCapTableStakeholders deletes every stakeholder of a company in a single DB-level operation. Used by the "replace cap table" import flow.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
deletedCountstring

No examples provided.

cap_table_close_cap_table_round ~163

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, so confirm with the user first. To only estimate the outcome without closing, use PreviewCloseCapTableRound.

NameTypeReqDescription
carryForwardUnwiredboolean
companyIdobjectyesUUID value wrapper.
newMoneyRaisestring
preMoneyValuationstring
roundIdobjectyesUUID value wrapper.
targetOptionPoolPctstring
NameTypeReqDescription
result
round
snapshotsarray

No examples provided.

cap_table_create_cap_table_agreement ~99

CreateCapTableAgreement creates a draft non-SAFE agreement.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
granteeNamestring
namestring
progressTotalinteger
roundIdobjectUUID value wrapper.
sourceS3Uristring
stakeholderIdobjectUUID value wrapper.
typestring
NameTypeReqDescription
agreementIdyes

No examples provided.

cap_table_create_cap_table_round ~75

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.

NameTypeReqDescription
pastRoundboolean
roundobjectyes
NameTypeReqDescription
roundIdyes

No examples provided.

cap_table_create_cap_table_stakeholder ~152

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 creates the party and its holding together. Do NOT call this first and then record the holding, and if you have already called it, pass the returned stakeholder_id to RecordCapTableInvestment rather than the name again — naming the party twice puts them on the register twice. Use this tool only for a party who is genuinely meant to have no holding at all.

NameTypeReqDescription
stakeholderobjectyes
NameTypeReqDescription
stakeholderIdyes

No examples provided.

cap_table_delete_cap_table_agreement ~43

DeleteCapTableAgreement removes an agreement.

NameTypeReqDescription
agreementIdobjectyesUUID value wrapper.
companyIdobjectyesUUID value wrapper.

Structured output declared, but exposes no named fields.

No examples provided.

cap_table_delete_cap_table_round ~79

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

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
roundIdobjectyesUUID value wrapper.

Structured output declared, but exposes no named fields.

No examples provided.

cap_table_delete_cap_table_security ~42

DeleteCapTableSecurity removes one holding.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
securityIdobjectyesUUID value wrapper.

Structured output declared, but exposes no named fields.

No examples provided.

cap_table_delete_cap_table_stakeholder ~38

DeleteCapTableStakeholder removes one stakeholder from a cap table.

NameTypeReqDescription
stakeholderIdobjectyesUUID value wrapper.

Structured output declared, but exposes no named fields.

No examples provided.

cap_table_download_cap_table_safes ~48

DownloadCapTableSafes presigns multiple SAFE agreement PDFs in one call.

NameTypeReqDescription
agreementIdsarray
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
filesarray

No examples provided.

cap_table_extract_wire_payment_proof ~155

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 kind=WIRE_PROOF, PUT the file bytes to the returned upload_url, then call this with the returned source_s3_uri. Only a 'verified' verdict can back a wire in RecordCapTableWire.

NameTypeReqDescription
agentCodestring
companyIdobjectyesUUID value wrapper.
securityIdobjectyesUUID value wrapper.
sourceS3Uristring
NameTypeReqDescription
ocrConfidencestring
proof
sourceS3Uristring
verification
warningsarray

No examples provided.

cap_table_generate_cap_table_agreement_pdf ~94

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

NameTypeReqDescription
agreementIdobjectyesUUID value wrapper.
companyIdobjectyesUUID value wrapper.
templateFieldsobject
NameTypeReqDescription
s3Keystring

No examples provided.

cap_table_generate_cap_table_docs ~42

GenerateCapTableDocs kicks off the async generation pipeline.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
stakeholderIdsarray
NameTypeReqDescription
queuedCountinteger

No examples provided.

cap_table_generate_cap_table_summary_pdf ~66

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.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
pdfstring

No examples provided.

cap_table_get_cap_table_agreement ~86

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 agreements first.

NameTypeReqDescription
idobjectyesUUID value wrapper.
NameTypeReqDescription
agreement
signatureBlock

No examples provided.

cap_table_get_cap_table_agreement_pdf_url ~54

GetCapTableAgreementPdfUrl returns a short-lived signed S3 URL for the rendered SAFE agreement PDF.

NameTypeReqDescription
agreementIdobjectyesUUID value wrapper.
attachmentboolean
NameTypeReqDescription
expiresAt
urlstring

No examples provided.

cap_table_get_cap_table_equity_plans ~128

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 cliff has passed. Investor entries carry the committed amount, valuation cap, discount and pipeline stage. Use this to answer "who holds what" or "how much of X's grant has vested" without adding up securities by hand.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
advisorsarray
employeesarray
foundersarray
investorsarray

No examples provided.

cap_table_get_cap_table_investor_access ~60

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.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
investorsarray

No examples provided.

cap_table_get_cap_table_overview ~92

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

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
latestRoundId
modestring

No examples provided.

cap_table_get_cap_table_round ~77

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.

NameTypeReqDescription
idobjectyesUUID value wrapper.
NameTypeReqDescription
round

No examples provided.

cap_table_get_cap_table_round_summaries ~139

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" without adding up individual investors by hand — the stage buckets are exclusive, so each investor's capital appears in exactly one of them and raised is their sum. Wired is money in the bank; committed and signed are promised but not yet received.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
summariesarray

No examples provided.

cap_table_get_cap_table_security ~36

GetCapTableSecurity returns one holding by id. Read-only.

NameTypeReqDescription
securityIdobjectyesUUID value wrapper.
NameTypeReqDescription
security

No examples provided.

cap_table_get_cap_table_stakeholder ~39

GetCapTableStakeholder returns one stakeholder by id. Read-only.

NameTypeReqDescription
stakeholderIdobjectyesUUID value wrapper.
NameTypeReqDescription
stakeholder

No examples provided.

cap_table_get_cap_table_summary ~73

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. Read-only.

NameTypeReqDescription
asOfstring
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
asOfRecordedAt
authorizedCommonSharesstring
authorizedPreferredSharesstring
authorizedSharesstring
foundersPctstring
segmentsarray
stakeholderCountinteger
totalCommittedstring
totalInvestmentstring
totalSharesstring

No examples provided.

cap_table_get_list_cap_table_agreements ~108

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.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
pageSizeinteger
pageTokenstring
typeFilterarray
NameTypeReqDescription
agreementsarray
nextPageTokenstring
totalCountinteger

No examples provided.

cap_table_get_list_cap_table_rounds ~77

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.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
pageSizeinteger
pageTokenstring
NameTypeReqDescription
nextPageTokenstring
roundsarray
totalCountinteger

No examples provided.

cap_table_get_list_cap_table_securities ~76

GetListCapTableSecurities lists a company's holdings (optionally filtered to one stakeholder), paginated. Read-only.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
pageSizeinteger
pageTokenstring
stakeholderIdobjectUUID value wrapper.
NameTypeReqDescription
nextPageTokenstring
securitiesarray
totalCountinteger

No examples provided.

cap_table_get_list_cap_table_stakeholders ~64

GetListCapTableStakeholders returns a company's stakeholder roster (company-scoped, paginated). Read-only.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
pageSizeinteger
pageTokenstring
NameTypeReqDescription
nextPageTokenstring
stakeholdersarray
totalCountinteger

No examples provided.

cap_table_get_list_cap_table_wire_match_suggestions ~98

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 who are they from".

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
securityIdobjectUUID value wrapper.
NameTypeReqDescription
suggestionsarray

No examples provided.

cap_table_get_my_investor_companies ~58

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
companiesarray

No examples provided.

cap_table_get_safe_import_consent ~46

GetSafeImportConsent reports whether the company has granted current consent for an external AI to read imported SAFE contents.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
grantedboolean
versionstring

No examples provided.

cap_table_get_transaction_summary ~62

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.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
committedstring
signedstring
wiredstring

No examples provided.

cap_table_get_wired_transactions ~48

GetWiredTransactions returns the confirmed-wire ledger (wired + refunded investor rows) for the fundraising Transactions page. Read-only.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
totalCountinteger
transactionsarray

No examples provided.

cap_table_grant_safe_import_consent ~49

GrantSafeImportConsent records the company's consent at the current wording version. Required before an MCP-origin SaveCapTableImport.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
NameTypeReqDescription
grantedboolean
versionstring

No examples provided.

cap_table_import_rsa ~452

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/advisor) MUST already exist as a cap-table stakeholder — this tool matches the document to an existing stakeholder by name and does NOT create one; if there is no match the import is rejected, so add the stakeholder first. Mandatory two-step human-in-the-loop flow: (1) call GetOcrUploadUrl with kind=RSA and mime_type=application/pdf, then upload the PDF bytes to the returned PUT URL; (2) call ImportRSA with preview=true and that source_s3_uri — this runs OCR and returns the extracted founder/company names and terms (shares, vesting, price_per_share, grant_date, 83b status, acceleration) plus the resolved grantee (matched_stakeholder_id, or would_create=true when no stakeholder matches) WITHOUT persisting anything; (3) PRESENT those terms to the user as a table, let them correct any value, and get explicit confirmation; (4) call ImportRSA again WITHOUT preview and the SAME source_s3_uri; pass rsa_terms_override with any user-corrected terms (omit it to accept the extracted terms as-is), and stakeholder_id to pin the matched grantee. This creates the common-stock holding with its vesting schedule (or updates the grantee's existing holding), records a signed RSA agreement, and links the PDF — atomically. Never skip the preview + confirmation step; never persist unreviewed OCR output. Empty string / 0 / false in the extracted terms means the value was not stated in the document — never fabricate.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
consentToAiReadboolean
newStakeholderNamestring
previewboolean
rsaTermsOverrideobject
sourceS3Uristring
stakeholderIdobjectUUID value wrapper.
NameTypeReqDescription
agreementId
consentBodyMarkdownstring
consentVersionstring
createdboolean
preview
securityId
stakeholderId
statusstring

No examples provided.

cap_table_import_safe ~546

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 the PDF bytes to that PUT URL, (3) call ImportSAFE with that source_s3_uri. This runs OCR to extract the terms; pass valuation_cap / investment_amount / discount_rate only to CORRECT a value the user says the OCR misread, and leave them empty to keep what the document says. Call ExtractSafeTerms first and get the user's confirmation before importing. effective_date is required — never import a SAFE without a date. If the company named on the document differs from this company, say both names and get the user's confirmation before importing. It copies the PDF to the canonical cap-table SAFE location, links it to a SAFE agreement, resolves the investor by name (matching an existing stakeholder or creating a new one), and creates the security. The security is marked signed only if the document is actually signed; an unsigned SAFE PDF is still stored and left committed. Whenever the user has the PDF — including when they attached it to this conversation — upload it and pass source_s3_uri so the document itself is stored; a SAFE created from typed terms alone has nothing on record proving its date or signature, and the cap table flags it as missing its document. Use RecordCapTableInvestment only for a SAFE the user genuinely has no document for. The response carries the cap table before this call, what it added, and the cap table after — report an import in exactly that order (current table, new additions, final table) and take the totals from the response rather than reading the cap table again. For several SAFEs at once, list every one you are about to add and get a yes before the first call, not after the last.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
consentToAiReadboolean
discountRatestring
documentIdobjectUUID value wrapper.
effectiveDatestring
investmentAmountstring
newStakeholderNamestring
postMoneyboolean
previewboolean
roundIdobjectUUID value wrapper.
sourceS3Uristring
stakeholderIdobjectUUID value wrapper.
unsignedDocumentboolean
valuationCapstring
NameTypeReqDescription
agreementId
change
consentBodyMarkdownstring
consentVersionstring
createdboolean
preview
securityId
stakeholderId
statusstring

No examples provided.

cap_table_list_cap_table_audit_events ~74

ListCapTableAuditEvents returns the append-only who/what/when audit log for a company's ownership-affecting cap-table mutations (B1). Read-only.

NameTypeReqDescription
companyIdobjectyesUUID value wrapper.
pageSizeinteger
pageTokenstring
NameTypeReqDescription
eventsarray
nextPageTokenstring
totalCountinteger

No examples provided.

cap_table_list_cap_table_snapshots_for_round ~87

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.

NameTypeReqDescription
roundIdobjectyesUUID value wrapper.
NameTypeReqDescription
snapshotsarray

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 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.