Skip to main content
Glama

voxfactura-mcp

Branche ton business VoxFactura sur ton assistant IA (Claude Desktop, Claude Code, ou tout client MCP). Tu poses tes questions en langage naturel :

  • « Quelles sont mes factures impayées ? »

  • « Quelle est ma marge avec le client Martin ? »

  • « Combien j'ai dépensé chez Point P ce mois-ci ? »

  • « Donne-moi mon récapitulatif TVA du 1er trimestre. »

  • « Crée un devis brouillon pour le client 12 : 3 radiateurs à 450. »

L'assistant consulte tes données et peut préparer des brouillons ; il ne n'envoie jamais rien à un client (l'envoi reste une validation humaine dans VoxFactura). Tout passe par une clé API scopée que tu contrôles.

1. Crée une clé API

Dans VoxFactura : Réglages → Clés API → Créer une clé. Coche les permissions voulues (lecture : factures, dépenses, clients, comptabilité, encaissements ; écriture : créer des devis, marquer payé, ajouter des dépenses). Copie la clé vf_live_… : elle n'est affichée qu'une seule fois.

  • Pour la marge d'un client : factures + dépenses.

  • La case « Chantiers et regroupements (ancien) » ne sert plus qu'aux outils chantiers, gardés pour compatibilité.

  • Pour le récap TVA / FEC : comptabilité.

Related MCP server: @centry-digital/bukku-mcp

2. Installe

pip install voxfactura-mcp
# ou, sans installer : uvx voxfactura-mcp

3. Configure ton client MCP

Claude Desktop

Réglages → Développeur → Modifier la config :

{
  "mcpServers": {
    "voxfactura": {
      "command": "voxfactura-mcp",
      "env": { "VOXFACTURA_API_KEY": "vf_live_ta_cle_ici" }
    }
  }
}

Redémarre Claude Desktop.

Claude Code

claude mcp add voxfactura -e VOXFACTURA_API_KEY=vf_live_ta_cle -- voxfactura-mcp

Variables d'environnement

Variable

Rôle

Défaut

VOXFACTURA_API_KEY

Ta clé API (obligatoire)

aucune

VOXFACTURA_API_BASE_URL

URL de l'API

https://api.voxfactura.com

VOXFACTURA_DOSSIER

Clé cabinet : numéro du dossier client lu par défaut

aucun

Cabinet comptable : une clé pour tous vos dossiers

Un cabinet d'expertise comptable crée une clé cabinet (vf_cab_…) depuis son espace cabinet VoxFactura, page API. Elle lit, en lecture seule, les dossiers des clients qui vous ont donné accès, un dossier à la fois :

  • l'outil dossiers liste vos dossiers (numéro, raison sociale, SIREN) ;

  • chaque outil accepte un paramètre dossier (numéro du dossier) ; à défaut, le serveur prend VOXFACTURA_DOSSIER ;

  • les outils d'écriture répondent par un refus : une clé cabinet ne modifie rien ;

  • chaque lecture figure dans le journal que voit votre client, qui peut retirer l'accès à tout moment.

{
  "mcpServers": {
    "voxfactura-cabinet": {
      "command": "voxfactura-mcp",
      "env": { "VOXFACTURA_API_KEY": "vf_cab_votre_cle", "VOXFACTURA_DOSSIER": "1" }
    }
  }
}

Outils

Outil

Rôle

Permission

dossiers

Dossiers clients d'une clé cabinet

clé cabinet

factures_impayees

Factures impayées

factures

factures

Factures (filtres statut / chantier / période)

factures

facture

Détail d'une facture

factures

pdf_facture

PDF Factur-X d'une facture émise (base64)

factures

depenses

Dépenses avec leur client, devis et facture (filtres client / chantier / catégorie / période)

dépenses

justificatifs_depense

Justificatifs d'une dépense

dépenses

justificatif

Fichier d'un justificatif (base64)

dépenses

clients

Liste / recherche clients

clients

marge_client

Facturé HT, dépenses et marge d'un client, par travail

factures + dépenses

chantiers

Liste des chantiers (ancien regroupement)

chantiers

chantier

Détail d'un chantier (ancien regroupement)

chantiers

marge_chantier

Ancien : CA facturé − dépenses d'un chantier, préférer marge_client

factures + dépenses

recap_tva

TVA collectée / déductible / nette

comptabilité

journal_ventes

Journal des ventes d'une période

comptabilité

journal_achats

Journal des achats d'une période

comptabilité

journal_ventes_csv

Journal des ventes en CSV

comptabilité

journal_achats_csv

Journal des achats en CSV

comptabilité

export_fec

Fichier des écritures comptables de l'année

comptabilité

encaissements

Factures encaissées d'une période (date, montant, moyen)

payments:read

creer_devis_brouillon

Crée un devis (brouillon)

devis:write

modeles_devis

Modèles de devis du compte et leurs variables

devis:write

devis_depuis_modele

Crée un devis (brouillon) depuis un modèle

devis:write

marquer_facture_payee

Marque une facture payée

payments:write

ajouter_depense

Ajoute une dépense

expenses:write

Tous les outils (sauf dossiers) acceptent aussi dossier, utile seulement avec une clé cabinet.

API sous-jacente

Le serveur n'est qu'un habillage de l'API publique VoxFactura (lecture/écriture scopée). Doc interactive : https://api.voxfactura.com/api/v1/pub/docs. Voir aussi llms.txt et examples/.

Éditeur

VoxFactura est édité par ASTERIO 37, SAS immatriculée au RCS de Paris (SIREN 107 559 619), 231 rue Saint-Honoré, 75001 Paris. Données hébergées dans l'Union européenne. Site : https://www.voxfactura.com. Contact : contact@voxfactura.com. Mentions légales : https://www.voxfactura.com/legal/mentions-legales.

La facture électronique passe par une plateforme agréée par l'administration fiscale : VoxFactura n'est pas elle-même plateforme agréée.

Licence

MIT.

Available Tools

25 tools
ajouter_depenseC

Ajoute une dépense (permission expenses:write). Montants en texte (ex. « 240.00 »). Rattache à un chantier via chantier_id (numéro du chantier dans le compte).

NameRequiredDescriptionDefault
dossierNo
categorieNo
montant_htNo
chantier_idNo
designationYes
fournisseurNo
montant_ttcYes
montant_tvaNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses the permission scope and the required text format for amounts, but says nothing about what gets created, whether the expense is a draft or final, what happens on validation failure, or how duplicates are handled. For a mutation tool this leaves major gaps.

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

Conciseness4/5

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

Three short clauses, front-loaded with the purpose and then the two most consequential call details (format and linking). No filler, though the parenthetical permission note interrupts the flow slightly.

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

Completeness2/5

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

A mutation tool with no annotations, no output schema, and 8 parameters at 0% schema coverage. The description covers only two of those parameters and no success/failure behavior, so an agent lacks the context to call it confidently with all fields populated.

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

Parameters2/5

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

Schema coverage is 0% and there are 8 parameters, so the description must compensate. It adds real meaning for montant_ttc (text format, e.g. '240.00') and chantier_id (the site number within the account), but leaves dossier, categorie, montant_ht, fournisseur, and montant_tva completely undocumented, and does not explain the relationship between the three montant fields.

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

Purpose4/5

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

States a specific verb and resource ('Ajoute une dépense'), which cleanly separates it from the read-oriented sibling 'depenses'. It does not explicitly name an alternative or clarify how it relates to 'justificatifs_depense', so sibling differentiation is implicit rather than stated.

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

Usage Guidelines2/5

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

The description discloses the required permission (expenses:write), which is a useful prerequisite, but gives no when-to-use guidance, no exclusions, and never points to a sibling alternative. An agent must infer usage context entirely.

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

chantierC

Détail d'un chantier (ancien regroupement) par son numéro dans le compte (le champ id renvoyé par la liste des chantiers).

NameRequiredDescriptionDefault
dossierNo
chantier_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read ('Détail'), but never states permissions, whether `dossier` scopes/filters the lookup, what happens if the id is invalid, or what the returned detail contains. Only the legacy naming note ('ancien regroupement') is added.

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

Conciseness4/5

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

A single front-loaded sentence with the resource and lookup key stated first. Efficient, though the parenthetical legacy note is marginally useful rather than essential.

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

Completeness2/5

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

For a detail tool with no output schema, no annotations, and 0% schema coverage, the description should convey what the detail response includes and how `dossier` affects it. It references the id source but omits return content and one parameter entirely, leaving real gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies `chantier_id` (the `id` field returned by the chantier list), but says nothing about the `dossier` parameter — its meaning, default, or whether it filters the result — leaving one of two parameters undocumented everywhere.

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

Purpose4/5

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

States a specific verb+resource: retrieves the detail of a single chantier identified by its account number. It implicitly contrasts with the list tool 'chantiers' by explaining that the id comes from that list, so an agent can distinguish single-fetch from list. It doesn't name siblings explicitly, so not a 5.

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

Usage Guidelines3/5

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

The description hints at a workflow — get the `id` from 'chantiers' first — which implies when this tool is used. However, it gives no explicit when-to-use vs when-not, no alternatives (e.g., marge_chantier), and no prerequisites beyond the id source.

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

chantiersA

Liste les chantiers (ancien regroupement, gardé pour compatibilité), éventuellement filtrés par statut (en_cours, termine…) ou par client (client_id = numéro du client dans le compte). Pour la marge, préférer marge_client.

NameRequiredDescriptionDefault
statutNo
dossierNo
client_idNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that this is a legacy grouping kept for compatibility and that it is a read/list operation, but says nothing about the return payload, pagination, or volume, which are the traits an agent would need for a list endpoint.

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

Conciseness4/5

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

Three tight clauses, front-loaded with the action, then filters, then the alternative-tool hint. Every sentence earns its place, though the parenthetical about legacy status could be trimmed slightly.

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

Completeness3/5

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

For a simple list tool with no output schema or annotations, the description covers purpose, filtering, and routing reasonably well, but it leaves the `dossier` parameter and the shape of the returned list unexplained.

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 0%, so the description must compensate. It explains `statut` (en_cours, termine…) and `client_id` (numéro du client dans le compte), adding real meaning, but completely omits the `dossier` parameter, leaving one of three parameters undocumented.

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

Purpose4/5

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

States a specific verb and resource ('Liste les chantiers') and adds scope context ('ancien regroupement, gardé pour compatibilité') that helps distinguish it from newer siblings like `chantier` or `marge_chantier`. It does not fully disambiguate from the singular `chantier` sibling, keeping it from a 5.

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

Usage Guidelines4/5

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

Gives clear routing guidance — 'Pour la marge, préférer marge_client' — and describes filterable usage ('éventuellement filtrés par statut… ou par client'). It lacks explicit exclusions against other siblings such as `dossiers` or `chantier`, so it stops short of a 5.

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

clientsC

Liste les clients, avec une recherche textuelle optionnelle.

NameRequiredDescriptionDefault
dossierNo
rechercheNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden and does very little: it implies a read-only listing but says nothing about permissions, result volume, pagination, or what 'dossier' scoping does. Only the fact that search is optional and textual is disclosed.

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

Conciseness4/5

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

A single short, front-loaded sentence with no filler or repetition. It is efficient, though its brevity is partly under-specification rather than disciplined concision.

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

Completeness2/5

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

For a two-parameter tool with no annotations, no output schema, and 0% schema coverage, the description is too thin: it leaves the 'dossier' filter and the shape of the returned client list entirely unexplained.

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

Parameters2/5

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

Schema description coverage is 0% for both parameters. The description explains 'recherche' as an optional text search, which adds some meaning, but the 'dossier' parameter is never mentioned in the description or schema, leaving half the inputs undocumented.

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

Purpose4/5

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

States a specific verb and resource ('Liste les clients') and adds the optional text-search scope, so an agent can distinguish it from the facture/depense/journal siblings at a glance. It does not explicitly differentiate from a hypothetical filtered-client sibling, but the sibling list contains no competing client tool.

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

Usage Guidelines3/5

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

Usage is only implied: listing clients with an optional text filter. There is no statement of when to prefer it, when not to use it, or which alternative to reach for, so the agent must infer context.

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

creer_devis_brouillonA

Crée un devis en BROUILLON (permission devis:write). client_id et chantier_id sont les numéros du client et du chantier dans le compte. Chaque ligne : {designation, quantite, unite, prix_unitaire_ht, taux_tva}, plus en option prestation_id (numéro de la prestation du catalogue ; prix omis, la ligne prend le prix de ce client, sinon celui du catalogue) et nature (« bien » pour une vente, « service » sinon ; omise, elle suit la prestation du catalogue puis le réglage du compte). validite_jours : durée de validité (omis = celle réglée sur le compte, 30 jours par défaut). delai_execution : délai imprimé sur le devis (ex. « 3 semaines après acceptation »). Le devis n'est jamais envoyé automatiquement : l'artisan le relit et l'envoie dans VoxFactura. Son numero est nul tant qu'il est brouillon : le numéro définitif lui est attribué à l'envoi.

NameRequiredDescriptionDefault
notesNo
objetNo
lignesYes
dossierNo
client_idYes
chantier_idNo
validite_joursNo
delai_executionNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the required permission, that the quote stays draft, that numero is null until sent and assigned on send, and that sending is never automatic. It omits error/validation behavior and return values, keeping it short of a 5.

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

Conciseness4/5

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

A single dense paragraph, front-loaded with the action and state, then the parameter semantics, then the draft/numbering behavior. Information-dense with little waste, though it could be split for readability.

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?

For an 8-parameter mutation tool with no annotations and no output schema, the description covers permissions, draft lifecycle, defaults and the nested line schema. Remaining gaps are notes/objet/dossier and any statement of what is returned, which is acceptable given no output schema exists.

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 0%, so the description must compensate and largely does: it defines client_id/chantier_id, the per-line structure {designation, quantite, unite, prix_unitaire_ht, taux_tva}, the optional prestation_id with its pricing-fallback logic, nature defaults, and validite_jours default. It leaves notes, objet and dossier undocumented, so not a full 5.

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?

States a specific verb (crée) and resource (devis) plus the exact state produced (BROUILLON). No sibling tool operates on devis, so it is trivially distinguishable from the read-oriented list/export siblings.

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

Usage Guidelines4/5

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

Clarifies the workflow context ("Le devis n'est jamais envoyé automatiquement : l'artisan le relit et l'envoie dans VoxFactura") and the required permission (devis:write), so the agent knows this only creates a draft. It gives no explicit alternatives or exclusions, but none exist among the siblings.

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

depensesB

Liste les dépenses (factures de frais). Chacune dit à quel client, devis ou facture elle est rattachée (client_id, devis_id, facture_id, numéros du compte). Filtrables par client (client_id = numéro du client dans le compte), par chantier (numéro du chantier, ancien regroupement), catégorie ou période (debut / fin en AAAA-MM-JJ, inclus).

NameRequiredDescriptionDefault
finNo
debutNo
dossierNo
categorieNo
client_idNo
chantier_idNo

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It is reasonably clear this is a read/list operation and it discloses what each returned row contains (attachment to client, devis, or facture), which is valuable given there is no output schema. It omits pagination, volume, and authorization behavior, so the disclosure is only partial.

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

Conciseness4/5

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

The purpose is front-loaded in the first sentence, followed by structure and filter details. It is appropriately sized for six filters, with only mild parenthetical clutter.

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

Completeness3/5

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

For a six-parameter, no-annotation, no-output-schema tool this covers most of what an agent needs — purpose, filter semantics, and partial return content. However, the dossier parameter goes undocumented and there is no note on result size or ordering, leaving clear gaps.

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?

With 0% schema coverage the description must compensate, and it does for most parameters: client_id (client number in account), chantier (site number, legacy grouping), catégorie, and debut/fin (defined as AAAA-MM-JJ and inclusive). The dossier parameter is never mentioned, leaving one of six filters undocumented in both schema and description.

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

Purpose4/5

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

States a specific verb and resource ('Liste les dépenses (factures de frais)') and clarifies the resource type, so it can be told apart from write-oriented siblings like ajouter_depense. It does not, however, name a specific sibling or contrast its scope, so it stops short of a 5.

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

Usage Guidelines2/5

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

The description lists available filters but never says when to use this tool versus alternatives such as journal_achats, justificatifs_depense, or ajouter_depense. Usage is only implied by the list semantics, with no exclusions or prerequisites.

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

devis_depuis_modeleA

Crée un devis en BROUILLON depuis un modèle de devis (permission devis:write). modele : nom ou numéro du modèle (voir modeles_devis). variables : valeur de chaque variable sous son nom, dates en AAAA-MM-JJ. client_id : numéro du client dans le compte, sinon celui du modèle. Jamais envoyé automatiquement : l'artisan le relit et l'envoie dans VoxFactura.

NameRequiredDescriptionDefault
modeleYes
dossierNo
client_idNo
variablesNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the load and does well: it discloses the permission needed, that the result is a DRAFT, and that nothing is sent automatically (the artisan reviews and sends in VoxFactura). It omits failure behavior (unknown template, missing variables) and what identifier is returned.

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

Conciseness4/5

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

Front-loaded with the action and draft status, then parameter-by-parameter notes with no filler. Dense but every clause carries information; only the unmentioned `dossier` is a gap rather than verbosity.

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?

No annotations and no output schema, but the description covers purpose, permission, the non-auto-send guarantee, and 3 of 4 parameters. An agent can call it correctly; the missing `dossier` semantics and return value are the remaining holes.

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 0%, so the description must compensate and largely does: `modele` (name or number, cross-referenced to `modeles_devis`), `variables` (value keyed by variable name, dates as AAAA-MM-JJ), and `client_id` (account client number, else the template's). The `dossier` parameter is never mentioned.

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

Purpose4/5

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

States a specific verb and resource ('Crée un devis en BROUILLON depuis un modèle de devis'), including the draft-state qualifier that separates it from a from-scratch creation. It does not explicitly name the sibling creer_devis_brouillon, so differentiation is implied by 'depuis un modèle' rather than stated.

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

Usage Guidelines4/5

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

Routes the agent to `modeles_devis` to resolve the template name/number, and states the required permission (devis:write). It gives clear usage context but no explicit when-not/exclusion guidance.

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

dossiersA

Clé cabinet seulement : les dossiers clients accessibles (numéro, raison sociale, SIREN). Passez ensuite ce numéro dans le paramètre dossier des autres outils (ou dans VOXFACTURA_DOSSIER).

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations, so the description carries the full burden. It usefully discloses an auth constraint ('Clé cabinet seulement') and the workflow ordering as a prerequisite step, but says nothing about result size, pagination, or error behavior when no cabinet key is present.

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

Conciseness4/5

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

Two tight sentences, front-loading the credential constraint and the returned fields before the follow-up instruction. The colon-fragment opening is slightly compressed but nothing is wasted.

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?

For a zero-parameter read tool with no output schema, it covers what is returned, what credential is needed, and how to consume the result. Missing only volume/format details that an agent might want before calling.

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?

The tool takes zero parameters, so the baseline is 4. The mention of the `dossier` parameter belongs to sibling tools, not this one, and is not misleading here.

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

Purpose4/5

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

States a specific resource (client dossiers) and enumerates the returned fields (numéro, raison sociale, SIREN), so an agent knows exactly what it gets back. It does not differentiate itself from the sibling `clients`, which an agent could easily confuse with this tool.

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

Usage Guidelines4/5

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

Gives clear downstream usage: pass the returned numéro into the `dossier` parameter of other tools or set VOXFACTURA_DOSSIER. It does not state when not to use it or how it differs from `clients`, so it stops short of full alternative routing.

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

encaissementsB

Factures encaissées sur une période (dates AAAA-MM-JJ) : facture, date, montant, moyen (carte, virement, déclaré). Permission encaissements.

NameRequiredDescriptionDefault
finNo
debutNo
limitNo
dossierNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose a genuine behavioral trait – the required permission ('Permission encaissements') – and reveals the return shape including the 'moyen' enum values (carte, virement, déclaré). However it never states that this is a read-only listing, nor how the 'limit' behaves (default 100 is only in the schema).

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

Conciseness4/5

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

A single front-loaded sentence with a colon-delimited field list and a trailing permission clause; no padding. It is dense but every element is informative.

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

Completeness3/5

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

For a 4-parameter tool with no annotations and no output schema, the description does cover the purpose, date format, return fields, and permission. But the dossier/limit parameters and the pagination behavior are missing, leaving the definition only partially complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It usefully gives the date format (AAAA-MM-JJ) covering debut/fin, but the 'dossier' and 'limit' parameters are entirely undocumented anywhere. Half the parameters are left opaque.

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

Purpose4/5

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

States a specific resource and scope: 'Factures encaissées sur une période' (invoices collected over a period), and enumerates the returned fields (facture, date, montant, moyen). This clearly separates it from siblings like factures_impayees and factures. It does not, however, explicitly name those siblings to sharpen the distinction.

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

Usage Guidelines2/5

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

The phrase 'sur une période' implies a date-range retrieval, but there is no explicit when-to-use guidance, no mention of when to prefer this over factures_impayees or journal_ventes, and no prerequisites stated. The agent gets no routing help.

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

export_fecC

Fichier des écritures comptables (FEC, texte tabulé) de l'année, à remettre à l'expert-comptable. Nécessite la permission comptabilité.

NameRequiredDescriptionDefault
anneeYes
dossierNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral burden. It discloses one important prerequisite ('Nécessite la permission comptabilité'), which is useful auth context. However, nothing about the output format beyond 'texte tabulé', no indication of which data is included or excluded, and no note about the year-vs-dossier scoping behavior.

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

Conciseness4/5

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

Very short and essentially front-loaded with purpose and prerequisite. No padding, though it is arguably under-specified rather than concise.

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

Completeness2/5

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

For a 2-parameter tool with no annotations, no output schema, and 0% schema coverage, the description is too thin. It should specify the year/dossier semantics and what the export contains or excludes.

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

Parameters2/5

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

Schema description coverage is 0% and no parameter is described in the text. The description implies 'de l'année' scoping, weakly hinting at the annee parameter, but neither annee nor dossier is explained, and their roles (e.g. filtering by folder) are left entirely to the schema.

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

Purpose3/5

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

The description names the resource (FEC – fichier des écritures comptables) and the format (texte tabulé) with a year scope, which is more specific than a bare name. However, the verb is only implied ('à remettre à l'expert-comptable') rather than an explicit action like 'exporte'. It lacks a clear action verb but the resource is identifiable.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It mentions it is meant for the accountant, implying a periodic/legal accounting use, but no sibling is named and no condition for use is given.

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

factureB

Détail d'une facture (lignes comprises) par son numéro dans le compte (le champ id renvoyé par la liste des factures).

NameRequiredDescriptionDefault
dossierNo
facture_idYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the return includes line items, which is useful, and 'Détail' implies a read operation, but it says nothing about permissions, the optional `dossier` scope, or what happens with invalid ids.

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

Conciseness4/5

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

A single efficient sentence with the key action front-loaded and the id-source clarification in parentheses. No wasted text, though the parenthetical is slightly dense.

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

Completeness3/5

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

For a two-parameter read tool with no output schema, the description covers the primary id parameter and return scope, but omits any explanation of `dossier` and any behavioral detail. It is adequate but leaves clear gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It meaningfully explains facture_id (the id from the invoice list), but leaves the optional `dossier` parameter completely unexplained in both schema and description, leaving half the parameters ambiguous.

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

Purpose4/5

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

The description names a specific verb (get the detail) and resource (facture/invoice), and adds scope (lignes comprises – line items included). It distinguishes itself from the sibling `factures` list by stating it works 'par son numéro' using the id returned by that list.

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

Usage Guidelines3/5

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

It implies when to use it by telling the agent to obtain the id from the invoice list, effectively routing from `factures` to this tool. However, it gives no explicit when-not conditions or prerequisites (e.g. does the invoice need to exist, any account scoping).

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

facturesB

Liste les factures émises, éventuellement filtrées par statut, chantier (chantier_id = numéro du chantier dans le compte) ou période d'émission (debut / fin en AAAA-MM-JJ, inclus).

NameRequiredDescriptionDefault
finNo
debutNo
limitNo
statutNo
dossierNo
chantier_idNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Liste' implies a read-only operation, but the description says nothing about pagination behavior despite a 'limit' parameter defaulting to 50, nor about ordering, result size, or permissions - significant gaps for a tool with zero annotation coverage.

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

Conciseness4/5

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

A single well-formed sentence with the listing purpose front-loaded and filters in a trailing clause; there is no wasted verbiage. The parenthetical clarifications add value without bloat.

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

Completeness3/5

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

With six parameters, no annotations, no output schema, and 0% schema coverage, the description covers the core operation and several filters but leaves 'dossier' and 'limit' unexplained and gives no sense of the return shape. It is adequate but not complete for a tool of this complexity.

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 description coverage is 0%, so the description must compensate, and it partially does: it clarifies that chantier_id is the site number within the account and that debut/fin use AAAA-MM-JJ format and are inclusive. However, it omits any explanation of 'dossier' and 'limit', leaving two of six parameters undocumented anywhere.

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

Purpose4/5

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

The description states a specific verb and resource ('Liste les factures émises') and scopes it to issued invoices, so an agent immediately knows this retrieves a collection. However, it does not differentiate from close siblings such as 'facture' (singular) or 'factures_impayees', leaving the agent to infer the boundary.

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

Usage Guidelines3/5

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

It indicates that filtering by statut, chantier, or emission period is possible, which implies the usage context. But there is no explicit when-to-use guidance and no mention of the alternative tools (facture for a single record, factures_impayees for unpaid ones), so the routing decision is left implicit.

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

factures_impayeesB

Liste les factures impayées (envoyées, partiellement payées, en retard).

NameRequiredDescriptionDefault
dossierNo

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. 'Liste' implies a read-only operation and the parenthetical discloses the filter criteria, which is useful. However, it says nothing about whether the optional dossier filter defaults to all dossiers, whether results are paginated, or the auth scope.

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?

One compact sentence, front-loaded with the action and resource, with the parenthetical doing real clarifying work. No filler.

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

Completeness3/5

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

For a simple read-only list with no output schema and no annotations, the description covers what is listed but leaves the dossier filter semantics and result scope unexplained. Adequate but with a clear gap around the only parameter.

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

Parameters2/5

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

The single 'dossier' parameter has 0% schema description coverage, and the description never mentions it. An agent cannot tell from either source whether omitting it lists all dossiers or which dossier's unpaid invoices are returned.

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

Purpose4/5

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

States a specific verb ('Liste') and a precisely scoped resource ('factures impayées'), then defines the scope with the statuses it includes (envoyées, partiellement payées, en retard). This makes it clearly distinct from the sibling 'factures' (all invoices), though it never names that sibling explicitly.

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

Usage Guidelines2/5

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

No guidance on when to choose this over 'factures', 'facture', or 'marquer_facture_payee'. The parenthetical clarifies what 'impayées' means but offers no usage context, prerequisites, or alternatives.

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

journal_achatsA

Journal des achats sur une période (dates AAAA-MM-JJ) : une écriture par dépense. Nécessite la permission comptabilité.

NameRequiredDescriptionDefault
finYes
debutYes
dossierNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does add two useful facts — a permission requirement and the one-entry-per-expense output granularity. It still omits response format, pagination, and any failure behavior, which matters for an unannotated tool.

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?

A single compact sentence; period, date format, granularity, and permission each earn their place, and the core resource is front-loaded.

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

Completeness3/5

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

Without annotations or an output schema, the description should fill more gaps. It covers permission and granularity but says nothing about the undocumented 'dossier' parameter or the shape of returned entries, leaving an agent partially equipped.

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 description coverage is 0%, so the description must compensate. It supplies the date format (AAAA-MM-JJ) for the required debut/fin parameters, adding real meaning, but leaves the optional 'dossier' parameter entirely unexplained in both schema and description.

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

Purpose4/5

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

States a specific verb+resource (purchase journal) with the scope (over a period) and granularity (one entry per expense). It is clearly distinguishable from the sales-journal siblings by name, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

It indicates the required input (a period) and the accounting permission prerequisite, which implies when it applies. However, it never explains when to choose this over journal_achats_csv or journal_ventes, so routing stays inferential.

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

journal_achats_csvC

Journal des achats en CSV (séparateur « ; », montants à virgule). Permission comptabilité.

NameRequiredDescriptionDefault
finYes
debutYes
dossierNo

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose useful behavioral facts: CSV output, semicolon separator, comma decimals, and a required accounting permission. It still omits whether this is a read-only export, any row/volume behavior, and date-range handling.

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

Conciseness4/5

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

Two terse fragments with zero filler, and the format and permission details are front-loaded. It is arguably under-specified rather than bloated, but every phrase is load-bearing.

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

Completeness2/5

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

For a 3-parameter export tool with no output schema and 0% schema coverage, the description covers output format and permission but leaves all parameter semantics and the read-only nature undocumented. It is not complete enough for an agent to construct a correct call unaided.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds nothing about the three parameters. It never explains the expected format for debit/fin (the two required dates) or what dossier selects, so an agent must guess the date syntax and the meaning of dossier.

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

Purpose4/5

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

States a specific resource (purchases journal) plus the output format (CSV), which implicitly distinguishes it from the sibling journal_achats (the non-CSV variant). The verb is absent, but for an export-style tool the noun phrase is clear enough to identify what it produces.

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

Usage Guidelines2/5

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

No guidance on when to choose this over journal_achats or journal_ventes_csv. The only usage-relevant hint is 'Permission comptabilité', which signals a prerequisite but not the selection conditions or alternatives.

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

journal_ventesB

Journal des ventes sur une période (dates AAAA-MM-JJ) : une écriture par facture et avoir. Nécessite la permission comptabilité.

NameRequiredDescriptionDefault
finYes
debutYes
dossierNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose two valuable traits: the required accounting permission and the fact that the output contains one entry per invoice and credit note. It does not confirm read-only behavior, pagination, or volume limits, which is a notable gap for a report tool.

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

Conciseness4/5

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

A single compact sentence that front-loads the resource and scope, then adds granularity and the permission prerequisite. No filler, though the sentence could have been split for easier scanning of the permission requirement.

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

Completeness3/5

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

For a three-parameter reporting tool with no output schema and no annotations, the description covers the essentials of scope, date format, output granularity, and auth. It leaves the optional dossier parameter and the distinction from the CSV sibling unaddressed, so it is adequate but not complete.

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 description coverage is 0%, so the description must compensate. It supplies the date format (AAAA-MM-JJ) for debut and fin, covering two of three parameters, but the optional 'dossier' parameter is undocumented in both the schema and the description, leaving its meaning and effect unexplained.

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

Purpose4/5

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

The description names a specific resource (Journal des ventes) with an explicit scope (une période) and output granularity (une écriture par facture et avoir), which clearly distinguishes it from a generic report tool. It does not, however, mention the closest sibling journal_ventes_csv, so the agent must infer the difference between the two.

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

Usage Guidelines3/5

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

Usage is implied by the period scope and the stated prerequisite 'Nécessite la permission comptabilité', which is genuinely useful gating information. There is no explicit statement of when to prefer this over journal_ventes_csv or journal_achats, and no exclusions, so guidance remains inferential.

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

journal_ventes_csvB

Journal des ventes en CSV (séparateur « ; », montants à virgule), tel que l'importe un logiciel de compta français. Permission comptabilité.

NameRequiredDescriptionDefault
finYes
debutYes
dossierNo

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses two real traits: the required accounting permission and the output formatting conventions. However it says nothing about date-range scoping, defaults, pagination, or what 'dossier' controls, leaving meaningful gaps for an unannotated tool.

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

Conciseness4/5

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

Two compact clauses with no padding; the format specifics are front-loaded and the permission note is appended efficiently. Nothing is wasted, though it is terse rather than maximally informative.

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

Completeness2/5

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

For a 3-parameter export tool with no annotations, no output schema, and 0% schema description coverage, the description is too thin: parameters, defaults, and error/precondition behavior beyond the permission note are all missing.

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

Parameters2/5

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

Schema description coverage is 0% and the description never addresses 'debut', 'fin', or 'dossier'. An agent must guess that debut/fin are a date range and that dossier selects a file/entity. The format details given are output traits, not parameter semantics, so the 0%-coverage gap is largely uncompensated.

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

Purpose4/5

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

The description states a specific verb+resource (exports the sales journal as CSV) and pins down the exact format conventions (semicolon separator, decimal comma, French accounting-software import). This distinguishes it from the sibling journal_ventes, though the differentiation is implied by format rather than stated outright.

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

Usage Guidelines3/5

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

It implies the usage context ('tel que l'importe un logiciel de compta français') and states a prerequisite ('Permission comptabilité'), which is useful. But it never explicitly says when to prefer this over the plain journal_ventes sibling, leaving the choice to inference.

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

justificatifB

Télécharge un justificatif d'une dépense (depense_id = numéro de la dépense dans le compte, justificatif_id = le champ id de justificatifs_depense), en base64 avec son type.

NameRequiredDescriptionDefault
dossierNo
depense_idYes
justificatif_idYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses the return encoding ('en base64 avec son type'), which is real behavioral value for a download tool. However it says nothing about permissions, authentication, size limits, or error behavior, leaving meaningful gaps for a tool with zero annotation coverage.

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

Conciseness4/5

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

A single well-structured sentence with the action verb front-loaded and the parameter clarifications parenthesized. No wasted text. Slightly dense but appropriately sized for the tool.

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

Completeness3/5

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

There is no output schema, so the description is right to state the return format (base64 + type). For a download tool with no annotations, it still omits the `dossier` parameter's purpose and any access/error context, so it is adequate but not complete.

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 description coverage is 0%, so the description must compensate. It clearly explains depense_id ('numéro de la dépense dans le compte') and justificatif_id (the id field from justificatifs_depense), which is genuinely helpful. But the optional `dossier` parameter is never mentioned, leaving one of three parameters undocumented in both schema and description.

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

Purpose4/5

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

States a specific verb+resource: 'Télécharge un justificatif d'une dépense' (downloads an expense receipt). This distinguishes it from the list-style sibling justificatifs_depense and from pdf_facture. It does not, however, explicitly name the sibling it differs from, so it stops short of a 5.

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

Usage Guidelines3/5

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

There is no explicit when-to-use/when-not guidance, but the parameter gloss ('justificatif_id = le champ id de justificatifs_depense') implies the workflow: call justificatifs_depense first, then fetch the file here. Usage is inferable rather than stated, so a 3.

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

justificatifs_depenseB

Liste les justificatifs (photo de ticket, PDF) d'une dépense, par son numéro dans le compte : id, nom, type, taille.

NameRequiredDescriptionDefault
dossierNo
depense_idYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. 'Liste' makes the read-only nature clear and it usefully discloses the nature of the returned items (ticket photos, PDFs) and their fields. It says nothing about permissions, pagination, or what happens when an expense has no receipts, which leaves real gaps for an unannotated tool.

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

Conciseness4/5

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

A single front-loaded sentence that opens with the verb and resource, then qualifies scope and outputs. No filler, though the dense clause structure leaves the 'dossier' parameter unaddressed.

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

Completeness3/5

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

For a simple two-parameter read tool with no output schema, the description compensates somewhat by naming the returned fields. However it omits any explanation of 'dossier', gives no hint of result shape or emptiness handling, and does not route the agent away from the near-identical 'justificatif' sibling.

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 description coverage is 0%, so the description must compensate. It explains depense_id ('son numéro dans le compte') but the optional 'dossier' parameter is never mentioned in either schema or description, leaving one of two parameters semantically opaque.

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

Purpose4/5

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

States a specific verb (Liste) and resource (justificatifs) scoped to a single dépense identified by its account number, and enumerates the returned fields (id, nom, type, taille). It does not, however, explicitly distinguish itself from the very close sibling 'justificatif' (singular), leaving the list-vs-single distinction to inference.

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

Usage Guidelines2/5

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

The description never says when to use this tool versus the sibling 'justificatif', 'depenses', or 'pdf_facture'. The phrase 'par son numéro dans le compte' only implies that an expense id is needed; there is no explicit when/when-not guidance.

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

marge_chantierA

Ancien regroupement, gardé pour compatibilité : préférer marge_client. Marge d'un chantier (par son numéro dans le compte) : chiffre d'affaires facturé moins les dépenses rangées sur ce chantier. Nécessite une clé avec les permissions factures + dépenses.

NameRequiredDescriptionDefault
dossierNo
chantier_idYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden and does reasonably well: it discloses the auth/permission requirement (invoices + expenses scope) and the exact computation semantics (billed revenue minus site expenses). It does not describe the response shape or how the value is returned, which is 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.

Conciseness4/5

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

Three compact sentences with the deprecation/alternative notice front-loaded, followed by definition and prerequisites. Every sentence earns its place; no filler or repetition.

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?

With no annotations and no output schema, the description does most of the load-bearing work: it explains what is computed, so the return value is inferable, and it states required permissions. The unexplained `dossier` parameter is the one meaningful omission.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It partially clarifies `chantier_id` ('par son numéro dans le compte' — the account's site number), but the optional `dossier` parameter is never mentioned anywhere, leaving half the input surface undocumented in both schema and prose.

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?

The description names the resource (chantier margin) and defines it precisely: billed revenue minus expenses attributed to that site. It also marks itself as a deprecated compatibility shim and points to `marge_client`, so an agent can distinguish it from the near-identical sibling without opening either schema.

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?

It gives explicit routing guidance: 'préférer `marge_client`' for new work, and states this tool is kept only for backward compatibility. It also names the required key permissions (factures + dépenses), which is an actionable prerequisite for invocation.

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

marge_clientA

Marge d'un client (client_id = numéro du client dans le compte, le champ id de l'outil clients) : facturé HT, dépenses et marge, en tout et par travail (un devis et ses factures, une facture seule, ou un regroupement), plus une ligne sans_document pour les dépenses du client sans devis ni facture. Mêmes chiffres que la fiche client de VoxFactura ; depenses_en_ttc vrai pour un compte en franchise de TVA. Nécessite une clé avec les permissions factures + dépenses.

NameRequiredDescriptionDefault
dossierNo
client_idYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the required permissions (factures + dépenses), the output breakdown including the special `sans_document` line, and a conditional behavior (`depenses_en_ttc` true for VAT-exempt accounts). It does not cover pagination or precise return format, but for a read-only computation that is a minor gap.

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

Conciseness4/5

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

The purpose and scope are front-loaded, and the paragraph is dense but each sentence conveys distinct information (breakdown, equivalence, VAT flag, permissions). Slightly heavy, but nothing is clearly wasted.

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 two-parameter computation tool with no annotations and no output schema, the description is complete enough: it explains the input identity, the computed output structure, the special-case line, and the permission prerequisite. Only the `dossier` parameter is left unexplained, which is a small residual gap against an otherwise rich description.

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 description coverage is 0%, so the description must compensate. It does explain `client_id` well by tying it to the `id` field of the clients tool, but it says nothing about the `dossier` parameter (default null), leaving one of two parameters entirely undocumented in both schema and description.

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?

The description names a specific computed resource (a client's margin), specifies the exact input identity (`client_id` = the client number, i.e. the `id` field from the clients tool), and enumerates the breakdown structure (total, per job, plus a `sans_document` line). This lets an agent distinguish it from `marge_chantier`, whose scope is sites rather than clients, without opening either schema.

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

Usage Guidelines3/5

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

It gives useful context ('mêmes chiffres que la fiche client de VoxFactura', needs a key with factures + dépenses permissions), which implies when the tool is appropriate. However, it never explicitly names an alternative or an exclusion (e.g. use `marge_chantier` for per-site margin), so the routing decision must be inferred.

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

marquer_facture_payeeB

Marque une facture payée (permission payments:write). facture_id = numéro de la facture dans le compte. montant (texte, ex. « 500.00 ») pour un paiement partiel ; vide = solde le total.

NameRequiredDescriptionDefault
dossierNo
montantNo
facture_idYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses the required permission (payments:write) and the partial-vs-full payment semantics, but says nothing about reversibility, side effects, or what the operation returns.

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

Conciseness4/5

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

A tight, front-loaded paragraph with no filler: action, permission, then per-parameter clarification. Every clause carries information.

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

Completeness3/5

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

For a mutation tool with no annotations and no output schema, the definition covers the permission and the two most important parameters but omits any account-scoping explanation for `dossier` and any statement of effect or return. Adequate but with clear gaps.

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 0%, so the description must compensate and it partly does: it defines facture_id as the invoice number within the account and explains montant's text format (e.g. « 500.00 ») and its partial-payment meaning. The `dossier` parameter is left completely undocumented, leaving a real gap.

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

Purpose4/5

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

The description opens with a specific verb+resource action ('Marque une facture payée'), which is immediately distinguishable from read-oriented siblings like factures/encaissements. It does not explicitly contrast itself with siblings such as factures_impayees, but the mutation intent is unambiguous.

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

Usage Guidelines3/5

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

There is an implicit usage condition baked into the parameters: a non-empty montant means a partial payment, an empty one settles the full balance. However, no when-to-use-vs-alternatives guidance or prerequisites beyond the permission string is offered, leaving the agent to infer the routing.

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

modeles_devisB

Modèles de devis de l'artisan (permission devis:write) : numéro, nom, objet et variables à remplir pour devis_depuis_modele.

NameRequiredDescriptionDefault
dossierNo

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It adds one genuinely useful behavioral fact — that the `devis:write` permission is required — but never states whether this is a read-only listing, how many results to expect, or whether the templates are user-scoped. The write-permission disclosure is worth credit but leaves the operation's nature ambiguous.

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

Conciseness4/5

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

A single compact sentence that front-loads the resource and the permission constraint. Nothing is wasted, though the parenthetical permission sits awkwardly mid-sentence.

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

Completeness3/5

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

For a one-optional-parameter listing tool this covers the resource, its fields, and the permission, and the absence of an output schema is mitigated by the enumerated fields. The undocumented `dossier` parameter is the notable gap.

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

Parameters2/5

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

Schema coverage is 0% and the single parameter `dossier` is never mentioned in the description. An agent cannot tell whether it filters templates by a specific job/folder or what happens when it is omitted (the schema only shows default null).

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

Purpose4/5

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

The description names the resource (quote templates for the tradesperson) and enumerates the fields each template carries (numéro, nom, objet, variables), and explicitly links it to the sibling `devis_depuis_modele`. It is clear this is the catalogue that feeds that tool, though the verb (list/retrieve) is only implied.

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

Usage Guidelines3/5

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

By saying the variables are 'to fill in for devis_depuis_modele', it implies you consult this tool before calling the template-filling tool. It does not state exclusions, prerequisites beyond the permission, or what to do if no templates exist.

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

pdf_factureB

PDF Factur-X d'une facture émise (par son numéro dans le compte), en base64 avec son nom de fichier. Un brouillon n'a pas de PDF.

NameRequiredDescriptionDefault
dossierNo
facture_idYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the return shape (base64 payload plus filename) and a precondition (drafts have no PDF), which is real behavioral value. It omits any mention of permissions, error behavior, or size/latency considerations.

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?

Two compact sentences with zero waste; the resource and return format are front-loaded, and the draft caveat follows efficiently.

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

Completeness3/5

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

For a PDF-retrieval tool with no output schema and no annotations, the description covers the return format and the draft limitation, but leaves the 'dossier' parameter and any failure modes unexplained, so it is only minimally complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies facture_id as 'son numéro dans le compte' (the invoice number within the account), but the 'dossier' parameter is never mentioned, leaving half the parameters undocumented in both schema and description.

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

Purpose4/5

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

States a specific verb and resource: retrieving the Factur-X PDF of an issued invoice, returned as base64 with its filename. This distinguishes it from sibling read tools like facture/factures, though it doesn't explicitly name those alternatives.

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

Usage Guidelines3/5

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

The clause 'Un brouillon n'a pas de PDF' gives an implicit when-not condition (drafts cannot be retrieved), which is genuinely useful. However, it offers no explicit guidance on when to prefer this over the sibling 'facture' tool, leaving usage largely inferred.

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

recap_tvaB

Récapitulatif TVA sur une période (dates AAAA-MM-JJ) : collectée, déductible, TVA nette. Nécessite la permission comptabilité.

NameRequiredDescriptionDefault
finYes
debutYes
dossierNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure; it does state the required accounting permission and the output summary fields, which adds value. However, it does not say whether the operation is read-only, whether it has side effects, or any rate/limit behavior, leaving significant gaps.

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?

Two compact sentences with no filler; the core function is front-loaded immediately.

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

Completeness2/5

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

For a tool with three parameters, no annotations, no output schema, and zero schema descriptions, the description is incomplete: it omits parameter details, usage alternatives, and return structure beyond naming the three VAT amounts.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain the three parameters. It only supplies the date format for the period and never mentions the optional dossier parameter or why debut/fin are required, leaving most parameter semantics undocumented.

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

Purpose4/5

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

The description states a specific verb and resource: 'Récapitulatif TVA sur une période' and lists the three computed amounts (collectée, déductible, TVA nette). It does not explicitly distinguish this recap from sibling journal or expense tools, so it falls short of 5.

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

Usage Guidelines2/5

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

The only usage context is the prerequisite 'Nécessite la permission comptabilité' and the date format. There is no guidance on when to choose this recap versus journal_ventes, journal_achats, or other sibling tools, nor any exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.3.3
    • Addeddevis_depuis_modele
    • Addedmodeles_devis
  2. 2 tool updatesv0.3.0
    • Changeddepenses1 field changed
      • addedInput schema / properties / client_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Client Id"
        +}
    • Addedmarge_client
  3. 22 tool updatesv0.2.1
    • Changedajouter_depense1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Changedchantier1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Changedchantiers1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Changedclients1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Changedcreer_devis_brouillon1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Changeddepenses3 fields changed
      • addedInput schema / properties / debut
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Debut"
        +}
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
      • addedInput schema / properties / fin
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Fin"
        +}
    • Addeddossiers
    • Addedencaissements
    • Changedexport_fec1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Changedfacture1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Changedfactures3 fields changed
      • addedInput schema / properties / debut
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Debut"
        +}
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
      • addedInput schema / properties / fin
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Fin"
        +}
    • Changedfactures_impayees1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Changedjournal_achats1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Addedjournal_achats_csv
    • Changedjournal_ventes1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Addedjournal_ventes_csv
    • Addedjustificatif
    • Addedjustificatifs_depense
    • Changedmarge_chantier1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Changedmarquer_facture_payee1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
    • Addedpdf_facture
    • Changedrecap_tva1 field changed
      • addedInput schema / properties / dossier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Dossier"
        +}
  4. 6 tool updatesv0.2.0
    • Addedchantier
    • Changedchantiers1 field changed
      • addedInput schema / properties / client_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Client Id"
        +}
    • Changedcreer_devis_brouillon3 fields changed
      • addedInput schema / properties / delai_execution
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Delai Execution"
        +}
      • addedInput schema / properties / notes
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Notes"
        +}
      • addedInput schema / properties / validite_jours
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Validite Jours"
        +}
    • Addedexport_fec
    • Addedjournal_achats
    • Addedjournal_ventes
  5. 11 tool updatesv0.1.1
    • First observedajouter_depense
    • First observedchantiers
    • First observedclients
    • First observedcreer_devis_brouillon
    • First observeddepenses
    • First observedfacture
    • First observedfactures
    • First observedfactures_impayees
    • First observedmarge_chantier
    • First observedmarquer_facture_payee
    • First observedrecap_tva

