Skip to main content
Glama

add_person

Creates a person (a member of the project's network: partner, executive, contributor…). A person belongs to the whole project and appears on no block until assign_person links them to one. Required: id (unique, kebab-case) and name; REFUSED with an error, nothing written, if the id already exists. Omitted fields take defaults: initials derived from the name, role empty, colour '#5b9eff', network 'core', category 'executant', level 'Intermédiaire', no tags. search_people finds out whether the person already exists. An existing person is modified with update_person; calling this tool again with a new id creates a second, separate person.

Input Schema

NameRequiredDescriptionDefault
idYesUnique kebab-case ID
descNoDescription of the profile
nameYesFirst name or full name
noteNoInternal notes
roleNoProfessional role
tagsNoKey tags
colorNoHex color (e.g. '#3dffa0')
levelNoLevel, free text (any text is accepted): `Élevé` (high), `Intermédiaire`, `Intermédiaire+`, etc. When omitted, the stored level is `Intermédiaire`.
networkNoNetwork of belonging: 'core', 'marc', 'michael'
categoryNoCategory: `moteur` (driver / leader), `pivot` (linchpin), `executant` (operational)
initialsNo2 uppercase letters (e.g. 'MS', 'JV'). When omitted, this field is DERIVED from `name` (same rule as the displayed chip); a supplied value serves a deliberately different choice.
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. Changed12 schema fields changed
    • changedInput schema / properties / category / description
      Previous value: -"Catégorie: moteur (leader), pivot (charnière), executant (opérationnel)"New value: +"Category: `moteur` (driver / leader), `pivot` (linchpin), `executant` (operational)"
    • changedInput schema / properties / color / description
      Previous value: -"Couleur hex (ex: '#3dffa0')"New value: +"Hex color (e.g. '#3dffa0')"
    • changedInput schema / properties / desc / description
      Previous value: -"Description du profil"New value: +"Description of the profile"
    • 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 / id / description
      Previous value: -"ID unique kebab-case"New value: +"Unique kebab-case ID"
    • changedInput schema / properties / initials / description
      Previous value: -"2 lettres majuscules (ex: 'MS', 'JV'). Omis, ce champ est DÉRIVÉ de `name` (même règle que la pastille affichée) ; une valeur fournie sert à un choix délibérément différent."New value: +"2 uppercase letters (e.g. 'MS', 'JV'). When omitted, this field is DERIVED from `name` (same rule as the displayed chip); a supplied value serves a deliberately different choice."
    • changedInput schema / properties / level / description
      Previous value: -"Niveau: 'Élevé', 'Intermédiaire', 'Intermédiaire+', etc."New value: +"Level, free text (any text is accepted): `Élevé` (high), `Intermédiaire`, `Intermédiaire+`, etc. When omitted, the stored level is `Intermédiaire`."
    • changedInput schema / properties / name / description
      Previous value: -"Prénom ou nom complet"New value: +"First name or full name"
    • changedInput schema / properties / network / description
      Previous value: -"Réseau d'appartenance: 'core', 'marc', 'michael'"New value: +"Network of belonging: 'core', 'marc', 'michael'"
    • changedInput schema / properties / note / description
      Previous value: -"Notes internes"New value: +"Internal notes"
    • changedInput schema / properties / role / description
      Previous value: -"Rôle professionnel"New value: +"Professional role"
    • changedInput schema / properties / tags / description
      Previous value: -"Tags clés"New value: +"Key tags"
  2. Changed1 schema field changed
    • changedInput schema / properties / initials / description
      Previous value: -"2 lettres majuscules (ex: 'MS', 'JV'). Omets ce champ pour le laisser DÉRIVER de `name` (même règle que la pastille affichée) — ne le fournis que pour un choix délibérément différent."New value: +"2 lettres majuscules (ex: 'MS', 'JV'). Omis, ce champ est DÉRIVÉ de `name` (même règle que la pastille affichée) ; une valeur fournie sert à un choix délibérément différent."
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only declare this is a non-readonly, non-destructive, closed-world write; the description adds the failure contract ('REFUSED with an error, nothing written, if the id already exists') and the full default-filling behavior for omitted fields, which annotations cannot convey. It stops short of mentioning permissions or auth requirements for the write itself, so not quite 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?

Front-loaded with the core action and the entity definition, then failure modes, then defaults, then sibling routing — a logical order with no filler sentences. It is dense with long parentheticals, but every clause carries operative information.

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 12-parameter creation tool with no output schema, the description covers the required fields, the uniqueness/refusal behavior, all defaults for omitted fields, and the lifecycle relationship to assign_person and update_person. An agent has everything needed to call it correctly on the first attempt.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds value by enumerating the concrete default values (initials derived from name, role empty, colour '#5b9eff', network 'core', category 'executant', level 'Intermédiaire', no tags) that the schema mostly does not state. That is meaningful semantics beyond the field-level descriptions, though it repeats the kebab-case id constraint the schema already carries.

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 and resource ('Creates a person') and immediately defines what a person is in this domain ('a member of the project's network: partner, executive, contributor…'), which distinguishes it from update_person, search_people and assign_person by naming each of those siblings explicitly.

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

Usage Guidelines5/5

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

Gives explicit routing: use search_people to check existence, update_person to modify, and calling this tool with a new id deliberately creates a second separate person. It also states the when-not case implicitly via the refusal rule, leaving almost nothing to inference.

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.