Skip to main content
Glama

push_session_action

Push actions into a session's message queue (set fields, submit computation, trigger plot, etc.)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionsYesArray of SessionAction objects to push to the browser
session_idYesSession UUID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / actions / items / properties / line / description
      Previous value: -"Optional line payload for proof_insert_line"New value: +"Optional line payload for proof_insert_line. Include source and optional justification/indent/tags."
    • addedInput schema / properties / actions / items / properties / line / properties
      Added value: +{
      +  "indent": {
      +    "description": "Indent level for the inserted proof line",
      +    "type": "number"
      +  },
      +  "justification": {
      +    "description": "Optional justification for the inserted proof line",
      +    "type": "string"
      +  },
      +  "source": {
      +    "description": "Proof line content to insert",
      +    "type": "string"
      +  },
      +  "tags": {
      +    "description": "Optional proof line tags",
      +    "items": {
      +      "enum": [
      +        "assumption",
      +        "claim",
      +        "therefore",
      +        "qed"
      +      ],
      +      "type": "string"
      +    },
      +    "type": "array"
      +  }
      +}
    • changedInput schema / properties / actions / items / properties / patch / description
      Previous value: -"Proof line patch payload for proof_update_line"New value: +"Proof line patch payload for proof_update_line. Include fields like source, justification, indent, or tags."
    • addedInput schema / properties / actions / items / properties / patch / properties
      Added value: +{
      +  "indent": {
      +    "description": "Indent level for the proof line",
      +    "type": "number"
      +  },
      +  "justification": {
      +    "description": "Optional justification text for the proof line",
      +    "type": "string"
      +  },
      +  "source": {
      +    "description": "Proof line content to display in the builder",
      +    "type": "string"
      +  },
      +  "tags": {
      +    "description": "Optional proof line tags",
      +    "items": {
      +      "enum": [
      +        "assumption",
      +        "claim",
      +        "therefore",
      +        "qed"
      +      ],
      +      "type": "string"
      +    },
      +    "type": "array"
      +  }
      +}
  2. Changed13 schema fields changed
    • addedInput schema / properties / actions / items / properties / assumptions
      Added value: +{
      +  "description": "Assumptions block for proof_set_document_meta",
      +  "type": "string"
      +}
    • addedInput schema / properties / actions / items / properties / delta
      Added value: +{
      +  "description": "Indent delta for proof_indent_line",
      +  "type": "number"
      +}
    • addedInput schema / properties / actions / items / properties / document
      Added value: +{
      +  "description": "Full proof document payload for proof_replace_document",
      +  "type": "object"
      +}
    • addedInput schema / properties / actions / items / properties / goal
      Added value: +{
      +  "description": "Goal statement for proof_set_document_meta",
      +  "type": "string"
      +}
    • addedInput schema / properties / actions / items / properties / id
      Added value: +{
      +  "description": "Proof line id for update/delete/move/indent actions",
      +  "type": "string"
      +}
    • addedInput schema / properties / actions / items / properties / index
      Added value: +{
      +  "description": "Optional insertion index for proof_insert_line/proof_apply_template",
      +  "type": "number"
      +}
    • addedInput schema / properties / actions / items / properties / line
      Added value: +{
      +  "description": "Optional line payload for proof_insert_line",
      +  "type": "object"
      +}
    • addedInput schema / properties / actions / items / properties / patch
      Added value: +{
      +  "description": "Proof line patch payload for proof_update_line",
      +  "type": "object"
      +}
    • addedInput schema / properties / actions / items / properties / templateId
      Added value: +{
      +  "description": "Template id for proof_apply_template",
      +  "type": "string"
      +}
    • addedInput schema / properties / actions / items / properties / theorem
      Added value: +{
      +  "description": "Theorem statement for proof_set_document_meta",
      +  "type": "string"
      +}
    • addedInput schema / properties / actions / items / properties / title
      Added value: +{
      +  "description": "Proof title for proof_set_document_meta",
      +  "type": "string"
      +}
    • addedInput schema / properties / actions / items / properties / toIndex
      Added value: +{
      +  "description": "Target line index for proof_move_line",
      +  "type": "number"
      +}
    • changedInput schema / properties / actions / items / properties / type / enum
      Previous value: -[
      -  "submit_expression",
      -  "set_fields",
      -  "plot",
      -  "assign_variable",
      -  "insert_markdown",
      -  "clear_transcript",
      -  "set_mode",
      -  "set_cells",
      -  "get_cells",
      -  "clear_cells",
      -  "load_csv",
      -  "export_csv",
      -  "set_column_format",
      -  "rpn_keypress",
      -  "rpn_key_sequence",
      -  "rpn_execute_command",
      -  "rpn_set_stack",
      -  "rpn_set_registers",
      -  "rpn_load_program",
      -  "rpn_run_program",
      -  "rpn_reset"
      -]New value: +[
      +  "submit_expression",
      +  "set_fields",
      +  "plot",
      +  "assign_variable",
      +  "insert_markdown",
      +  "clear_transcript",
      +  "set_mode",
      +  "set_cells",
      +  "get_cells",
      +  "clear_cells",
      +  "load_csv",
      +  "export_csv",
      +  "set_column_format",
      +  "rpn_keypress",
      +  "rpn_key_sequence",
      +  "rpn_execute_command",
      +  "rpn_set_stack",
      +  "rpn_set_registers",
      +  "rpn_load_program",
      +  "rpn_run_program",
      +  "rpn_reset",
      +  "proof_set_document_meta",
      +  "proof_insert_line",
      +  "proof_update_line",
      +  "proof_delete_line",
      +  "proof_move_line",
      +  "proof_indent_line",
      +  "proof_apply_template",
      +  "proof_replace_document"
      +]
  3. Changed9 schema fields changed
    • addedInput schema / properties / actions / items / properties / args
      Added value: +{
      +  "description": "Optional command arguments (for rpn_execute_command)",
      +  "items": {},
      +  "type": "array"
      +}
    • addedInput schema / properties / actions / items / properties / command
      Added value: +{
      +  "description": "RPN command name (for rpn_execute_command)",
      +  "type": "string"
      +}
    • addedInput schema / properties / actions / items / properties / key
      Added value: +{
      +  "description": "Single RPN key or token (for rpn_keypress)",
      +  "type": "string"
      +}
    • addedInput schema / properties / actions / items / properties / keys
      Added value: +{
      +  "description": "Ordered list of RPN keys or commands (for rpn_key_sequence)",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / actions / items / properties / preservePrograms
      Added value: +{
      +  "description": "Preserve stored RPN programs when resetting",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / actions / items / properties / registers
      Added value: +{
      +  "description": "Register map for RPN memory updates",
      +  "type": "object"
      +}
    • addedInput schema / properties / actions / items / properties / source
      Added value: +{
      +  "description": "Line-based program source (for rpn_load_program)",
      +  "type": "string"
      +}
    • addedInput schema / properties / actions / items / properties / stack
      Added value: +{
      +  "description": "Partial T/Z/Y/X stack payload (for rpn_set_stack)",
      +  "type": "object"
      +}
    • changedInput schema / properties / actions / items / properties / type / enum
      Previous value: -[
      -  "submit_expression",
      -  "set_fields",
      -  "plot",
      -  "assign_variable",
      -  "insert_markdown",
      -  "clear_transcript",
      -  "set_mode",
      -  "set_cells",
      -  "get_cells",
      -  "clear_cells",
      -  "load_csv",
      -  "export_csv",
      -  "set_column_format"
      -]New value: +[
      +  "submit_expression",
      +  "set_fields",
      +  "plot",
      +  "assign_variable",
      +  "insert_markdown",
      +  "clear_transcript",
      +  "set_mode",
      +  "set_cells",
      +  "get_cells",
      +  "clear_cells",
      +  "load_csv",
      +  "export_csv",
      +  "set_column_format",
      +  "rpn_keypress",
      +  "rpn_key_sequence",
      +  "rpn_execute_command",
      +  "rpn_set_stack",
      +  "rpn_set_registers",
      +  "rpn_load_program",
      +  "rpn_run_program",
      +  "rpn_reset"
      +]
  4. First observed

TDQS

B3.4/5.0
Behavior2/5

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

The phrase 'message queue' hints at asynchronous processing, but the description provides no detail on ordering, execution semantics, error handling, or side effects. With no annotations, the description carries the full burden of behavioral disclosure, and it only offers a one-line summary. This is insufficient for a tool that mutates session state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single, front-loaded sentence that communicates the core function with zero filler. It efficiently uses examples to convey breadth without enumerating every action. This is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a complex actions array with many possible action types, yet the description only lists a handful of examples and gives no information about return values, ordering, or how it fits with the session lifecycle. The schema covers parameter semantics but not the operational context, and there is no output schema. The description is too sparse to fully orient an agent.

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?

The input schema has 100% description coverage for all parameters, including detailed descriptions for each action property. The description itself references example action types but adds no new meaning beyond the schema. Baseline 3 is appropriate because the schema does the heavy lifting.

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 uses the specific verb 'push' and identifies the resource 'a session's message queue', which clearly states the tool's action. It lists representative actions ('set fields, submit computation, trigger plot') that indicate the tool's scope and distinguish it from sibling tools like calculate or get_session_state. This is a clear and specific purpose statement.

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

Usage Guidelines3/5

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

The description gives no explicit guidance on when to use this tool versus alternatives like calculate_cas or get_session_state. The examples imply it is the mechanism for sending various actions to a session, but it does not state exclusions or prerequisites. Usage is only implicitly conveyed.

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