Skip to main content
Glama

Set accounting settings

well_upsert_accounting_settings
Destructive

Set the workspace's accounting settings: fiscal year start month, first fiscal year start date, country, base currency, accounting framework, chart-of-accounts confirmation, the next invoice number (typed, Well's preset first number saved only when none is set, or the number after the last one the previous invoicing tool issued), the incorporation date, the tax ID (value and type together), the tax profile (VAT regime, VAT filing frequency, corporate tax regime), the micro-entrepreneur profile (URSSAF filing frequency, activity regime, flat income tax option, ACRE with its start and end dates), the employer and property tax facts (how often the company pays the payroll contributions, or none with no employee; whether the company owes the CFE), and what the company usually bills (default_operation_nature: goods, services or mixed).

Provide only the fields you are changing; omitted fields are left untouched. An empty call (no fields) is refused. tax_id_value and tax_id_type must be provided together.

Only a workspace owner or admin may set the accounting settings. A caller without that role is refused, not silently ignored.

Changing the fiscal year start month moves the whole fiscal calendar, so it is REFUSED when a period is locked or a close is in progress — the tool surfaces that refusal rather than forcing it. When the change is allowed, it soft-deletes the workspace's regenerable DRAFT journal entries so they re-mint on the new coordinates; VALIDATED and LOCKED entries are never touched.

These are accounting-critical values. Propose only a value a read returned or the person stated, and save it only after the person's yes. Never infer a country, currency, framework, start month, tax ID, tax profile value or operation nature that no read returned and the person did not state. The legal form does not decide the VAT regime, the filing frequency or the micro-entrepreneur profile.

The tax ID here updates the workspace's anchored company and its settings mirror together, so the two never drift. To set WHICH company is anchored, use well_set_own_company; to set that company's tax ID, use this tool.

registered_address sets the anchored company's registered address; confirm it with the user.

Input Schema

