Skip to main content
Glama

HR: Assign form

hr_assign_form
Destructive

Send a published HR form to a person and mint its access link. Pass 'form_id' (the current published version is used) or an exact 'form_version_id', plus the 'person_id' who FILLS it and optionally the 'subject_person_id' it is ABOUT (a mentor filling a review of their intern). Works for people with no OrgLines account — the link is the delivery mechanism, which is the whole point in retail. The raw link is returned EXACTLY ONCE, in this call's result. Only its digest is stored, so it can never be looked up again afterwards by any tool or any person: hand it to the recipient now, or call hr_assign_form again to mint a new one. Requires confirmation — the URL appears in the confirm_action result, not in the proposal. CONFIRMATION: this tool is PROPOSED, never performed directly. You get status='confirmation_required' with an action_id and a plan_token, and the write happens only after confirm_action.

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": {
      "person_id": "<person_id>"
    },
    "name": "hr_assign_form"
  }
}

Input Schema

NameRequiredDescriptionDefault
due_atNo
form_idNo
ttl_daysNo
person_idYes
context_idNo
context_typeNo
form_version_idNo
subject_person_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing that the raw link is returned exactly once and only a digest is persisted, plus the full confirmation flow (status='confirmation_required', action_id, plan_token, URL appearing in confirm_action rather than the proposal). One gap: destructiveHint=true is never explained — the description does not say whether assigning a new link invalidates or revokes an existing one, which is exactly the destructive behavior an agent should know about.

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 identifier choice, then the critical one-time-link warning, which is the right ordering. Slightly redundant: the confirmation behavior is stated twice ('Requires confirmation...' and the all-caps 'CONFIRMATION:' paragraph), which costs space without adding information.

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?

Given no output schema, the description correctly covers the most important return detail — the raw link appearing once in the result and in the confirm_action output. With eight parameters and only one required, the unexplained optional fields (TTL, due date, context type/id) are the remaining hole, but the agent can still invoke the tool correctly using the documented defaults.

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 carry the load, and it clarifies four of eight parameters (form_id, form_version_id, person_id, subject_person_id) with real meaning, including the filler/about distinction the schema does not convey. However, due_at, ttl_days, context_id, and context_type are left entirely unexplained — notably ttl_days, which interacts with the one-time link behavior.

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 — 'Send a published HR form to a person and mint its access link' — which cleanly separates it from hr_publish_form_version, hr_create_form, and hr_list_forms. The scope ('published' form, delivery via link) 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 Guidelines5/5

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

Explicitly tells the agent which identifier to use ('form_id' for the current published version, or an exact 'form_version_id') and explains the filler-vs-subject distinction with a concrete mentor/intern example. It also states the key usage context (recipients without OrgLines accounts) and the recovery path when the link is lost — call hr_assign_form again to mint a new one.

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