Skip to main content
Glama

HR: Complete internship

hr_complete_internship
Destructive

End an internship — and close its linked application in the SAME transaction with the SAME reason, so the drop-off report and the reasons report can never disagree about the person. 'status' is completed / failed / cancelled; a failed or cancelled close REQUIRES 'reason_id' and is refused without one. For a successful hire pass outcome='hire' AND 'hire_stage_id' — the application has to land on a terminal stage this workspace's own scheme defines, and the server must not guess which of your stages means 'hired'. Requires confirmation. 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": {
      "internship_id": "<internship_id>",
      "status": "<status>"
    },
    "name": "hr_complete_internship"
  }
}

Input Schema

NameRequiredDescriptionDefault
statusYes
commentNo
outcomeNo
ended_onNo
reason_idNo
hire_stage_idNo
internship_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only supply destructiveHint=true and readOnlyHint=false; the description adds the atomicity guarantee, the server-side validation refusal, the terminal-stage requirement, and the full propose-then-confirm flow returning status='confirmation_required' with action_id and plan_token. That is substantial value beyond the annotations. It stops short of saying whether the close is reversible or what happens to dependent records, which keeps it off 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?

Content is front-loaded: the transactional guarantee first, then the status enum, then the conditional requirements, then the confirmation protocol. A few emphatic capitalizations ('SAME transaction', 'REQUIRES', 'PROPOSED') add length without much added meaning, but no sentence is filler.

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 destructive, seven-parameter mutation with no output schema and no annotation depth, the definition covers the risky parts an agent must get right: validation preconditions, the hire path, and the two-step confirmation. The gaps are the undocumented optional fields (comment, ended_on) and any statement of what the confirmed call ultimately returns.

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 description coverage, the description carries the whole burden, and it does document the enum values of status, the conditional requirement on reason_id, and the pairing of outcome='hire' with hire_stage_id. It says nothing about comment, ended_on, or internship_id, leaving three of seven parameters semantically bare.

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 opening sentence gives a specific verb (end/close) and resource (internship) and immediately names the side effect that distinguishes it: the linked application is closed in the same transaction with the same reason. That separates it cleanly from hr_start_internship and hr_close_engagement without needing to open 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 states the decision rules explicitly: failed or cancelled requires reason_id and is refused otherwise, and a successful hire requires both outcome='hire' and hire_stage_id. It also explains why the server will not infer a stage, and routes the agent to confirm_action for the actual write.

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