NameRequiredDescriptionDefault
countryNoISO 3166-1 alpha-2 country code.
cfe_liableNoWhether the company owes the business property tax (CFE), as the person stated it: false for a company exempt from it. Null to clear it.
micro_acreNoWhether the micro-entrepreneur has the start-up contribution exemption (ACRE): granted or not_granted, as the person answered. Any value other than granted also clears micro_acre_start_date and micro_acre_end_date. Null to clear it.
vat_regimeNoHow the company charges VAT: franchise (VAT-exempt small business, no VAT return), simplified (réel simplifié), or normal (réel normal). Null to clear it.
tax_id_typeNoThe tax id's type (SIREN, VAT, EIN, …). Provide it together with tax_id_value.
tax_id_valueNoThe company's tax id value. Provide it together with tax_id_type; one without the other is refused.
workspace_idNoTarget workspace. Omit when the token authorizes one workspace. Required when it authorizes several — a write lands in exactly one workspace and this call would not say which.
base_currencyNoISO 4217 currency code.
coa_confirmedNoWhether the chart of accounts has been confirmed.
conversation_idNoThe conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.
idempotency_keyNoOptional client-supplied key. A retried write with the same key returns the original result instead of re-applying the operation.
workspace_scopeNoRestrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace.
incorporation_dateNoThe company's incorporation / registration date as YYYY-MM-DD, or null to clear it.
registered_addressNoThe anchored company's registered address as the person confirmed it: full_address, and the parts the address has. country is ISO 3166-1 alpha-2.
micro_acre_end_dateNoThe last day of the ACRE exemption as YYYY-MM-DD, as the person stated it. Only with a granted ACRE, in this call or already saved: an end date beside no granted ACRE is refused. Null to clear it.
next_invoice_numberNoThe number the workspace's next invoice takes, e.g. "INV-0042". It must end in digits and come after the last invoice issued. Each issued invoice takes this number and advances it by one, so set it once. Ask the user; never guess it.
accounting_frameworkNoThe accounting framework the books follow.
corporate_tax_regimeNoWhich tax the company's profit is subject to: is (corporate income tax) or ir (the owners' personal income tax). Null to clear it.
vat_filing_frequencyNoHow often the company files its VAT return: monthly, quarterly, or annual. Null to clear it.
micro_acre_start_dateNoThe day the micro-entrepreneur's activity started, as YYYY-MM-DD, as the person confirmed it with the ACRE answer. It sets the ACRE share of the normal rate. Only with a granted ACRE, in this call or already saved: a start date beside no granted ACRE is refused. While no end date is saved, the result gives `proposed_micro_acre_end_date`, the end that follows from the start date: propose it in the same reply and save it as `micro_acre_end_date` only on the person's yes. Null to clear it.
micro_activity_regimeNoWhich micro-entrepreneur activity the turnover comes from, which sets the contribution rate: goods (sale of goods, BIC), services_bic (commercial or craft services, BIC), or services_bnc (liberal professions, BNC). Null to clear it.
flat_income_tax_optionNoWhether the micro-entrepreneur opted to pay income tax with each URSSAF declaration (versement libératoire): opted or not_opted. Null to clear it.
fiscal_year_start_monthNoCalendar month (1-12) the fiscal year starts on, or null to clear it.
urssaf_filing_frequencyNoHow often the micro-entrepreneur declares turnover to the URSSAF: monthly or quarterly. Null to clear it.
default_operation_natureNoWhat the company usually bills, as the person stated it: goods, services, or mixed (both on one invoice). An invoice takes it when it is issued. Pass it only after the person answered; never guess it. Null to clear it.
next_invoice_number_afterNoThe last invoice number the company issued in its previous invoicing or accounting tool, exactly as that tool returned it, e.g. "FA-2026-0041": Well saves the number after it ("FA-2026-0042"), so the sequence continues. Pass only a number read from the tool or given by the user. Never pass it with next_invoice_number or next_invoice_number_preset.
next_invoice_number_presetNoTrue saves Well's preset first invoice number, F-2026-0001 for an invoice issued in 2026 (a prefix, the year and a four-digit counter), and only when the workspace has no next invoice number yet: a saved number is never replaced, so a second call changes nothing. Set it when invoice_numbering.decision (well_get_accounting_settings) or the decision of well_get_last_invoice_number is "apply_preset", or when the person chose the preset. Never pass it with next_invoice_number.
first_fiscal_year_start_dateNoFirst fiscal year start date as YYYY-MM-DD, or null to clear it.
payroll_contribution_payment_frequencyNoHow often the company pays the URSSAF contributions on its employees' wages, as the person stated it: monthly, quarterly for an employer under 11 employees who chose to pay quarterly, or none for a company with no employee. The payroll return (DSN) is monthly for every employer whatever this value. Any other value is refused. Null to clear it.

Output Schema

