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.
Available components
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
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
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
claude mcp add --transport http co-lovie-company-formation 'https://mcp.lovie.co/mcp/mcp'
{
"mcpServers": {
"co-lovie-company-formation": {
"url": "https://mcp.lovie.co/mcp/mcp"
}
}
} {
"servers": {
"co-lovie-company-formation": {
"type": "http",
"url": "https://mcp.lovie.co/mcp/mcp"
}
}
} [mcp_servers.co-lovie-company-formation] url = "https://mcp.lovie.co/mcp/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"co-lovie-company-formation": {
"type": "remote",
"url": "https://mcp.lovie.co/mcp/mcp",
"enabled": true
}
}
} openclaw mcp add co-lovie-company-formation --url 'https://mcp.lovie.co/mcp/mcp' --transport streamable-http
mcp_servers:
co-lovie-company-formation:
url: "https://mcp.lovie.co/mcp/mcp" {
"McpServers": {
"co-lovie-company-formation": {
"Transport": "http",
"Url": "https://mcp.lovie.co/mcp/mcp"
}
}
} assistant mcp add co-lovie-company-formation -t streamable-http -u 'https://mcp.lovie.co/mcp/mcp'
{
"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.
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.
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 |
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 →
cap_table_list_cap_table_summary_snapshots List Cap Table Summary Snapshots ~66
ListCapTableSummarySnapshots returns the point-in-time cap-table summary versions captured on material edits (B4). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| nextPageToken | string | – | – |
| snapshots | array | – | – |
| totalCount | integer | – | – |
No examples provided.
cap_table_list_cumulative_cap_table_snapshots_for_stakeholder List Cumulative Cap Table Snapshots For Stakeholder ~90
Returns one stakeholder's position at every round close, oldest first — the dilution story for a single person or fund. Read-only. Use this to answer "how has my ownership changed" or "how much was this founder diluted across the rounds".
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| stakeholderId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| snapshots | array | – | – |
No examples provided.
cap_table_match_cap_table_stakeholder Match Cap Table Stakeholder ~58
MatchCapTableStakeholder suggests the existing stakeholder a parsed SAFE's investor name maps to (fuzzy match). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| investorName | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| matched | boolean | – | – |
| stakeholderId | – | – | – |
No examples provided.
cap_table_preview_close_cap_table_round Preview Close Cap Table Round ~132
PreviewCloseCapTableRound runs the SAME engine as CloseCapTableRound but does NOT persist or close anything — no status change, no snapshot writes. This is the action for "preview", "what-if", or "estimate the close"; it never finalizes the round. To actually close/finalize, use CloseCapTableRound.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| newMoneyRaise | string | – | – |
| preMoneyValuation | string | – | – |
| roundId | object | yes | UUID value wrapper. |
| targetOptionPoolPct | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| blockers | array | – | – |
| notices | array | – | – |
| result | – | – | – |
No examples provided.
cap_table_record_cap_table_investment Record Cap Table Investment ~599
Records one holding end-to-end: resolves or creates the stakeholder, then creates the holding with all derived fields, attaching or auto-creating a round for SAFE/Preferred. SAFE requires a valuation_cap. VESTING: for service equity held by a founder, employee, or advisor (instrument_type COMMON_STOCK or OPTION — restricted stock and option grants that vest over time), you MUST set the vesting field { start_date, total_months, cliff_months }. Carry these values from ExtractCapTable output (vesting_start_date / vesting_total_months / vesting_cliff_months) when importing a cap table. If such a holding has no vesting schedule in the source, ASK the user for the vesting start date, total months (e.g. 48), and cliff months (e.g. 12) BEFORE calling this tool — do not omit vesting and do not silently record it as fully vested. OMIT vesting entirely for investor instruments (SAFE, PREFERRED_STOCK, CONVERTIBLE_NOTE) — they never vest. Returns the stakeholder, security, and round ids. 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. PARTY: pass stakeholder_id whenever the person or fund is ALREADY on the cap table — including one you created or recorded earlier in this same conversation, and one you just read from GetListCapTableStakeholders. Use new_stakeholder ONLY for a party that is not on the register yet. Re-sending a name you have already used adds a SECOND row for the same person: the twin holds no equity, so ownership views hide it while stakeholder counts include it, and the register then disagrees with itself. If you are not certain whether a party exists, call GetListCapTableStakeholders first and take the id from there. The response returns…
| Name | Type | Req | Description |
|---|---|---|---|
| capitalCommitted | string | – | – |
| companyId | object | yes | UUID value wrapper. |
| discountRate | string | – | – |
| instrumentType | string | – | – |
| mfn | boolean | – | – |
| newStakeholder | object | – | – |
| proRata | boolean | – | – |
| roundId | object | – | UUID value wrapper. |
| safeType | string | – | – |
| shares | string | – | – |
| signedDate | string | – | – |
| stakeholderId | object | – | UUID value wrapper. |
| valuationCap | string | – | – |
| vesting | object | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| change | – | – | – |
| roundId | – | – | – |
| securityId | – | yes | – |
| stakeholderId | – | yes | – |
| stakeholderReused | boolean | – | – |
No examples provided.
cap_table_record_cap_table_refund Record Cap Table Refund ~98
RecordCapTableRefund records a refund into the money-movement ledger (refund, confirmed) and flips the security's pipeline_status to 'refunded'.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | – | – |
| companyId | object | yes | UUID value wrapper. |
| occurredAt | string | – | – |
| reference | string | – | – |
| securityId | object | yes | UUID value wrapper. |
| transactionId | object | – | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| transactionId | – | yes | – |
No examples provided.
cap_table_record_cap_table_wire Record Cap Table Wire ~186
Records an investor wire into the money-movement ledger and flips the security's pipeline_status to 'wired'. A wire is accepted ONLY when it is backed by one of: (a) a matched banking transaction_id (see GetListCapTableWireMatchSuggestions), or (b) a proof_document_uri whose ExtractWirePaymentProof verdict is 'verified'. With neither, the call is rejected — never mark a wire wired without a matched transaction or a verified payment proof.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | – | – |
| companyId | object | yes | UUID value wrapper. |
| occurredAt | string | – | – |
| ocrConfidence | string | – | – |
| proofDocumentUri | string | – | – |
| reference | string | – | – |
| reviewedProof | object | – | – |
| securityId | object | yes | UUID value wrapper. |
| transactionId | object | – | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| transactionId | – | yes | – |
No examples provided.
cap_table_reopen_cap_table_round Reopen Cap Table Round ~40
ReopenCapTableRound flips a CLOSED round back to OPEN (status only).
| Name | Type | Req | Description |
|---|---|---|---|
| roundId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| round | – | – | – |
No examples provided.
cap_table_set_cap_table_authorized_shares Set Cap Table Authorized Shares ~78
SetCapTableAuthorizedShares updates the company's authorized share ceiling (charter amendment must have been obtained before calling this). Owner-only.
| Name | Type | Req | Description |
|---|---|---|---|
| authorizedCommonShares | integer | – | – |
| authorizedPreferredShares | integer | – | – |
| authorizedShares | integer | – | – |
| companyId | object | yes | UUID value wrapper. |
Structured output declared, but exposes no named fields.
No examples provided.
cap_table_set_cap_table_pipeline_status Set Cap Table Pipeline Status ~264
Moves ONE investor's holding along the fundraising pipeline. Use this to change a stage — never UpdateCapTableSecurity, which is a full replace and will blank any field you do not resend. Forward goes one stage at a time: committed -> sent -> signed (awaiting_middleman sits between sent and signed and applies only to deals routed through a middleman, so stepping over it is fine). Skipping further ahead is rejected. Moving BACK to an earlier stage is allowed and is how a stage entered by mistake gets corrected — no need to delete the investor. Two things cannot be undone: 'wired' is set only by recording the wire (RecordCapTableWire, which requires a matched bank transaction or a verified payment proof) and never by this tool, and once wired the only move is a refund (RecordCapTableRefund). Setting the stage a holding already has is accepted and changes nothing. The fundraising pipeline is investors only: founders and employees receive equity, they never commit or wire capital, so a stage move on their holding is refused — leave them out when you list or summarize the pipeline.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| pipelineStatus | string | – | – |
| securityId | object | yes | UUID value wrapper. |
Structured output declared, but exposes no named fields.
No examples provided.
cap_table_simulate_cap_table_exit Simulate Cap Table Exit ~248
Computes what every stakeholder takes home at ONE hypothetical exit valuation, running the liquidation-preference waterfall and converting SAFEs as if the exit were the price round. Read-only — nothing is written. When the user asks to "run a simulation" without naming a number, do not pick round numbers out of the air: read the company's own valuations first (GetListCapTableRounds for pre/post-money, GetListCapTableSecurities for SAFE valuation caps) and call this once per valuation, plus one clearly below the cheapest and one or two well above the richest, so the ladder shows both a down-round and an upside. Keep it to about five valuations. Report each scenario as: the exit value, the total distributed, and one line per investor with the payout and the cash-out multiple (payout / capital invested, e.g. "20.0x"); call out anyone crossing $1M and $30M, and say plainly when an exit below the last round means liquidation preferences are repaid before common stock. Never hand-calculate any of these numbers.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| exitValuation | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| exitValuation | string | – | – |
| rows | array | – | – |
| totalDistributed | string | – | – |
No examples provided.
cap_table_update_cap_table_agreement Update Cap Table Agreement ~35
UpdateCapTableAgreement applies a full update (status/progress/timestamps).
| Name | Type | Req | Description |
|---|---|---|---|
| agreement | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
cap_table_update_cap_table_agreement_status Update Cap Table Agreement Status ~68
UpdateCapTableAgreementStatus transitions a SAFE agreement's status (Feature 10 pipeline wiring) — e.g. to completed once signing finishes. Status-only update; artifact pointers are preserved.
| Name | Type | Req | Description |
|---|---|---|---|
| id | object | yes | UUID value wrapper. |
| status | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
cap_table_update_cap_table_round Update Cap Table Round ~64
Changes a funding round's own terms — name, target, valuation, dates. Writes. It does not move a round between open and closed: closing runs a conversion engine and has its own call, and reopening has another.
| Name | Type | Req | Description |
|---|---|---|---|
| round | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
cap_table_update_cap_table_security Update Cap Table Security ~31
UpdateCapTableSecurity applies a full update to a holding.
| Name | Type | Req | Description |
|---|---|---|---|
| security | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
cap_table_update_cap_table_stakeholder Update Cap Table Stakeholder ~73
Edits an EXISTING stakeholder's identity (name, type, email, metadata) by id. FULL REPLACE; type is effectively immutable. To ADD a new stakeholder use CreateCapTableStakeholder; for an investor contributing capital use RecordCapTableInvestment.
| Name | Type | Req | Description |
|---|---|---|---|
| stakeholder | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
cap_table_update_my_stakeholder_name Update My Stakeholder Name ~106
UpdateMyStakeholderName lets an investor correct the name the company holds for them — a misspelled name on a SAFE is the investor's to fix, and asking the founder to retype it was the only route. Scoped to the caller's own stakeholder row; nothing else on the row can be changed this way.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| name | object | yes | Human-readable name (1-255 Unicode chars). |
Structured output declared, but exposes no named fields.
No examples provided.
captable_hydrate_formation_carry Hydrate Cap Table From Formation ~63
Carries the owners named during a company's formation onto its cap table as founders holding common stock. Insert-only: an owner already present is left untouched, so running it twice adds nothing.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| alreadyPresentCount | integer | – | – |
| carriedCount | integer | – | – |
No examples provided.
captable_preview_formation_carry Preview Cap Table From Formation ~65
Reports which owners a company's formation would carry onto its cap table, and what the cap table still needs afterwards. Writes nothing. Returns available=false when the company has no formation or its formation named no owners.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| available | boolean | – | – |
| formationId | – | – | – |
| rows | array | – | – |
| stillNeeded | array | – | – |
No examples provided.
captable_send_safe_for_signature Create SAFE Envelope ~175
CreateSafeEnvelope opens a two-party SAFE signing envelope from cap-table-supplied data (the caller fetched it via company.GetSafeAgreement): it renders the signable SAFE PDF, inserts the company (order 1) + investor (order 2) signers, and returns the raw investor signing token ONCE.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | – | UUID value wrapper. |
| companyName | object | yes | Human-readable name (1-255 Unicode chars). |
| founderEmail | string | – | – |
| founderUserId | object | yes | UUID value wrapper. |
| investors | array | – | – |
| provider | string | – | – |
| reminderIntervalDays | integer | – | – |
| safeAgreementId | string | – | – |
| stateOfIncorporation | string | – | – |
| valuationCap | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| envelopeId | string | – | – |
| investorTokens | array | – | – |
| signers | array | – | – |
No examples provided.
card_create_card Create Card ~372
Issues a new virtual card at the card issuer, funded by a specific bank account. account_id is REQUIRED: set it to the id of the account the card should spend from — it must belong to the same company as params.company_id (get_list_accounts lists the company's accounts; the call is rejected if the account belongs to another company or cannot fund cards). Set params.company_id to the company the card belongs to — the caller's membership is verified server-side, so pass a company the user actually belongs to (get_my_companies lists them). Set params.nickname to the name the user gave the card. Set params.spend_limit_cents to the limit in CENTS, not dollars: a $2,000 limit is 200000. params.spend_interval is REQUIRED whenever you send a limit and the call is rejected without it, so always send both — send SPEND_INTERVAL_MONTHLY when the user names an amount but no period, SPEND_INTERVAL_DAILY for a daily cap, or SPEND_INTERVAL_TRANSACTION for a per-charge cap. Do not send SPEND_INTERVAL_YEARLY: the default issuer does not support it and rejects the call — convert to a monthly amount and say so. Omit both fields only when the user wants no limit at all. Returns the created card, including its id, nickname, status, spend limit, expiry, cardholder, and billing address; report the id back to the user. Creating a card moves no money, but it does provision a real instrument at the issuer and no tool can delete it — only freeze it — so create one card per request and never retry a create that already succeeded. The full card number and CVV are never returned by any tool.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | object | yes | UUID value wrapper. |
| params | object | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | – | – |
No examples provided.
card_freeze_card Freeze Card ~84
Suspend a card at the issuer so it declines new charges. The card is not closed and no money moves; UnfreezeCard restores it. Safe to repeat: a card that is already frozen is returned unchanged and successfully. Only report a card as frozen when the call succeeded — an error means it is still live.
| Name | Type | Req | Description |
|---|---|---|---|
| cardId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| card | – | – | – |
No examples provided.
card_get_card Get Card ~63
Returns one card by id: its label, type, state, limits and the last four digits of its number. Read-only. The full card number and CVV are never returned by this or any other tool.
| Name | Type | Req | Description |
|---|---|---|---|
| cardId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| card | – | – | – |
No examples provided.
card_get_card_spend Get Card Spend ~62
Returns how much has been spent on a card over a period, against its limit. Read-only. Use this to answer "how much is left on this card" without adding up transactions by hand.
| Name | Type | Req | Description |
|---|---|---|---|
| cardId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| cardId | – | – | – |
| limitCents | string | – | – |
| limitInterval | string | – | – |
| totalSpentCents | string | – | – |
No examples provided.
card_get_dispute Get Dispute ~79
Reads one card dispute by its id, refreshing its status from the card issuer first. Returns the dispute's card, disputed transaction, amount, status (filed, pending review, accepted, won, lost, rejected, or withdrawn), reason, description, and when it was filed and resolved.
| Name | Type | Req | Description |
|---|---|---|---|
| id | object | – | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| dispute | – | – | – |
No examples provided.
card_get_list_card_disputes List Card Disputes ~128
Lists card disputes. Set filter.card_id to see the disputes filed on one card, or filter.company_id to see every dispute across a company (the caller's access is verified server-side). Returns each dispute's id, card, disputed transaction, amount, status (filed, pending review, accepted, won, lost, rejected, or withdrawn), reason, and when it was filed and resolved. Use page_size and page_token to page through long lists.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | object | – | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| disputes | array | – | – |
| nextPageToken | string | – | – |
| totalCount | integer | – | – |
No examples provided.
card_get_list_cards List Cards ~25
List the caller's own cards.
| Name | Type | Req | Description |
|---|---|---|---|
| includeCanceled | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| cards | array | – | – |
No examples provided.
card_get_list_org_cards List Org Cards ~64
List the active cards of every member of the given company, as a narrow projection. Membership of the AUTHENTICATED caller in company_id is verified server-side — the id selects, it never authorizes.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| orgCards | array | – | – |
No examples provided.
card_unfreeze_card Unfreeze Card ~60
Restore a frozen card at the issuer so it accepts charges again. Safe to repeat: a card that is already active is returned unchanged and successfully. A cancelled card cannot be restored and is rejected.
| Name | Type | Req | Description |
|---|---|---|---|
| cardId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| card | – | – | – |
No examples provided.
card_update_card_spend_limit Update Card Spend Limit ~161
Replace a card's spend limit at the issuer. amount_cents is in CENTS, not dollars — a $500 limit is 50000 — and interval chooses the window the limit resets over. The new limit replaces the old one outright, so this raises spending authority as readily as it lowers it: send the exact amount the user asked for and never round up. Use SPEND_INTERVAL_MONTHLY, SPEND_INTERVAL_DAILY, or SPEND_INTERVAL_TRANSACTION; SPEND_INTERVAL_YEARLY is not supported by the default issuer and is rejected, so convert a yearly figure to a monthly amount and say so.
| Name | Type | Req | Description |
|---|---|---|---|
| amountCents | integer | – | – |
| cardId | object | yes | UUID value wrapper. |
| interval | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| card | – | – | – |
No examples provided.
check_company_name_availability Check Company Name Availability ~96
Checks whether a proposed company or brand name is available as a US trademark and as a domain across common TLDs (.com, .io, .co, .net, .ai, .app). Call this whenever the user proposes or evaluates a name. It is informational only and does not read or change any formation; a partial failure still returns useful results for the side that succeeded.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| domain | – | – | – |
| searchTimeMs | string | – | – |
| searchedAt | string | – | – |
| trademark | – | – | – |
No examples provided.
client_get_client Get Client ~41
Returns one billing client by id — the customer a company invoices — with contact and address details. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| id | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| client | – | – | – |
No examples provided.
client_get_list_clients List Clients ~67
Lists the customers a company invoices. Read-only and paginated. Use this to find a client id before creating an invoice, or to answer "who do we bill".
| Name | Type | Req | Description |
|---|---|---|---|
| filter | object | – | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| clients | array | – | – |
| nextPageToken | string | – | – |
| totalCount | integer | – | – |
No examples provided.
commit_transfer Commit Transfer ~72
Execute a sealed draft after the user approved it on their trusted device. Moves money. If it fails, the draft and approval are spent — a retry needs a fresh draft and a fresh approval.
| Name | Type | Req | Description |
|---|---|---|---|
| approvalSessionId | string | – | – |
| companyId | string | – | – |
| draftId | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| limitDetail | – | – | – |
| paymentId | string | – | – |
| reasons | array | – | – |
| status | string | – | – |
No examples provided.
company_get_company Get Company ~37
GetCompany retrieves a single company by ID or code
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | – |
| id | object | – | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| company | – | – | – |
No examples provided.
company_get_list_companies List Companies ~47
GetListCompanies retrieves a list of companies with filtering and pagination
| Name | Type | Req | Description |
|---|---|---|---|
| filter | object | – | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| companies | array | – | – |
| nextPageToken | string | – | – |
| totalCount | integer | – | – |
No examples provided.
company_get_list_company_members List Company Members ~33
GetListCompanyMembers lists all members of a company
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| members | array | – | – |
No examples provided.
company_get_my_companies Get My Companies ~252
Lists the companies the SIGNED-IN user already belongs to, each with their role, plus that account itself in signed_in_as. Requires authentication. Call this only when the user asks about or wants to act on an EXISTING company. Do NOT call it to start a new formation (use formation_start_formation, which is anonymous) — it is not a required preamble. ALWAYS name the signed_in_as account when you show the list, and especially when the user cannot find a company they expect: you and the person reading your answer may be signed in as different users, and then your list and the one on their screen will not match. Naming the account turns that from a mystery into one sentence. A company they expect but do not see belongs to another account or they were never added as a member — never guess a company_id. To work on a different company from this list, simply pass its company_id to the next tool call: the connection is not tied to one company and the user does NOT have to disconnect and reconnect. Say which company you acted on whenever it is not the one they last mentioned.
| Name | Type | Req | Description |
|---|---|---|---|
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| companies | array | – | – |
| nextPageToken | string | – | – |
| signedInAs | – | – | – |
| totalCount | integer | – | – |
No examples provided.
company_update_company Update Company ~278
UpdateCompany patches mutable company fields in a single call: name, logo_url, aliases, and — for a company Lovie did not incorporate — its entity type, state, formation date, EIN and principal address. name, logo_url and aliases are each left untouched when unset. The five profile fields are NOT: they are written as a group, so a request that sets any one of them states all five, and one left empty is CLEARED rather than kept. Read the company first and send back every profile value you are not deliberately erasing — sending only `ein` will blank the other four. The group is skipped entirely when none of the five is set, so an ordinary rename never touches them. The profile fields are REFUSED for a company whose source is LOVIE_FORMATION. Its formation is the filing of record, and letting the two disagree would mean the certificate says one thing and the dashboard another, with nothing to say which is right. Name and logo stay editable there, as they always were. MCP-exposed so a founder can correct their own company by asking. It writes, and it is neither idempotent nor destructive: it patches named fields on a row the caller already holds company.company.update on.
| Name | Type | Req | Description |
|---|---|---|---|
| company | object | yes | – |
| companyId | object | yes | UUID value wrapper. |
Structured output declared, but exposes no named fields.
No examples provided.
connection_suggest_connections Suggest Connections ~57
SuggestConnections reports providers the company is evidently already paying for, judged from its own transactions, and skips any it has already connected. Read-only — it writes nothing. Connect one with StartConnection.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| suggestions | array | – | – |
No examples provided.
counterparty_get_counterparty Get Counterparty ~32
GetCounterparty retrieves a single counterparty by ID
| Name | Type | Req | Description |
|---|---|---|---|
| id | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| counterparty | – | – | – |
No examples provided.
counterparty_get_list_counterparties List Counterparties ~52
GetListCounterparties retrieves a list of counterparties with filtering and pagination
| Name | Type | Req | Description |
|---|---|---|---|
| filter | object | – | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| counterparties | array | – | – |
| nextPageToken | string | – | – |
| totalCount | integer | – | – |
No examples provided.
counterparty_get_list_global_counterparties List Global Counterparties ~102
GetListGlobalCounterparties performs a read-only batch lookup against the platform-wide canonical vendor registry. The filter accepts a list of provider stable IDs and/or aliases; the response returns every approved row matching ANY selector. Used by the cheap-resolve worker to short-circuit LLM enrichment for a whole batch in one RPC.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | object | yes | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| globalCounterparties | array | – | – |
| nextPageToken | string | – | – |
| totalCount | integer | – | – |
No examples provided.
datatable_get_datatable_fields Get Datatable Fields ~64
Resolve all fields bound to a datatable for a company (platform + company bindings).
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | – | UUID value wrapper. |
| datatableCode | object | yes | Lowercase kebab-case code identifier. |
| includeOptions | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | – |
No examples provided.
datatable_get_list_datatables List Datatables ~45
List datatables (platform + a company's own).
| Name | Type | Req | Description |
|---|---|---|---|
| filter | object | – | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| datatables | array | – | – |
| nextPageToken | string | – | – |
| totalCount | integer | – | – |
No examples provided.
datatable_get_related_datatables Get Related Datatables ~56
Resolve the child datatables related to a parent (for the UI field picker).
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | – | UUID value wrapper. |
| parentDatatableCode | object | yes | Lowercase kebab-case code identifier. |
| Name | Type | Req | Description |
|---|---|---|---|
| related | array | – | – |
No examples provided.
document_template_list_templates List Document Templates ~34
List available legal document templates (YAML catalog).
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| query | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| templates | array | – | – |
No examples provided.
document_template_resolve_template Resolve Document Template ~46
Find the best template match for a natural-language document request. Returns the template slug and its field definitions to collect before DocumentService.CreateDocument.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| alternatives | array | – | – |
| template | – | – | – |
No examples provided.
documents_create_document Create Document ~50
Create a finished document for a company from a template slug and field values.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| fields | array | – | – |
| templateSlug | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| documentId | – | yes | – |
No examples provided.
documents_create_from_user_template Create Document From User Template ~65
Create a finished document by filling a company user-uploaded template with collected field values. Does not modify the original upload.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| fields | array | – | – |
| userTemplateId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| documentId | – | yes | – |
No examples provided.
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.