Skip to main content
Glama
cmendezs

mcp-facture-electronique-fr

create_routing_code

Create a routing code for a French electronic invoicing establishment by providing SIRET, routing identifier, type, label, and nature. Requires user confirmation before final submission.

Instructions

Create a routing code (POST /code-routage).

HUMAN-IN-THE-LOOP: Requires user confirmation. Call without confirmation_token first, show the summary to the user, then call again with the token.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
siretYesEstablishment SIRET (14 digits) this routing code belongs to.
confirmation_tokenNoConfirmation token from a previous call. Omit on the first call.
etat_administratifNo'A' (active) or 'F' (closed).A
identifiant_routageYesRouting-code identifier to create (max 100 chars, pattern [-_/@a-zA-Z0-9]).
libelle_code_routageYesHuman-readable label for the routing code.
nature_etablissementYesWhether the establishment is private or public.
type_identifiant_routageYes4-digit type code for the routing-code identifier (typeIdentifiantRoutage).
gestion_engagement_juridiqueNoWhether a legal-commitment number (engagement juridique) is mandatory.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changedv0.7.0
    • addedInput schema / properties / confirmation_token
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Confirmation token from a previous call. Omit on the first call."
      +}
    • addedInput schema / properties / etat_administratif
      Added value: +{
      +  "default": "A",
      +  "description": "'A' (active) or 'F' (closed).",
      +  "enum": [
      +    "A",
      +    "F"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / gestion_engagement_juridique
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Whether a legal-commitment number (engagement juridique) is mandatory."
      +}
    • addedInput schema / properties / identifiant_routage
      Added value: +{
      +  "description": "Routing-code identifier to create (max 100 chars, pattern [-_/@a-zA-Z0-9]).",
      +  "type": "string"
      +}
    • removedInput schema / properties / label
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Human-readable label for the routing code (e.g. 'Purchasing department - HQ'). Optional but recommended for clarity when multiple codes exist."
      -}
    • addedInput schema / properties / libelle_code_routage
      Added value: +{
      +  "description": "Human-readable label for the routing code.",
      +  "type": "string"
      +}
    • addedInput schema / properties / nature_etablissement
      Added value: +{
      +  "description": "Whether the establishment is private or public.",
      +  "enum": [
      +    "Privé",
      +    "Public"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / routing_code
      Removed value: -{
      -  "description": "Routing code value to create (free-form string, e.g. 'PURCHASING-DEPT', 'PARIS-OFFICE'). This exact value will appear in invoicing addresses and must be communicated to senders.",
      -  "type": "string"
      -}
    • changedInput schema / properties / siret / description
      Previous value: -"Establishment SIRET to associate this routing code with (14 digits). The SIRET must already be registered and Active in the PPF directory."New value: +"Establishment SIRET (14 digits) this routing code belongs to."
    • addedInput schema / properties / type_identifiant_routage
      Added value: +{
      +  "description": "4-digit type code for the routing-code identifier (typeIdentifiantRoutage).",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "siret",
      -  "routing_code"
      -]New value: +[
      +  "siret",
      +  "identifiant_routage",
      +  "type_identifiant_routage",
      +  "libelle_code_routage",
      +  "nature_etablissement"
      +]
  2. Changed3 schema fields changedv0.2.2
    • changedInput schema / properties / label / description
      Previous value: -"Descriptive label for the routing code (e.g. 'Purchasing department - HQ')."New value: +"Human-readable label for the routing code (e.g. 'Purchasing department - HQ'). Optional but recommended for clarity when multiple codes exist."
    • changedInput schema / properties / routing_code / description
      Previous value: -"Routing code value to create (free-form string, e.g. 'PURCHASING-DEPT', 'PARIS-OFFICE'). This code will be used in the recipient's invoicing address."New value: +"Routing code value to create (free-form string, e.g. 'PURCHASING-DEPT', 'PARIS-OFFICE'). This exact value will appear in invoicing addresses and must be communicated to senders."
    • changedInput schema / properties / siret / description
      Previous value: -"Establishment SIRET to associate this routing code with (14 digits)."New value: +"Establishment SIRET to associate this routing code with (14 digits). The SIRET must already be registered and Active in the PPF directory."
  3. First observedv0.2.0

TDQS

A4.4/5.0
Behavior4/5

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

Discloses the key behavioral trait (human-in-the-loop requirement) and the two-step invocation pattern. However, does not mention side effects, permissions, or the fact that the first call returns a confirmation token (though implied).

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

Conciseness5/5

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

Extremely concise: two sentences plus a procedural note. Purpose is front-loaded, and every sentence adds value. No fluff.

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

Completeness4/5

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

Covers the critical human-in-the-loop workflow. The output schema exists, so return values need not be in the description. Could mention that creation is immediate or provide error handling hints, but overall sufficient for a tool with 8 parameters and a two-step process.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully documents parameters. The description adds value only for the confirmation_token parameter in terms of usage, not semantics. Baseline 3 is appropriate.

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?

Clearly states 'Create a routing code' with the HTTP method, distinguishing it from sibling tools like update_routing_code and replace_routing_code.

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?

Explicitly describes the two-step human-in-the-loop process: call without confirmation_token, show summary, then call with token. This provides clear, actionable usage instructions.

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