Skip to main content
Glama

assign_person

Destructive

Assigns a person to a block. Validation: the block must support assignments (groupe, filiale, sous-filiale, verticale, transversale, container (division), externe, infrastructure — not node). The ownership percentage (shares) only applies to the 'entity' types (groupe, filiale, sous-filiale, verticale, transversale): on a division, an externe or an infrastructure, a person is assigned WITHOUT a share and any shares value (100 included) is refused.

Input Schema

NameRequiredDescriptionDefault
roleNoSpecific role in this block
cellIdYesID of the block (must be a type that supports assignments: groupe, filiale, sous-filiale, verticale, transversale, container (division), externe, infrastructure — not node)
sharesNoPercentage of the capital held (0-100). Only for the 'entity' types: groupe, filiale, sous-filiale, verticale, transversale — ANY value (100 included) is REFUSED on a division (container), an externe or an infrastructure: a person is assigned there WITHOUT shares (field omitted). The field is also omitted when the share is not known: no share is then declared, which is different from 100, and no value is invented
personIdYesID of the person
expectedProjectIdNoUUID of the project targeted by THIS call. ACTUALLY targets this project instead of the session project. Refused without changing anything if access is not granted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / cellId / description
      Previous value: -"ID de la cellule (doit être un type supportant les assignments: groupe, filiale, sous-filiale, verticale, transversale, container (pôle), externe, infrastructure — pas node)"New value: +"ID of the block (must be a type that supports assignments: groupe, filiale, sous-filiale, verticale, transversale, container (division), externe, infrastructure — not node)"
    • changedInput schema / properties / expectedProjectId / description
      Previous value: -"UUID du projet visé par CET appel. Cible RÉELLEMENT ce projet au lieu du projet de session. Refusé sans rien modifier si l'accès n'est pas accordé."New value: +"UUID of the project targeted by THIS call. ACTUALLY targets this project instead of the session project. Refused without changing anything if access is not granted."
    • changedInput schema / properties / personId / description
      Previous value: -"ID de la personne"New value: +"ID of the person"
    • changedInput schema / properties / role / description
      Previous value: -"Rôle spécifique dans ce bloc"New value: +"Specific role in this block"
    • changedInput schema / properties / shares / description
      Previous value: -"Pourcentage de participation au capital (0-100). Uniquement pour les types 'entity': groupe, filiale, sous-filiale, verticale, transversale — TOUTE valeur (100 compris) est REFUSÉE sur un pôle (container), un externe ou une infrastructure : une personne s'y affecte SANS part (champ omis). Le champ est omis aussi quand la part n'est pas connue : aucune part n'est alors déclarée, ce qui est différent de 100, et aucune valeur n'est inventée"New value: +"Percentage of the capital held (0-100). Only for the 'entity' types: groupe, filiale, sous-filiale, verticale, transversale — ANY value (100 included) is REFUSED on a division (container), an externe or an infrastructure: a person is assigned there WITHOUT shares (field omitted). The field is also omitted when the share is not known: no share is then declared, which is different from 100, and no value is invented"
  2. Changed1 schema field changed
    • changedInput schema / properties / shares / description
      Previous value: -"Pourcentage de participation au capital (0-100). Uniquement pour les types 'entity': groupe, filiale, sous-filiale, verticale, transversale — TOUTE valeur (100 compris) est REFUSÉE sur un pôle (container), un externe ou une infrastructure : une personne s'y affecte SANS part, en OMETTANT ce champ. OMETS-le aussi si la part n'est pas connue — n'en invente jamais une. Aucune part n'est alors déclarée, ce qui est différent de 100"New value: +"Pourcentage de participation au capital (0-100). Uniquement pour les types 'entity': groupe, filiale, sous-filiale, verticale, transversale — TOUTE valeur (100 compris) est REFUSÉE sur un pôle (container), un externe ou une infrastructure : une personne s'y affecte SANS part (champ omis). Le champ est omis aussi quand la part n'est pas connue : aucune part n'est alors déclarée, ce qui est différent de 100, et aucune valeur n'est inventée"
  3. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already flag this as a non-read-only, destructive mutation, and the description adds real domain behavior: shares are refused on non-entity block types, including 100, and omitted when unknown rather than invented. It still doesn't disclose the obvious destructive aspect — whether an existing assignment is replaced, or what happens on a duplicate assignment — so it stops short of full transparency.

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 five words, followed immediately by validation rules that matter for correct invocation. The single dense paragraph is justified by the domain complexity, though the parenthetical block-type lists make it slightly hard to scan.

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 destructive mutation with no output schema, the description covers validation but omits assignment semantics that matter: whether this overwrites an existing person on the block, whether role or shares are merged, and how expectedProjectId interacts with the session project. Those gaps leave an agent unsure of the side effects even though the schema is fully documented.

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

Parameters3/5

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

Schema coverage is 100%, so every parameter including expectedProjectId is already documented in the schema, often verbatim the same wording as the description. The description reinforces the shares/cellId interaction but adds little semantic detail beyond structured fields, so the baseline 3 applies.

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 ('Assigns a person to a block') and immediately scopes it with which block types accept assignments. It is distinguishable from the sibling unassign_person by direction, 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 Guidelines3/5

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

It gives useful preconditions (block must be an assignable type, shares only for entity types), which is more than nothing. But it never says when to use this versus unassign_person, or what to do for a division/externe/infrastructure beyond omitting shares, so an agent still has to infer the alternative paths.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.