TDQS

B3/5.0

Scored across 25 tools

Disambiguation3/5

Several tools overlap: factures_impayees is a subset of factures with a status filter, journal_ventes_csv/journal_achats_csv duplicate the non-CSV journals with a different format, and legacy chantier/marge_chantier plus justificatif/justificatifs_depense can cause misselection. Descriptions often clarify intended use, but there is more than one or two ambiguous boundary.

Naming Consistency4/5

All names are snake_case and mostly French/domain-specific, with a generally predictable pattern of plural nouns for lists and verb_noun for writes. There are minor deviations such as devis_depuis_modele and export_fec, but the convention remains readable.

Tool Count3/5

25 tools is heavy for the apparent scope and includes redundant format variants and legacy compatibility tools that could be consolidated. The domain is broad—quotes, invoices, expenses, accounting, and cabinet access—so it is not an extreme mismatch, but it sits at the borderline.

Completeness3/5

Coverage is strong for listing clients, chantiers, invoices, expenses, accounting journals, TVA, FEC, and draft quote/expense creation. However, there is no devis list/detail after draft creation and no client or chantier creation/update, leaving some workflows with dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    MCP server for Invoice Ninja v5 API. Enables AI assistants to manage clients, invoices, quotes, payments, and time tracking through natural language.
    32
    8 npm
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for Spanish accounting for freelancers and SMEs, enabling AI agents to issue invoices, OCR expense PDFs, reconcile bank transactions, and prepare quarterly VAT (Modelo 303).
    23
    3
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Multi-tenant MCP server connecting accounting software to AI assistants via ~87 tools. Supports Bokio (Swedish accounting) with mock mode for development.
    -