NameRequiredDescriptionDefault
errorNo
countryNo
successYes
cfe_liableNo
micro_acreNo
vat_regimeNo
tax_id_typeNo
tax_id_valueNo
base_currencyNo
coa_confirmedNo
conversation_idNoThe conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.
newly_connectedNoTools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later.
incorporation_dateNo
registered_addressNoThe anchored company's registered address as stored now, when the call set it.
micro_acre_end_dateNo
next_invoice_numberNo
accounting_frameworkNo
conversation_id_noteNoPresent only when the server opened a fresh lane, stating that no choice recorded earlier was read.
corporate_tax_regimeNo
vat_filing_frequencyNo
micro_acre_start_dateNo
micro_activity_regimeNo
conversation_id_sourceNoWhere the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.
flat_income_tax_optionNo
fiscal_year_start_monthNo
urssaf_filing_frequencyNo
default_operation_natureNo
first_fiscal_year_start_dateNo
proposed_micro_acre_end_dateNoThe ACRE end date that follows from the saved start date (the end of the third calendar quarter after the start quarter), present while no end date is saved. A proposal: save it only on the person's yes.
payroll_contribution_payment_frequencyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / cfe_liable
      Added value: +{
      +  "description": "Whether the company owes the business property tax (CFE), as the person stated it: false for a company exempt from it. Null to clear it.",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / payroll_contribution_payment_frequency
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "monthly",
      +        "quarterly",
      +        "none"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "How often the company pays the URSSAF contributions on its employees' wages, as the person stated it: monthly, quarterly for an employer under 11 employees who chose to pay quarterly, or none for a company with no employee. The payroll return (DSN) is monthly for every employer whatever this value. Any other value is refused. Null to clear it."
      +}
    • addedOutput schema / properties / cfe_liable
      Added value: +{
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / payroll_contribution_payment_frequency
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed40 schema fields changed
    • removedOutput schema / properties / accounting_framework / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / accounting_framework / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / base_currency / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / base_currency / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / coa_confirmed / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / coa_confirmed / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • removedOutput schema / properties / corporate_tax_regime / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / corporate_tax_regime / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / country / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / country / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / default_operation_nature / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / default_operation_nature / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / first_fiscal_year_start_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / first_fiscal_year_start_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / flat_income_tax_option / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / flat_income_tax_option / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / incorporation_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / incorporation_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / micro_acre / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / micro_acre / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / micro_acre_end_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / micro_acre_end_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / micro_acre_start_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / micro_acre_start_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / micro_activity_regime / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / micro_activity_regime / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / next_invoice_number / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / next_invoice_number / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / registered_address / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / registered_address / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / tax_id_type / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / tax_id_type / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / tax_id_value / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / tax_id_value / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / urssaf_filing_frequency / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / urssaf_filing_frequency / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / vat_filing_frequency / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / vat_filing_frequency / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / vat_regime / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / vat_regime / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / next_invoice_number_preset / description
      Previous value: -"True saves Well's preset first invoice number, F-2026-0001 for an invoice issued in 2026 (a prefix, the year and a four-digit counter), and only when the workspace has no next invoice number yet: a saved number is never replaced, so a second call changes nothing. Set it when the issuing jurisdiction's numbering rule is \"free\", or when the person chose the preset. Never pass it with next_invoice_number."New value: +"True saves Well's preset first invoice number, F-2026-0001 for an invoice issued in 2026 (a prefix, the year and a four-digit counter), and only when the workspace has no next invoice number yet: a saved number is never replaced, so a second call changes nothing. Set it when invoice_numbering.decision (well_get_accounting_settings) or the decision of well_get_last_invoice_number is \"apply_preset\", or when the person chose the preset. Never pass it with next_invoice_number."
  4. Changed13 schema fields changed
    • addedInput schema / properties / flat_income_tax_option
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "opted",
      +        "not_opted"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Whether the micro-entrepreneur opted to pay income tax with each URSSAF declaration (versement libératoire): opted or not_opted. Null to clear it."
      +}
    • addedInput schema / properties / micro_acre
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "granted",
      +        "not_granted"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Whether the micro-entrepreneur has the start-up contribution exemption (ACRE): granted or not_granted, as the person answered. Any value other than granted also clears micro_acre_start_date and micro_acre_end_date. Null to clear it."
      +}
    • addedInput schema / properties / micro_acre_end_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The last day of the ACRE exemption as YYYY-MM-DD, as the person stated it. Only with a granted ACRE, in this call or already saved: an end date beside no granted ACRE is refused. Null to clear it."
      +}
    • addedInput schema / properties / micro_acre_start_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The day the micro-entrepreneur's activity started, as YYYY-MM-DD, as the person confirmed it with the ACRE answer. It sets the ACRE share of the normal rate. Only with a granted ACRE, in this call or already saved: a start date beside no granted ACRE is refused. While no end date is saved, the result gives `proposed_micro_acre_end_date`, the end that follows from the start date: propose it in the same reply and save it as `micro_acre_end_date` only on the person's yes. Null to clear it."
      +}
    • addedInput schema / properties / micro_activity_regime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "goods",
      +        "services_bic",
      +        "services_bnc"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Which micro-entrepreneur activity the turnover comes from, which sets the contribution rate: goods (sale of goods, BIC), services_bic (commercial or craft services, BIC), or services_bnc (liberal professions, BNC). Null to clear it."
      +}
    • addedInput schema / properties / urssaf_filing_frequency
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "monthly",
      +        "quarterly"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "How often the micro-entrepreneur declares turnover to the URSSAF: monthly or quarterly. Null to clear it."
      +}
    • addedOutput schema / properties / flat_income_tax_option
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / micro_acre
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / micro_acre_end_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / micro_acre_start_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / micro_activity_regime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / proposed_micro_acre_end_date
      Added value: +{
      +  "description": "The ACRE end date that follows from the saved start date (the end of the third calendar quarter after the start quarter), present while no end date is saved. A proposal: save it only on the person's yes.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / urssaf_filing_frequency
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  5. Changed1 schema field changed
    • removedInput schema / properties / next_invoice_number_after / pattern
      Removed value: -"^[\\p{L}\\p{N} _\\-/.#]{1,100}$"
  6. Changed4 schema fields changed
    • addedInput schema / properties / next_invoice_number_after
      Added value: +{
      +  "description": "The last invoice number the company issued in its previous invoicing or accounting tool, exactly as that tool returned it, e.g. \"FA-2026-0041\": Well saves the number after it (\"FA-2026-0042\"), so the sequence continues. Pass only a number read from the tool or given by the user. Never pass it with next_invoice_number or next_invoice_number_preset.",
      +  "maxLength": 100,
      +  "minLength": 1,
      +  "pattern": "^[\\p{L}\\p{N} _\\-/.#]{1,100}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / next_invoice_number_preset
      Added value: +{
      +  "const": true,
      +  "description": "True saves Well's preset first invoice number, F-2026-0001 for an invoice issued in 2026 (a prefix, the year and a four-digit counter), and only when the workspace has no next invoice number yet: a saved number is never replaced, so a second call changes nothing. Set it when the issuing jurisdiction's numbering rule is \"free\", or when the person chose the preset. Never pass it with next_invoice_number.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / registered_address
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The anchored company's registered address as the person confirmed it: full_address, and the parts the address has. country is ISO 3166-1 alpha-2.",
      +  "properties": {
      +    "address_line1": {
      +      "maxLength": 255,
      +      "type": "string"
      +    },
      +    "address_line2": {
      +      "maxLength": 255,
      +      "type": "string"
      +    },
      +    "city": {
      +      "maxLength": 255,
      +      "type": "string"
      +    },
      +    "country": {
      +      "maxLength": 2,
      +      "minLength": 2,
      +      "type": "string"
      +    },
      +    "full_address": {
      +      "maxLength": 255,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "postal_code": {
      +      "maxLength": 255,
      +      "type": "string"
      +    },
      +    "region": {
      +      "maxLength": 255,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "full_address"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / registered_address
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The anchored company's registered address as stored now, when the call set it."
      +}
  7. Changed2 schema fields changed
    • addedInput schema / properties / default_operation_nature
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "goods",
      +        "services",
      +        "mixed"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "What the company usually bills, as the person stated it: goods, services, or mixed (both on one invoice). An invoice takes it when it is issued. Pass it only after the person answered; never guess it. Null to clear it."
      +}
    • addedOutput schema / properties / default_operation_nature
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  8. Changed1 schema field changed
    • changedOutput schema / properties / newly_connected / description
      Previous value: -"Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. Start the reply with one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later."New value: +"Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later."
  9. Changed6 schema fields changed
    • addedInput schema / properties / corporate_tax_regime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "is",
      +        "ir"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Which tax the company's profit is subject to: is (corporate income tax) or ir (the owners' personal income tax). Null to clear it."
      +}
    • addedInput schema / properties / vat_filing_frequency
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "monthly",
      +        "quarterly",
      +        "annual"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "How often the company files its VAT return: monthly, quarterly, or annual. Null to clear it."
      +}
    • addedInput schema / properties / vat_regime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "franchise",
      +        "simplified",
      +        "normal"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "How the company charges VAT: franchise (VAT-exempt small business, no VAT return), simplified (réel simplifié), or normal (réel normal). Null to clear it."
      +}
    • addedOutput schema / properties / corporate_tax_regime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / vat_filing_frequency
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / vat_regime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  10. Changed1 schema field changed
    • addedInput schema / properties / workspace_scope
      Added value: +{
      +  "description": "Restrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace.",
      +  "enum": [
      +    "family"
      +  ],
      +  "type": "string"
      +}
  11. Changed1 schema field changed
    • addedOutput schema / properties / newly_connected
      Added value: +{
      +  "description": "Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. Start the reply with one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "name": {
      +        "type": "string"
      +      },
      +      "service_id": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "service_id"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  12. Changed2 schema fields changed
    • addedInput schema / properties / next_invoice_number
      Added value: +{
      +  "description": "The number the workspace's next invoice takes, e.g. \"INV-0042\". It must end in digits and come after the last invoice issued. Each issued invoice takes this number and advances it by one, so set it once. Ask the user; never guess it.",
      +  "maxLength": 100,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / next_invoice_number
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  13. Changed4 schema fields changed
    • addedInput schema / properties / conversation_id
      Added value: +{
      +  "description": "The conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / conversation_id
      Added value: +{
      +  "description": "The conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / conversation_id_note
      Added value: +{
      +  "description": "Present only when the server opened a fresh lane, stating that no choice recorded earlier was read.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / conversation_id_source
      Added value: +{
      +  "description": "Where the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.",
      +  "enum": [
      +    "host_meta",
      +    "argument",
      +    "minted"
      +  ],
      +  "type": "string"
      +}
  14. Changed6 schema fields changed
    • addedInput schema / properties / incorporation_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The company's incorporation / registration date as YYYY-MM-DD, or null to clear it."
      +}
    • addedInput schema / properties / tax_id_type
      Added value: +{
      +  "description": "The tax id's type (SIREN, VAT, EIN, …). Provide it together with tax_id_value.",
      +  "type": "string"
      +}
    • addedInput schema / properties / tax_id_value
      Added value: +{
      +  "description": "The company's tax id value. Provide it together with tax_id_type; one without the other is refused.",
      +  "maxLength": 50,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / incorporation_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / tax_id_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / tax_id_value
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  15. Changed1 schema field changed
    • changedInput schema / properties / workspace_id / description
      Previous value: -"Target workspace. Omit to use the only authorized workspace, or (for read tools) to query all authorized workspaces grouped by workspace. Required for write tools when the token authorizes more than one workspace."New value: +"Target workspace. Omit when the token authorizes one workspace. Required when it authorizes several — a write lands in exactly one workspace and this call would not say which."
  16. Added

TDQS

A4.5/5.0
Behavior4/5

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

Goes well past the annotations: discloses that a fiscal-year-start-month change is refused when a period is locked or a close is in progress, that allowed changes soft-delete regenerable DRAFT journals while VALIDATED/LOCKED entries are never touched, and that unauthorized callers are refused rather than silently ignored. That is strong context beyond destructiveHint=true; a note on whether partial writes are atomic across the many fields would close the remaining gap.

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

Conciseness3/5

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

Purpose and safety rules are front-loaded, but the opening sentence is a single sprawling enumeration that largely re-lists the 29 schema properties, which the schema already documents. That bulk costs readability without adding much decision-relevant information; the later paragraphs (refusal rules, confirmation policy) are the parts that earn their place.

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?

For a 29-parameter destructive write with an output schema, it covers the missing pieces an agent needs: authorization, refusal conditions, draft-journal side effects, the never-infer-and-confirm-first policy, and it references a return field (`proposed_micro_acre_end_date`) that must be proposed back to the user. Return-value detail is correctly left to the output schema.

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 100%, so the schema carries the per-field definitions; the description nevertheless adds cross-field meaning the schema can't: the three mutually exclusive ways to set the next invoice number (typed, Well's preset saved only when none exists, or the number after the previous tool's last), which the schema does state but the prose frames as a decision. It also explains the tax ID's dual write to the anchored company and its settings mirror.

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 and resource ("Set the workspace's accounting settings") and enumerates the concrete value families it writes, so an agent can distinguish it from well_get_accounting_settings, well_show_accounting_settings and well_set_own_company. It explicitly routes company-anchoring to well_set_own_company, drawing the sibling boundary.

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?

States the partial-update contract ("Provide only the fields you are changing; omitted fields are left untouched"), that an empty call is refused, that tax_id_value/tax_id_type travel together, and that only an owner or admin may call it. It also names the alternative for a related operation (well_set_own_company) with the condition that selects it.

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.

Resources