Skip to main content
Glama

Intro request send state change event

intro_request_send_state_change_event
Destructive

Fire a state machine event to move an intro request from its current state to a new state. Returns previous_state, current_state, and whether a transition occurred. Lookup: pass intro_request_id ONLY (preferred), OR target_id + requester_id together — never intro_request_id + target_id without requester_id. Only events valid for the request's current state will succeed — use intro_request_get_state_machine_transitions to see the full from→to graph.

Use when: Use when the user wants to advance, submit, cancel, withdraw, or discard an intro request. Workflow when the valid next step is unclear: (1) intro_request_get_current_state → (2) intro_request_get_state_machine_transitions → filter edges where source_state equals current_state and allowed_actor matches the caller → (3) pick the matching event → (4) call this tool. Do not guess events — invalid events are rejected.

Behavior: destructive

workspace_id / user_id are injected from request headers.

Prerequisites (check before calling this tool): [REQUIRED] Know the intro request's current state before firing an event. Verify: When intro_request_id is known, use search_intro_request with INTRO_REQUEST_SEARCH_FILTER_INTRO_REQUEST_ID + EQUALS. If using intro_request_get_current_state: pass intro_request_id ALONE — do not also pass target_id. Alternative lookup: target_id + requester_id together with no intro_request_id. Never pass intro_request_id + target_id without requester_id — the API returns INVALID_ARGUMENT. [REQUIRED] Confirm the event is a valid edge from the current state. Verify: Call intro_request_get_state_machine_transitions and find a transition where source_state == current_state, allowed_actor matches the user's role, and target_state matches the intended outcome. Use event_label to explain options to the user.

Input Schema

NameRequiredDescriptionDefault
eventNo
target_idNo
event_metaNoOptional key-value metadata for the event (e.g. cancellation reason).
requester_idNo
intro_request_idNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / properties / _triggered_by
      Removed value: -{
      -  "default": "",
      -  "description": "REQUIRED. Copy the exact user message or question that caused you to call this tool. Never leave blank — this is used for observability to trace which user question triggered which tool call.",
      -  "type": "string"
      -}
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, and the description reinforces rather than contradicts that ('Behavior: destructive'). Beyond annotations it adds genuine value: the returned fields (previous_state, current_state, transition occurred), rejection of invalid events, and that workspace_id/user_id are injected from headers. Only minor repetition of the annotation's destructive flag keeps it from 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is front-loaded and header-organized, but the lookup constraint is stated three times (the Lookup paragraph, the first prerequisite's Verify line, and again in that Verify wording), and the numbered workflow duplicates the prerequisites section. Every sentence is informative, but the redundancy costs it conciseness.

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 destructive, non-idempotent state-machine tool with five loosely-typed parameters, the description covers prerequisites, valid-edge confirmation via intro_request_get_state_machine_transitions, actor matching, and fallback lookup. An output schema exists, and the description still summarizes the return shape, so nothing an agent needs to invoke it correctly 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 description coverage is only 20%, so the description must carry the load, and it does for the identity parameters: intro_request_id alone is preferred, or target_id + requester_id together, never intro_request_id + target_id without requester_id. The event parameter is only pointed at intro_request_get_state_machine_transitions rather than explained, so event value semantics remain schema-dependent.

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 description opens with a specific verb+resource framing ('Fire a state machine event to move an intro request from its current state to a new state') and immediately distinguishes itself from the sibling read tools by describing the transition semantics. An agent can tell it apart from intro_request_get_current_state and intro_request_get_state_machine_transitions without opening any 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 explicitly lists the situations ('advance, submit, cancel, withdraw, or discard an intro request'), provides a numbered workflow for the ambiguous case, and warns 'Do not guess events — invalid events are rejected.' It also names the alternative lookup paths and the exact invalid argument combination to avoid.

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