Skip to main content
Glama

Add or change people

hr_save_people
Idempotent

Add people or change them, up to 100 at a time, all or none: matched by person_id, else by work email (any case); anyone not found is added (first_name needed). Give only what changes: "" clears text, null clears a date. A manager can be anyone on the account, also someone added later in the same call; loops are refused. Status left follows from a past end_date (their last day). Each saved person comes back with their person_id. When you add people partway through a leave year, record what they have already used or carried over with hr_adjust_leave. Costs $1.00 per person added; nothing if none are found.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "people": "<people>"
    },
    "name": "hr_save_people"
  }
}

Input Schema

NameRequiredDescriptionDefault
peopleYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations: discloses $1.00 per person added cost (nothing if none found), all-or-none atomicity, loop refusal on manager cycles, status derivation from past end_date, and that each saved person returns a person_id. Rich behavioral context for a non-annotated cost-bearing operation.

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?

Dense but front-loaded, with each sentence carrying real information (batch limit, matching, clearing semantics, manager cycles, cost). Reasonably sized for the complexity, though a few clauses (e.g. status-from-end_date) could be tightened.

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 single-array-parameter upsert with nested per-person objects and no output schema, the description covers matching, clearing conventions, manager validation, cost, and that person_ids come back. Nothing essential to correct invocation is missing.

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% per context, so the description must compensate; it does with useful rules like "" clears text, null clears a date, first_name required for new people, and manager accepts id/email including someone added later in the same call. It doesn't detail every one of the ~20 fields, but covers the critical ones.

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+resource (add/change people), the batch limit (up to 100), and the atomic all-or-none semantics. It clearly distinguishes itself from hr_adjust_leave and the admin_save_person sibling by explaining the upsert-matching model.

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 explicit routing: use hr_adjust_leave when adding people partway through a leave year to record prior usage/carryover, and explains the matching order (person_id then work email). It doesn't discuss hr_get_person or hr_list_people, but the when-to-use context is clear.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources