Skip to main content
Glama

Corply — Start and run your company

Start or continue a company incorporation application

save_application

Create or continue the real incorporation application when a founder asks to open, start, register or incorporate a company, alone or with cofounders. Verify the account with whoami before the first intake save; ask only missing facts, never invent founder choices. Supports Delaware C-corps only (structure=c_corp,jurisdiction=US-DE). Other formation paths are unavailable; never replace a requested entity or state without the founder choosing the supported path. Each company is separate. When the founder wants another company, generate a newCompanyRequestId UUID and omit companyId; reuse that UUID on retries. This creates a new company and application, leaves existing companies untouched and, where this connection can switch companies, moves it to the new company. Then save using the returned companyId; never reuse the creation request to edit. Deep-merge upsert of the structured formation application for a company: incremental saves merge over what's already stored — a partial payload never wipes untouched sections. This reversible intake save needs no confirmation. Saving does not send welcome email. Save your own row with the whoami email early: results carry ownProfileSuggestion and, once personal details are complete, ownDetailsReview (never a DOB value). Show one Confirm details / Change something review, then call confirm_own_details with the exact reviewId; do not reconstruct unchanged values. Saved addresses never need lookup or separate confirmation. New or changed addresses must match a Google listing with a postal code; select and resolve the match, then save it without another address confirmation. Disclosed defaults are saved for your own row and mentioned once. useOwnProfileFields remains for older clients only. founders replaces the whole roster, so every founders payload lists every founder. Save other founders by email first; inspect founderIdentities[].status before asking for personal details. awaiting_founder means do not request or supply their personal details: their own account must approve them. draft means optional incorporator-supplied suggestions, pending that person’s review. Saving founders sends each other founder's company invitation automatically once the company is named (no separate confirmation); results carry invitations, and changing or removing a founder's email revokes its pending invitation. If an address is wrong, correct it or call revoke_invite. Continue company name, roles, equity and other independent work while invitations are pending. Documents require invitation acceptance and identity approval; signatures remain separate. Ask only the person for missing private profile information; never repeat DOB in summaries. Save founders[].attestedLegalName equal to the incorporator's own name only after they confirm it is their full legal name exactly as on their government ID. For Delaware restricted shares, the standard configuration includes an 83(b) election. Explain that tax-election choice separately from its filing service: offer Corply-managed mail or personal filing with no Corply 83(b) fee. Save founders[].election83bFilingMethod=corply or self while elects83b remains true; self means the founder personally signs/files, Corply never executes or mails it, and reminders continue until proof review. Never request a TIN or IRS credentials in chat. Offer fully vested common stock as an alternative to the default vesting schedule: save founders[].equityTreatment=fully_vested for each founder choosing no vesting. That branch uses an SPA and automatically skips vesting fields and every 83(b) step. Teams may mix treatments; omitted equityTreatment preserves the existing vesting default. The signing bundle captures the applicable authorization. It refuses changes to a frozen legal packet. Use amend_frozen_application after explicit founder confirmation when documents and signatures must be superseded. Returns { formationId, standardConfiguration, nextStep, questionBatch?, intakeDecisions?, founderInvitations?, ownProfileSuggestion?, disclosedDefaults? }; use that configuration instead of generic capitalization advice, follow questionBatch when present, otherwise intakeDecisions. Save answered patches together; expand fields for requested changes. Prerequisite: authenticated active company access plus every prerequisite stated above. Canonicality: invokes the shared backend action; trust the returned actual_tool_output and context_engineering instead of adding a state-recovery call. Idempotency: obey the tool-specific retry key or guarantee; if none is stated, inspect refreshed state before retrying. Confirmation boundary: no additional confirmation is needed for this read, reversible save, explicit fact/evidence record, link preparation, plan refresh, or action pre-authorized by a standing founder-configured policy.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes
companyIdNoConnected company ID from whoami or the previous save result; another company needs a company switch first. Never pass a formationId.
founderChangesNoAnswered founder fields keyed by saved id; preserves the roster and private details. Combine questionBatch answers in one save.
_corply_contextNo
expectedDataHashNoCurrent data_hash from the latest result or get_status.revisionHistory; rejects concurrent edits.
officeAssignmentsNoResolve exclusive positions together; each assignment replaces all holders of that position.
expectedRevisionIdNoCurrent revision from the latest result or get_status.revisionHistory; prevents overwriting a stale version.
newCompanyRequestIdNoAgent-generated UUID for an explicitly requested new incorporation. Reuse on retry; omit companyId. Never ask the founder to supply this technical ID.
useOwnProfileFieldsNoLegacy compatibility: after confirming ownProfileSuggestion, copy on-file fields into blank fields of the caller's own row. Prefer ownDetailsReview and confirm_own_details, which confirm an exact server-held version without resending values. Never look up a saved address or repeat DOB in chat.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • removedInput schema / properties / data / properties / founders / items / properties / capitalContribution
      Removed value: -{
      -  "description": "Florida LLC only: member cash capital contribution in USD, e.g. \"100.00\" or \"0\". Confirm this amount with the member; do not infer it.",
      -  "type": "string"
      -}
    • changedInput schema / properties / data / properties / founders / items / properties / dateOfBirth / description
      Previous value: -"For Delaware corporations, collect date of birth in YYYY-MM-DD from that person during identity review. Never ask an incorporator to supply another established account’s private information. Not required for Florida LLC filing. Never infer from age or other facts, and do not repeat in summaries."New value: +"For Delaware corporations, collect date of birth in YYYY-MM-DD from that person during identity review. Never ask an incorporator to supply another established account’s private information. Never infer from age or other facts, and do not repeat in summaries."
    • removedInput schema / properties / data / properties / founders / items / properties / ownershipPercent
      Removed value: -{
      -  "description": "Florida LLC only: fully vested membership ownership percentage, e.g. \"60\". All members must total exactly 100.",
      -  "type": "string"
      -}
    • changedInput schema / properties / data / properties / jurisdiction / description
      Previous value: -"Formation state as a US-XX code. Automated C-corps support US-DE only: when no state was requested, use Delaware and disclose it in the normal setup review, without a separate state question. For an unspecified LLC state, offer and confirm Florida (US-FL). Never silently replace a state the user requested or infer it from their address."New value: +"Formation state as a US-XX code. Automated C-corps support US-DE only: when no state was requested, use Delaware and disclose it in the normal setup review, without a separate state question. Never silently replace a state the user requested or infer it from their address."
    • changedInput schema / properties / data / properties / jurisdiction / enum
      Previous value: -[
      -  "US-WY",
      -  "US-FL",
      -  "US-DE",
      -  "US-TX"
      -]New value: +[
      +  "US-WY",
      +  "US-DE",
      +  "US-TX"
      +]
    • removedInput schema / properties / data / properties / llc
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "mailingAddress": {
      -      "additionalProperties": false,
      -      "description": "Business mailing address; defaults to the principal address when omitted.",
      -      "properties": {
      -        "city": {
      -          "type": "string"
      -        },
      -        "country": {
      -          "description": "Two-letter country code, e.g. \"US\".",
      -          "type": "string"
      -        },
      -        "state": {
      -          "type": "string"
      -        },
      -        "street": {
      -          "type": "string"
      -        },
      -        "street2": {
      -          "type": "string"
      -        },
      -        "zip": {
      -          "type": "string"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "management": {
      -      "const": "member_managed",
      -      "description": "The supported Florida LLC is managed by its members; manager-managed arrangements require a separate legal workflow.",
      -      "type": "string"
      -    },
      -    "organizerFounderId": {
      -      "description": "A saved founder id. Defaults to the first member and signs the Articles as authorized representative.",
      -      "type": "string"
      -    },
      -    "ownershipConfirmed": {
      -      "type": "boolean"
      -    },
      -    "principalAddress": {
      -      "additionalProperties": false,
      -      "description": "Physical principal business address; a PO box is not accepted.",
      -      "properties": {
      -        "city": {
      -          "type": "string"
      -        },
      -        "country": {
      -          "description": "Two-letter country code, e.g. \"US\".",
      -          "type": "string"
      -        },
      -        "state": {
      -          "type": "string"
      -        },
      -        "street": {
      -          "type": "string"
      -        },
      -        "street2": {
      -          "type": "string"
      -        },
      -        "zip": {
      -          "type": "string"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "taxClassification": {
      -      "const": "default",
      -      "description": "Default federal classification: disregarded entity for one member or partnership for multiple members; no corporate tax election.",
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • changedInput schema / properties / data / properties / structure / description
      Previous value: -"The legal form being formed. Automated formation supports Delaware C corporations and Florida member-managed LLCs with fully vested membership interests and default federal tax classification."New value: +"The legal form being formed. Automated formation supports Delaware C corporations only."
  2. Changed3 schema fields changed
    • addedInput schema / properties / data / properties / intakeServices
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional company setup preferences; skip persists. Domain addresses do not replace founder login or invitation emails.",
      +  "properties": {
      +    "companyPhone": {
      +      "type": "boolean"
      +    },
      +    "emailDomain": {
      +      "enum": [
      +        "register",
      +        "connect",
      +        "skip"
      +      ],
      +      "type": "string"
      +    },
      +    "founderMailboxes": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / founderChanges
      Added value: +{
      +  "description": "Answered founder fields keyed by saved id; preserves the roster and private details. Combine questionBatch answers in one save.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "cliffMonths": {
      +        "type": "string"
      +      },
      +      "election83bFilingMethod": {
      +        "description": "83(b) filing service choice: self means the founder files personally using IRS Form 15620 (online when eligible) and Corply provides instructions, deadline reminders and evidence review at no managed-filing fee. corply means paid managed Certified Mail filing with separate personal authorization and secure taxpayer-number entry. Legacy omission means corply. Keep elects83b=true for either filing method; never label self-filing as declining the election. Offer both choices before payment.",
      +        "enum": [
      +          "corply",
      +          "self"
      +        ],
      +        "type": "string"
      +      },
      +      "equityTreatment": {
      +        "description": "Per-founder stock purchase choice. Standard vesting is the default; also offer fully_vested for common shares owned in full on issuance: SPA, no vesting schedule or 83(b) election. Omitted legacy values mean vesting; never infer this choice from zero months.",
      +        "enum": [
      +          "vesting",
      +          "fully_vested"
      +        ],
      +        "type": "string"
      +      },
      +      "f1WorkAuthorization": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "none",
      +              "cpt",
      +              "opt",
      +              "stem_opt",
      +              "other"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "id": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "immigrationStatus": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "f1",
      +              "h1b",
      +              "o1",
      +              "l1",
      +              "other"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "positions": {
      +        "items": {
      +          "enum": [
      +            "Chief Executive Officer",
      +            "President",
      +            "Secretary",
      +            "Chief Financial Officer",
      +            "Treasurer",
      +            "Chief Operating Officer",
      +            "Chief Technology Officer",
      +            "Chief Information Officer",
      +            "director",
      +            "board_chair"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "shares": {
      +        "type": "string"
      +      },
      +      "usCitizenOrPermanentResident": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "usTaxpayer": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "vestingMonths": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / officeAssignments
      Added value: +{
      +  "description": "Resolve exclusive positions together; each assignment replaces all holders of that position.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "founderId": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "position": {
      +        "enum": [
      +          "Chief Executive Officer",
      +          "President",
      +          "Secretary",
      +          "Chief Financial Officer",
      +          "Treasurer",
      +          "Chief Operating Officer",
      +          "Chief Technology Officer",
      +          "Chief Information Officer",
      +          "board_chair"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "position",
      +      "founderId"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / data / properties / jurisdiction / description
      Previous value: -"Formation state as a US-XX code, e.g. 'US-DE'. Ask the founder which state before promoting the application to ready; never assume one."New value: +"Formation state as a US-XX code. Automated C-corps support US-DE only: when no state was requested, use Delaware and disclose it in the normal setup review, without a separate state question. For an unspecified LLC state, offer and confirm Florida (US-FL). Never silently replace a state the user requested or infer it from their address."
  4. Changed36 schema fields changed
    • removedInput schema / properties / _corply_context / description
      Removed value: -"Echo context_engineering.context_session from the prior Corply result."
    • changedInput schema / properties / companyId / description
      Previous value: -"corply_companies.id (from get_org). OMIT it — the server auto-attaches the org's company. NEVER pass a formationId here."New value: +"Connected company ID from whoami or the previous save result; another company needs a company switch first. Never pass a formationId."
    • addedInput schema / properties / data / properties / founders / items / properties / attestedLegalName
      Added value: +{
      +  "description": "Set to the founder's name only after that founder personally confirms it is their full legal name exactly as on their government ID. Never set it for another person; invited founders confirm when they approve their own details.",
      +  "type": "string"
      +}
    • addedInput schema / properties / data / properties / founders / items / properties / boardChair
      Added value: +{
      +  "description": "Chairperson of the Board. At most one founder, who must be a director.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / data / properties / founders / items / properties / capitalContribution
      Added value: +{
      +  "description": "Florida LLC only: member cash capital contribution in USD, e.g. \"100.00\" or \"0\". Confirm this amount with the member; do not infer it.",
      +  "type": "string"
      +}
    • addedInput schema / properties / data / properties / founders / items / properties / dateOfBirth
      Added value: +{
      +  "anyOf": [
      +    {
      +      "const": "",
      +      "type": "string"
      +    },
      +    {
      +      "format": "date",
      +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +      "type": "string"
      +    }
      +  ],
      +  "description": "For Delaware corporations, collect date of birth in YYYY-MM-DD from that person during identity review. Never ask an incorporator to supply another established account’s private information. Not required for Florida LLC filing. Never infer from age or other facts, and do not repeat in summaries."
      +}
    • addedInput schema / properties / data / properties / founders / items / properties / election83bFilingMethod
      Added value: +{
      +  "description": "83(b) filing service choice: self means the founder files personally using IRS Form 15620 (online when eligible) and Corply provides instructions, deadline reminders and evidence review at no managed-filing fee. corply means paid managed Certified Mail filing with separate personal authorization and secure taxpayer-number entry. Legacy omission means corply. Keep elects83b=true for either filing method; never label self-filing as declining the election. Offer both choices before payment.",
      +  "enum": [
      +    "corply",
      +    "self"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / data / properties / founders / items / properties / elects83b / description
      Previous value: -"Defaults to true for standard restricted founder shares. Agents must not ask this during intake."New value: +"Defaults to true for restricted founder shares; forced false for fully_vested shares. Agents must not ask this during intake."
    • addedInput schema / properties / data / properties / founders / items / properties / equityTreatment
      Added value: +{
      +  "description": "Per-founder stock purchase choice. Standard vesting is the default; also offer fully_vested for common shares owned in full on issuance: SPA, no vesting schedule or 83(b) election. Omitted legacy values mean vesting; never infer this choice from zero months.",
      +  "enum": [
      +    "vesting",
      +    "fully_vested"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / data / properties / founders / items / properties / f1WorkAuthorization / default
      Removed value: -null
    • addedInput schema / properties / data / properties / founders / items / properties / identityStatus
      Added value: +{
      +  "description": "Server-owned identity review state; cannot grant consent.",
      +  "enum": [
      +    "self",
      +    "approved",
      +    "draft",
      +    "awaiting_founder"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / data / properties / founders / items / properties / immigrationStatus / default
      Removed value: -null
    • addedInput schema / properties / data / properties / founders / items / properties / name / default
      Added value: +""
    • changedInput schema / properties / data / properties / founders / items / properties / name / description
      Previous value: -"Founder's full legal name."New value: +"Full legal name. Leave blank while another founder’s identity is awaiting their consent."
    • removedInput schema / properties / data / properties / founders / items / properties / name / minLength
      Removed value: -1
    • addedInput schema / properties / data / properties / founders / items / properties / officerTitles
      Added value: +{
      +  "description": "Offices this founder holds, e.g. [\"Chief Executive Officer\", \"President\"]. Each office has one holder; one founder may hold several. A Delaware corporation needs a Chief Executive Officer, a President and a Secretary. Omit on older drafts to keep their CEO and incorporator flags.",
      +  "items": {
      +    "enum": [
      +      "Chief Executive Officer",
      +      "President",
      +      "Secretary",
      +      "Chief Financial Officer",
      +      "Treasurer",
      +      "Chief Operating Officer",
      +      "Chief Technology Officer",
      +      "Chief Information Officer"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / data / properties / founders / items / properties / ownershipPercent
      Added value: +{
      +  "description": "Florida LLC only: fully vested membership ownership percentage, e.g. \"60\". All members must total exactly 100.",
      +  "type": "string"
      +}
    • addedInput schema / properties / data / properties / founders / items / properties / taxResidencyDefaultDeclined
      Added value: +{
      +  "description": "Set true on your own row when you correct, or are unsure about, the disclosed US citizen/taxpayer default, so Corply never applies it again.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / data / properties / founders / items / properties / usCitizenOrPermanentResident / default
      Removed value: -null
    • removedInput schema / properties / data / properties / founders / items / properties / usTaxpayer / default
      Removed value: -null
    • changedInput schema / properties / data / properties / founders / items / required
      Previous value: -[
      -  "id",
      -  "name",
      -  "email",
      -  "address",
      -  "title",
      -  "isIncorporator",
      -  "isDirector",
      -  "isOfficer",
      -  "usTaxpayer",
      -  "usCitizenOrPermanentResident",
      -  "immigrationStatus",
      -  "f1WorkAuthorization",
      -  "shares",
      -  "purchasePrice",
      -  "vestingMonths",
      -  "cliffMonths",
      -  "vestingStart",
      -  "stockPurchaseDate",
      -  "elects83b",
      -  "election83bConfirmed"
      -]New value: +[
      +  "id",
      +  "name",
      +  "email",
      +  "address",
      +  "title",
      +  "isIncorporator",
      +  "isDirector",
      +  "isOfficer",
      +  "shares",
      +  "purchasePrice",
      +  "vestingMonths",
      +  "cliffMonths",
      +  "vestingStart",
      +  "stockPurchaseDate",
      +  "elects83b",
      +  "election83bConfirmed"
      +]
    • addedInput schema / properties / data / properties / jurisdiction
      Added value: +{
      +  "description": "Formation state as a US-XX code, e.g. 'US-DE'. Ask the founder which state before promoting the application to ready; never assume one.",
      +  "enum": [
      +    "US-WY",
      +    "US-FL",
      +    "US-DE",
      +    "US-TX"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / data / properties / llc
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "mailingAddress": {
      +      "additionalProperties": false,
      +      "description": "Business mailing address; defaults to the principal address when omitted.",
      +      "properties": {
      +        "city": {
      +          "type": "string"
      +        },
      +        "country": {
      +          "description": "Two-letter country code, e.g. \"US\".",
      +          "type": "string"
      +        },
      +        "state": {
      +          "type": "string"
      +        },
      +        "street": {
      +          "type": "string"
      +        },
      +        "street2": {
      +          "type": "string"
      +        },
      +        "zip": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "management": {
      +      "const": "member_managed",
      +      "description": "The supported Florida LLC is managed by its members; manager-managed arrangements require a separate legal workflow.",
      +      "type": "string"
      +    },
      +    "organizerFounderId": {
      +      "description": "A saved founder id. Defaults to the first member and signs the Articles as authorized representative.",
      +      "type": "string"
      +    },
      +    "ownershipConfirmed": {
      +      "type": "boolean"
      +    },
      +    "principalAddress": {
      +      "additionalProperties": false,
      +      "description": "Physical principal business address; a PO box is not accepted.",
      +      "properties": {
      +        "city": {
      +          "type": "string"
      +        },
      +        "country": {
      +          "description": "Two-letter country code, e.g. \"US\".",
      +          "type": "string"
      +        },
      +        "state": {
      +          "type": "string"
      +        },
      +        "street": {
      +          "type": "string"
      +        },
      +        "street2": {
      +          "type": "string"
      +        },
      +        "zip": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "taxClassification": {
      +      "const": "default",
      +      "description": "Default federal classification: disregarded entity for one member or partnership for multiple members; no corporate tax election.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / data / properties / name / properties / suffix / description
      Previous value: -"Legal suffix appended to the base name, e.g. \", Inc.\"."New value: +"Legal designator, e.g. \"Inc.\" or \", Inc.\". A leading comma attaches directly; otherwise Corply inserts one space."
    • addedInput schema / properties / data / properties / name / properties / suffixConfirmed
      Added value: +{
      +  "description": "Set true after the founder confirms the displayed legal name in the configuration review or explicitly chooses its suffix.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / data / properties / ownership / properties / authorizedShares / default
      Removed value: -"10000000"
    • addedInput schema / properties / data / properties / ownership / properties / capitalizationConfirmed
      Added value: +{
      +  "description": "Set true after the founder confirms the displayed capitalization in the configuration review. This does not confirm or change the founder split.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / data / properties / ownership / properties / equityPoolPercent / default
      Removed value: -""
    • removedInput schema / properties / data / properties / ownership / properties / fmv / default
      Removed value: -""
    • removedInput schema / properties / data / properties / ownership / properties / founderSplitConfirmed / default
      Removed value: -false
    • removedInput schema / properties / data / properties / ownership / properties / parValue / default
      Removed value: -"0.00001"
    • changedInput schema / properties / data / properties / structure / description
      Previous value: -"Source/start structure used to reuse existing team facts. Corply's generated target is always a regular Delaware C corporation; 'llc' never asks Corply to generate LLC documents."New value: +"The legal form being formed. Automated formation supports Delaware C corporations and Florida member-managed LLCs with fully vested membership interests and default federal tax classification."
    • addedInput schema / properties / expectedDataHash
      Added value: +{
      +  "description": "Current data_hash from the latest result or get_status.revisionHistory; rejects concurrent edits.",
      +  "type": "string"
      +}
    • addedInput schema / properties / expectedRevisionId
      Added value: +{
      +  "description": "Current revision from the latest result or get_status.revisionHistory; prevents overwriting a stale version.",
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
    • addedInput schema / properties / newCompanyRequestId
      Added value: +{
      +  "description": "Agent-generated UUID for an explicitly requested new incorporation. Reuse on retry; omit companyId. Never ask the founder to supply this technical ID.",
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
    • addedInput schema / properties / useOwnProfileFields
      Added value: +{
      +  "description": "Legacy compatibility: after confirming ownProfileSuggestion, copy on-file fields into blank fields of the caller's own row. Prefer ownDetailsReview and confirm_own_details, which confirm an exact server-held version without resending values. Never look up a saved address or repeat DOB in chat.",
      +  "items": {
      +    "enum": [
      +      "name",
      +      "address",
      +      "dateOfBirth",
      +      "usTaxpayer",
      +      "usCitizenOrPermanentResident",
      +      "immigrationStatus",
      +      "f1WorkAuthorization"
      +    ],
      +    "type": "string"
      +  },
      +  "maxItems": 7,
      +  "type": "array"
      +}
  5. Changed4 schema fields changed
    • changedInput schema / properties / data / properties / founders / items / properties / election83bConfirmed / default
      Previous value: -falseNew value: +true
    • addedInput schema / properties / data / properties / founders / items / properties / election83bConfirmed / description
      Added value: +"Deprecated intake gate. Defaults true; agents must not ask for a separate 83(b) confirmation."
    • changedInput schema / properties / data / properties / founders / items / properties / elects83b / default
      Previous value: -nullNew value: +true
    • addedInput schema / properties / data / properties / founders / items / properties / elects83b / description
      Added value: +"Defaults to true for standard restricted founder shares. Agents must not ask this during intake."
  6. Changed1 schema field changed
    • addedInput schema / properties / _corply_context
      Added value: +{
      +  "additionalProperties": false,
      +  "dependentRequired": {
      +    "receipt": [
      +      "id"
      +    ]
      +  },
      +  "description": "Echo context_engineering.context_session from the prior Corply result.",
      +  "properties": {
      +    "id": {
      +      "maxLength": 200,
      +      "minLength": 16,
      +      "type": "string"
      +    },
      +    "receipt": {
      +      "maxLength": 2048,
      +      "minLength": 16,
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  7. Changed17 schema fields changed
    • changedInput schema / properties / data / properties / equityTerms / properties / purchaseMethod / default
      Previous value: -"ip"New value: +"cash"
    • addedInput schema / properties / data / properties / founders / items / properties / election83bConfirmed
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / data / properties / founders / items / properties / f1WorkAuthorization
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "none",
      +        "cpt",
      +        "opt",
      +        "stem_opt",
      +        "other"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / data / properties / founders / items / properties / immigrationStatus
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "f1",
      +        "h1b",
      +        "o1",
      +        "l1",
      +        "other"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • changedInput schema / properties / data / properties / founders / items / properties / isOfficer / default
      Previous value: -trueNew value: +false
    • addedInput schema / properties / data / properties / founders / items / properties / stockPurchaseDate
      Added value: +{
      +  "default": "",
      +  "type": "string"
      +}
    • changedInput schema / properties / data / properties / founders / items / properties / title / default
      Previous value: -"Founder / CEO"New value: +"Founder"
    • addedInput schema / properties / data / properties / founders / items / properties / usCitizenOrPermanentResident
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / data / properties / founders / items / properties / usTaxpayer / anyOf
      Added value: +[
      +  {
      +    "type": "boolean"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / data / properties / founders / items / properties / usTaxpayer / default
      Previous value: -trueNew value: +null
    • removedInput schema / properties / data / properties / founders / items / properties / usTaxpayer / type
      Removed value: -"boolean"
    • changedInput schema / properties / data / properties / founders / items / required
      Previous value: -[
      -  "id",
      -  "name",
      -  "email",
      -  "address",
      -  "title",
      -  "isIncorporator",
      -  "isDirector",
      -  "isOfficer",
      -  "usTaxpayer",
      -  "shares",
      -  "purchasePrice",
      -  "vestingMonths",
      -  "cliffMonths",
      -  "vestingStart",
      -  "elects83b"
      -]New value: +[
      +  "id",
      +  "name",
      +  "email",
      +  "address",
      +  "title",
      +  "isIncorporator",
      +  "isDirector",
      +  "isOfficer",
      +  "usTaxpayer",
      +  "usCitizenOrPermanentResident",
      +  "immigrationStatus",
      +  "f1WorkAuthorization",
      +  "shares",
      +  "purchasePrice",
      +  "vestingMonths",
      +  "cliffMonths",
      +  "vestingStart",
      +  "stockPurchaseDate",
      +  "elects83b",
      +  "election83bConfirmed"
      +]
    • changedInput schema / properties / data / properties / ownership / properties / equityPoolPercent / default
      Previous value: -"10"New value: +""
    • changedInput schema / properties / data / properties / ownership / properties / fmv / default
      Previous value: -"100"New value: +""
    • addedInput schema / properties / data / properties / ownership / properties / founderSplitConfirmed
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / data / properties / roles / properties / governanceConfirmed
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • changedInput schema / properties / data / properties / structure / description
      Previous value: -"Legal entity type to form."New value: +"Source/start structure used to reuse existing team facts. Corply's generated target is always a regular Delaware C corporation; 'llc' never asks Corply to generate LLC documents."
  8. Changed4 schema fields changed
    • addedInput schema / properties / companyId / description
      Added value: +"corply_companies.id (from get_org). OMIT it — the server auto-attaches the org's company. NEVER pass a formationId here."
    • changedInput schema / properties / data / additionalProperties
      Previous value: -{}New value: +false
    • addedInput schema / properties / data / properties
      Added value: +{
      +  "companyAddress": {
      +    "additionalProperties": {},
      +    "propertyNames": {
      +      "type": "string"
      +    },
      +    "type": "object"
      +  },
      +  "description": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "text": {
      +        "default": "",
      +        "type": "string"
      +      },
      +      "website": {
      +        "default": "",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "equityTerms": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "acceleration": {
      +        "default": "double_trigger",
      +        "type": "string"
      +      },
      +      "purchaseMethod": {
      +        "default": "ip",
      +        "type": "string"
      +      },
      +      "vestingPeriodYears": {
      +        "default": "4",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "founders": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "address": {
      +          "default": "",
      +          "type": "string"
      +        },
      +        "cliffMonths": {
      +          "default": "12",
      +          "type": "string"
      +        },
      +        "elects83b": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "email": {
      +          "format": "email",
      +          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +          "type": "string"
      +        },
      +        "id": {
      +          "description": "Stable slug like \"f1\" — referenced by roles.*FounderId (e.g. roles.ceoFounderId).",
      +          "type": "string"
      +        },
      +        "isDirector": {
      +          "default": true,
      +          "type": "boolean"
      +        },
      +        "isIncorporator": {
      +          "default": false,
      +          "type": "boolean"
      +        },
      +        "isOfficer": {
      +          "default": true,
      +          "type": "boolean"
      +        },
      +        "name": {
      +          "description": "Founder's full legal name.",
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "purchasePrice": {
      +          "default": "",
      +          "type": "string"
      +        },
      +        "shares": {
      +          "default": "",
      +          "description": "Number of shares, as a string, e.g. \"6000000\".",
      +          "type": "string"
      +        },
      +        "title": {
      +          "default": "Founder / CEO",
      +          "type": "string"
      +        },
      +        "usTaxpayer": {
      +          "default": true,
      +          "type": "boolean"
      +        },
      +        "vestingMonths": {
      +          "default": "48",
      +          "type": "string"
      +        },
      +        "vestingStart": {
      +          "default": "",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "name",
      +        "email",
      +        "address",
      +        "title",
      +        "isIncorporator",
      +        "isDirector",
      +        "isOfficer",
      +        "usTaxpayer",
      +        "shares",
      +        "purchasePrice",
      +        "vestingMonths",
      +        "cliffMonths",
      +        "vestingStart",
      +        "elects83b"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "name": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "base": {
      +        "description": "Company name without the legal suffix, e.g. \"Acme\".",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "suffix": {
      +        "default": ", Inc.",
      +        "description": "Legal suffix appended to the base name, e.g. \", Inc.\".",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "base",
      +      "suffix"
      +    ],
      +    "type": "object"
      +  },
      +  "ownership": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "authorizedShares": {
      +        "default": "10000000",
      +        "description": "Total shares authorized in the certificate of incorporation, e.g. \"10000000\".",
      +        "type": "string"
      +      },
      +      "equityPoolPercent": {
      +        "default": "10",
      +        "type": "string"
      +      },
      +      "fmv": {
      +        "default": "100",
      +        "type": "string"
      +      },
      +      "parValue": {
      +        "default": "0.00001",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "phone": {
      +    "type": "string"
      +  },
      +  "registeredAgent": {
      +    "additionalProperties": {},
      +    "propertyNames": {
      +      "type": "string"
      +    },
      +    "type": "object"
      +  },
      +  "roles": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ceoFounderId": {
      +        "description": "Must equal a founders[].id.",
      +        "type": "string"
      +      },
      +      "directorFounderIds": {
      +        "default": [],
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "secretaryFounderId": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "structure": {
      +    "description": "Legal entity type to form.",
      +    "enum": [
      +      "c_corp",
      +      "llc",
      +      "subsidiary_c_corp"
      +    ],
      +    "type": "string"
      +  },
      +  "tax": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ein": {
      +        "type": "string"
      +      },
      +      "responsibleFounderId": {
      +        "type": "string"
      +      },
      +      "ssnOnFile": {
      +        "default": false,
      +        "type": "boolean"
      +      }
      +    },
      +    "type": "object"
      +  }
      +}
    • removedInput schema / properties / data / propertyNames
      Removed value: -{
      -  "type": "string"
      -}
  9. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply readOnlyHint=false, openWorldHint=true and destructiveHint=false; the description adds far more — deep-merge upsert that never wipes untouched sections, no confirmation needed for this reversible save, no welcome email sent, retry-UUID idempotency, frozen-packet refusal, and founder-invitation/revocation side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense monolith of operational text with no paragraph breaks or hierarchy; the volume of intake, founder-invitation, 83(b), and confirmation rules is far beyond what is 'appropriately sized' and makes key points hard to locate, even though the purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite high complexity (9 params, nested objects, no output schema), the description covers prerequisites, the returned fields ({ formationId, standardConfiguration, nextStep, questionBatch, ... }), canonicality, idempotency and the confirmation boundary, leaving little for an agent to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 78%, just under the baseline threshold, but the description adds real meaning: newCompanyRequestId semantics and reuse on retries, founders as a full-roster replacement, equityTreatment=fully_vested skipping vesting/83(b), election83bFilingMethod handling, and attestedLegalName only after personal ID confirmation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Create or continue the real incorporation application') plus concrete trigger phrases (open, start, register, incorporate). It clearly separates itself from siblings like start_company_draft, submit_for_formation and amend_frozen_application by describing the actual application-save action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use conditions and named alternatives: verify with whoami first, use amend_frozen_application after founder confirmation to supersede a frozen packet, generate a newCompanyRequestId and omit companyId for a second company, and 'ask only missing facts'. Conditions that route to other tools are spelled out rather than inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.