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.
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 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 |
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 →
account_get_account Get Account ~31
GetAccount retrieves a single account by ID with its details
| Name | Type | Req | Description |
|---|---|---|---|
| id | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| account | – | – | – |
| details | – | – | – |
No examples provided.
account_get_list_account_details List Account Details ~54
GetListAccountDetails retrieves account details in batch (eliminates N+1 GetAccount calls)
| Name | Type | Req | Description |
|---|---|---|---|
| filter | object | – | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| details | array | – | – |
| nextPageToken | string | – | – |
| totalCount | integer | – | – |
No examples provided.
accounting_batch_accept_review_items Batch Accept Review Items ~92
Confirm the categories the posting engine chose for up to 500 transactions, moving them from the pending tab to posted. Each confirmation is written as a user override that AI enrichment never overwrites. Transactions with no resolved category cannot be confirmed and come back in failures — categorize those with transaction_categorize_transaction first.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| transactionIds | array | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| acceptedCount | integer | – | – |
| failures | array | – | – |
No examples provided.
accounting_batch_set_excluded Batch Set Excluded ~112
Exclude up to 500 transactions from the books (set excluded=true) or put them back (excluded=false). Excluding voids the transaction's journal entry and stops the posting engine from re-deriving it, so the amount leaves every report. Use for duplicates, personal spending on a business card, and transfers already recorded elsewhere.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| excluded | boolean | – | – |
| reason | string | – | – |
| transactionIds | array | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| failures | array | – | – |
| updatedCount | integer | – | – |
No examples provided.
accounting_cancel_schedule Cancel Schedule ~57
Cancel an accrual schedule so no further periodic entries are generated. Entries already posted for elapsed periods are kept. Audit-logged.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| scheduleId | object | yes | UUID value wrapper. |
Structured output declared, but exposes no named fields.
No examples provided.
accounting_close_period Close Period ~155
Close an accounting period: lock the window [start_date, end_date] and post a balanced closing entry that rolls the period's net income into equity (current-year earnings for a month/quarter close, retained earnings for a fiscal-year close). Periods must not overlap an existing closed period. After closing, writes dated inside the window are rejected until the period is reopened. Re-closing the same window is a no-op. Multi-currency companies get one closing entry per currency. Every close is audit-logged.
| Name | Type | Req | Description |
|---|---|---|---|
| basis | string | – | – |
| companyId | object | yes | UUID value wrapper. |
| endDate | string | – | – |
| granularity | string | – | – |
| startDate | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| period | – | – | – |
No examples provided.
accounting_confirm_statement_match Confirm Statement Match ~74
Record that a ledger transaction settles a bank-statement line, or clear an existing match by omitting the transaction. Refused once the statement is closed.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| lineId | object | yes | UUID value wrapper. |
| transactionId | object | – | UUID value wrapper. |
Structured output declared, but exposes no named fields.
No examples provided.
accounting_confirm_transfer_pair Confirm Transfer Pair ~86
Confirm that two journal entries are the two halves of one transfer. The entry named first is reposted from funding account to funding account; the counterpart's transaction is excluded so the movement is counted once.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| counterpartJournalEntryId | object | yes | UUID value wrapper. |
| journalEntryId | object | yes | UUID value wrapper. |
Structured output declared, but exposes no named fields.
No examples provided.
accounting_create_schedule Create Schedule ~183
Create an accrual schedule that spreads a total amount across N monthly periods as accrual-only adjusting entries (e.g. amortize a prepaid, defer revenue, depreciate an asset). Each period posts Dr debit_gl_account / Cr credit_gl_account for its share; the split is straight-line with any rounding remainder on the final period. Pick gl_account_id values from accounting_get_chart_of_accounts. Cash-basis reports are unaffected.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| creditGlAccountId | object | yes | UUID value wrapper. |
| currencyCode | string | – | – |
| debitGlAccountId | object | yes | UUID value wrapper. |
| kind | string | – | – |
| periodCount | integer | – | – |
| sourceTransactionId | object | – | UUID value wrapper. |
| startDate | string | – | – |
| totalAmount | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| schedule | – | – | – |
No examples provided.
accounting_delete_journal_entry Delete Journal Entry ~121
Delete or void a journal entry. For entries tied to a transaction prefer re-categorizing the transaction (the entry re-derives). Deleting a derived entry is temporary — the engine re-creates it on the next sync; deleting a manual per-transaction override reverts the transaction to its automatic entry; a standalone manual entry is voided (kept for audit, excluded from reports). Every outcome is audit-logged.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| journalEntryId | object | yes | UUID value wrapper. |
Structured output declared, but exposes no named fields.
No examples provided.
accounting_get_balance_sheet Get Balance Sheet ~77
GetBalanceSheet returns assets, liabilities, and equity balances as of a date; equity includes net income to date, so the sheet always balances. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| asOfDate | string | – | – |
| basis | string | – | – |
| companyId | object | yes | UUID value wrapper. |
| currencyCode | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| assetRows | array | – | – |
| currencyCode | string | – | – |
| equityRows | array | – | – |
| liabilityRows | array | – | – |
| netIncomeToDate | string | – | – |
| totalAssets | string | – | – |
| totalEquity | string | – | – |
| totalLiabilities | string | – | – |
| totalLiabilitiesAndEquity | string | – | – |
No examples provided.
accounting_get_chart_of_accounts Get Chart Of Accounts ~56
GetChartOfAccounts returns the company's chart of accounts (flat list with parent links; build the tree client-side). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| includeInactive | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| accounts | array | – | – |
No examples provided.
accounting_get_funding_summaries Get Funding Summaries ~65
Per bank account and card, the balance the books show and how many posted entries came through it. Compare with the bank's own balance from account tools; a difference is what reconciliation resolves. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| summaries | array | – | – |
No examples provided.
accounting_get_general_ledger Get General Ledger ~107
GetGeneralLedger pages through one account's posted lines with opening, running, and closing balances — the account register. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| basis | string | – | – |
| companyId | object | yes | UUID value wrapper. |
| currencyCode | string | – | – |
| endDate | string | – | – |
| glAccountId | object | yes | UUID value wrapper. |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| startDate | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| closingBalance | string | – | – |
| currencyCode | string | – | – |
| nextPageToken | string | – | – |
| openingBalance | string | – | – |
| rows | array | – | – |
| totalCount | integer | – | – |
No examples provided.
accounting_get_gl_account_type_catalog Get Gl Account Type Catalog ~74
GetGLAccountTypeCatalog returns every account type with the detail types it admits and the classification it implies — what the New account panel needs to populate its two dependent selects without duplicating the pairing rules. Static per release; safe to cache. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| options | array | – | – |
No examples provided.
accounting_get_journal_entry_by_transaction Get Journal Entry By Transaction ~58
GetJournalEntryByTransaction returns the journal entry derived for one transaction (empty when none exists yet). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| transactionId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| entry | – | – | – |
No examples provided.
accounting_get_list_journal_entries List Journal Entries ~72
GetListJournalEntries pages through the journal register with filters — the review queue is filter{needs_review: true}. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| filter | object | – | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| entries | array | – | – |
| nextPageToken | string | – | – |
| totalCount | integer | – | – |
No examples provided.
accounting_get_list_periods List Periods ~60
GetListPeriods pages through a company's periods, newest first. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| filter | object | – | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| nextPageToken | string | – | – |
| periods | array | – | – |
| totalCount | integer | – | – |
No examples provided.
accounting_get_list_review_items List Review Items ~150
List bank transactions awaiting bookkeeping review. Tabs: PENDING (the posting engine picked a category, or none, and nobody has confirmed it), POSTED (a human confirmed or set the category), EXCLUDED (deliberately kept out of the books). Each row carries the cleaned counterparty name, the raw bank memo, the absolute amount with a money-in/money-out direction, the effective category, the income/expense account it books to, and a confidence marker. Returns counters for all three tabs alongside the page.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| filter | object | – | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| counts | – | – | – |
| items | array | – | – |
| nextPageToken | string | – | – |
| totalCount | integer | – | – |
No examples provided.
accounting_get_list_schedules List Schedules ~57
GetListSchedules pages through a company's schedules. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| filter | object | – | – |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| nextPageToken | string | – | – |
| schedules | array | – | – |
| totalCount | integer | – | – |
No examples provided.
accounting_get_list_statements List Statements ~60
List the bank statements imported for reconciliation, newest period first, with how many of each statement's lines are still unmatched. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | object | – | UUID value wrapper. |
| companyId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| statements | array | – | – |
No examples provided.
accounting_get_period Get Period ~43
GetPeriod returns one closed period by id. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| periodId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| period | – | – | – |
No examples provided.
accounting_get_profit_and_loss Get Profit And Loss ~81
GetProfitAndLoss returns the income statement for a period: revenue and expense accounts with activity, totals, and net income. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| basis | string | – | – |
| companyId | object | yes | UUID value wrapper. |
| currencyCode | string | – | – |
| endDate | string | – | – |
| startDate | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| currencyCode | string | – | – |
| expenseRows | array | – | – |
| netIncome | string | – | – |
| revenueRows | array | – | – |
| totalExpenses | string | – | – |
| totalRevenue | string | – | – |
No examples provided.
accounting_get_review_counts Get Review Counts ~49
Count bank transactions per bookkeeping review tab (pending, posted, excluded) without fetching rows. Use to report how much review work is outstanding.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| counts | – | – | – |
No examples provided.
accounting_get_schedule Get Schedule ~43
GetSchedule returns one schedule with its postings. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| scheduleId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| schedule | – | – | – |
No examples provided.
accounting_get_statement Get Statement ~43
One statement with its lines and their matches. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| statementId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| statement | – | – | – |
No examples provided.
accounting_get_trial_balance Get Trial Balance ~81
GetTrialBalance returns every account's debit and credit totals for a period; total debits equal total credits when the books balance. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| basis | string | – | – |
| companyId | object | yes | UUID value wrapper. |
| currencyCode | string | – | – |
| endDate | string | – | – |
| startDate | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| currencyCode | string | – | – |
| rows | array | – | – |
| totalCredits | string | – | – |
| totalDebits | string | – | – |
No examples provided.
accounting_list_accounting_audit_events List Accounting Audit Events ~94
ListAccountingAuditEvents pages through the append-only accounting audit log — who changed what and when across journal entries and the chart of accounts, newest first. Filter by entity_id for one record's history. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| entityId | object | – | UUID value wrapper. |
| pageSize | integer | – | – |
| pageToken | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| events | array | – | – |
| nextPageToken | string | – | – |
| totalCount | integer | – | – |
No examples provided.
accounting_preview_close Preview Close ~120
PreviewClose computes the per-currency revenue/expense totals and the net income a close would roll, without writing anything, and reports what still blocks the close along with what closing carries with it. The blockers come from the function ClosePeriod refuses on, so a clean preview means the close will not be refused for a precondition. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| basis | string | – | – |
| companyId | object | yes | UUID value wrapper. |
| endDate | string | – | – |
| granularity | string | – | – |
| startDate | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| blockers | array | – | – |
| notices | array | – | – |
| previews | array | – | – |
No examples provided.
accounting_preview_schedule Preview Schedule ~57
PreviewSchedule computes the straight-line per-period split for the given amount and period count without persisting anything. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| periodCount | integer | – | – |
| startDate | string | – | – |
| totalAmount | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| postings | array | – | – |
No examples provided.
accounting_propose_schedules Propose Schedules ~100
Scan a company's recent posted transactions and suggest accrual schedules (e.g. amortize a large annual prepaid over 12 months). Returns proposals only — nothing is created until you confirm one by calling accounting_create_schedule with the proposal's fields. Each proposal carries the suggested kind, total amount, start date, period count, debit/credit GL accounts, the source transaction, and a rationale.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| proposals | array | – | – |
No examples provided.
accounting_reopen_period Reopen Period ~71
Reopen a closed accounting period: void its closing entry(ies) and lift the write lock so entries dated inside the window can be edited and the period re-closed. Audit-logged.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| periodId | object | yes | UUID value wrapper. |
Structured output declared, but exposes no named fields.
No examples provided.
accounting_set_opening_balance Set Opening Balance ~144
Record a bank account or card's opening balance: the money it already held before the transaction feed's history begins. Posts one journal entry against Opening Balance Equity, dated the day the books open. Without it the books differ from the bank by everything that happened before the feed, and every account looks unreconciled. Pass the amount to establish, not the difference — positive for an asset, negative for money already owed.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | object | – | UUID value wrapper. |
| amount | string | – | – |
| asOfDate | string | – | – |
| cardId | object | – | UUID value wrapper. |
| companyId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| journalEntryId | – | – | – |
No examples provided.
accounting_suggest_statement_matches Suggest Statement Matches ~68
Rank ledger transactions against a statement's unmatched lines. Amount must match exactly; date proximity and description then rank the candidates. Writes nothing — apply one with accounting_confirm_statement_match.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| statementId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| matches | array | – | – |
No examples provided.
accounting_suggest_transfer_pairs Suggest Transfer Pairs ~79
Rank the journal entries that could be the other half of a transfer between the company's own accounts: opposite direction, same amount, different instrument, dated within a few days. Writes nothing — apply one with accounting_confirm_transfer_pair.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| journalEntryId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| candidates | array | – | – |
No examples provided.
accounting_unpair_transfer Unpair Transfer ~47
Undo a confirmation: the mirror returns and both halves are re-derived.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | object | yes | UUID value wrapper. |
| journalEntryId | object | yes | UUID value wrapper. |
Structured output declared, but exposes no named fields.
No examples provided.
accounting_upsert_journal_entry Upsert Journal Entry ~127
Create or replace a double-entry journal entry (manual adjustment or per-transaction override). Lines must balance: total debits == total credits, 2-64 lines, positive decimal amounts with the sign carried by side. Pick gl_account_id values from accounting_get_chart_of_accounts (postable accounts only). An entry with transaction_id replaces that transaction's derived entry and is preserved across re-enrichment. The entry is recorded as source=user and status=POSTED regardless of what is supplied, and every save is written to the audit log.
| Name | Type | Req | Description |
|---|---|---|---|
| entry | object | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| journalEntryId | – | yes | – |
| skipped | boolean | – | – |
No examples provided.
ads_insight_summarize_ad_spend Summarize Ad Spend ~88
SummarizeAdSpend unions the four ad platforms' daily campaign tables at read time into per-(provider, month, currency) spend/impressions/clicks/ conversions plus a per-currency CPA. Read-time only — no new storage.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | – | – |
| periodEnd | string | – | – |
| periodStart | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| rows | array | – | – |
No examples provided.
ads_insight_summarize_campaign_window Summarize Campaign Window ~101
SummarizeCampaignWindow summarises one charge against the campaigns in its billing window. Results are cached per company + account + window + charge, so repeated panel opens do not re-run the agent.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | – |
| chargeAmount | string | – | – |
| companyId | string | – | – |
| periodEnd | string | – | – |
| periodStart | string | – | – |
| provider | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| cached | boolean | – | – |
| generatedAt | – | – | – |
| highlights | array | – | – |
| summary | string | – | – |
No examples provided.
approval_session_create_approval_session Create Approval Session ~165
Opens a sensitive-action approval on the user's own trusted device: a push notification asks them to approve on their phone. Use before tools that demand an approval (the domain auth-code reveal, the trademark firm handoff, the ITIN submit): create the session with the exact action_type and payload the tool documents, tell the user to check their phone, poll get-approval-session-status until APPROVED, then pass the session id to the gated tool. Sessions expire in minutes and are consumed single-use.
| Name | Type | Req | Description |
|---|---|---|---|
| actionDescription | string | – | – |
| actionPayload | object | – | – |
| actionType | string | – | – |
| originLocation | string | – | – |
| originPlatform | string | – | – |
| originTrustedDeviceId | object | – | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| expiresAt | – | – | – |
| sessionId | – | yes | – |
No examples provided.
approval_session_get_approval_session_status Get Approval Session Status ~47
GetApprovalSessionStatus is a lightweight poll (status only) for the gated action to check whether it can proceed
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | – |
| updatedAt | – | – | – |
No examples provided.
autonomous_pay Submit Payment ~77
Submit a signed payment mandate for autonomous execution. Runs the four-check pipeline and the per-agent autonomy fence; payments outside the agent's envelope are gated to human approval.
| Name | Type | Req | Description |
|---|---|---|---|
| jcsHash | string | – | – |
| mandateBodyJson | string | – | – |
| serviceLevel | string | – | – |
| signatureB64url | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| audit | – | – | – |
| feeCents | string | – | – |
| paymentId | string | – | – |
| reason | string | – | – |
| reasons | array | – | – |
| status | string | – | – |
No examples provided.
banking_confirm_extracted_value Confirm Extracted Value ~62
ConfirmExtractedValue records that a human checked a read value. Without it a low-confidence extraction holds its section open forever and the application can never be submitted.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | object | yes | UUID value wrapper. |
| fieldPath | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| application | – | – | – |
No examples provided.
banking_confirm_initial_transfer Confirm Initial Transfer ~83
Records the opening deposit a founder chose for their banking application. This stores an intention only — it does not move money, and no funds are transferred by any part of Lovie today. Never tell the user their deposit has been sent.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | – | – |
| applicationId | object | yes | UUID value wrapper. |
| currencyCode | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| initialTransfer | – | – | – |
No examples provided.
banking_extract_document_fields Extract Document Fields ~86
Reads an uploaded document on a banking application — a Certificate of Incorporation or an IRS EIN letter — and fills in the values it states, each marked with where it came from and how confident the read was. It never sets the industry classification: no document states it.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | object | yes | UUID value wrapper. |
| documentId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| application | – | – | – |
| fields | array | – | – |
No examples provided.
banking_get_banking_application Get Banking Application ~148
GetBankingApplication returns the whole application: the business facts, the beneficial owners, the uploaded documents, what each value's source was, and the sections still outstanding. It is the one read for answering "where is my application, and what is left?". It carries only the last four digits of the employer identification number and of each owner's tax identifier. The undivided values live in the secret store, and reading the identification number back is a separate RPC that is deliberately not a tool — a whole identifier in a tool call is a whole identifier in a transcript.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | object | – | UUID value wrapper. |
| companyId | object | – | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| application | – | – | – |
No examples provided.
banking_get_initial_transfer_preview Get Initial Transfer Preview ~49
Returns the suggested opening deposit for a banking application and the reason for that figure. Read-only: it moves no money and records nothing.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| available | boolean | – | – |
| currencyCode | string | – | – |
| etaAt | – | – | – |
| fromInstitution | – | – | – |
| fromMask | string | – | – |
| reasoning | string | – | – |
| suggestedAmount | string | – | – |
No examples provided.
banking_get_issuance_state Get Issuance State ~121
GetIssuanceState reports where this application's deposit account stands: whether it is queued, being opened, open, or could not be opened, and the last four digits once there are any. It exists as its own state so that an approved application is never mistaken for an open account. Approval is our banking partner accepting the corporation; opening happens after it and can still fail, so a caller that wants to tell somebody they can receive money must read this, not the application's status.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| issuance | – | – | – |
No examples provided.
banking_hydrate_from_cap_table Hydrate From Cap Table ~71
HydrateFromCapTable carries the company's carriable stakeholders onto an open application as beneficial owners. Idempotent: the stakeholder link identifies them, so running twice updates rather than duplicates, and an owner the applicant corrected keeps their correction.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| application | – | – | – |
No examples provided.
banking_hydrate_from_formation Hydrate From Formation ~62
HydrateFromFormation is idempotent: it writes values and their provenance in one transaction and never overwrites something the applicant supplied.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | object | yes | UUID value wrapper. |
| formationId | object | yes | UUID value wrapper. |
| Name | Type | Req | Description |
|---|---|---|---|
| application | – | – | – |
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 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.