Skip to main content
Glama

Run terminal operations

run_terminal
Destructive

Start, read, wait for, interact with, stop, or list shell command sessions on paired computers to control local processes through ReMCP without opening inbound ports.

Instructions

Use this when the task needs a shell command or an existing ReMCP terminal session: start, read, wait, interact, stop, or list sessions. Choose exactly one operation; parameters are validated against that operation’s closed schema. Starting or interacting with commands can change local or external state, and force termination can lose unsaved process work; reading, waiting, and listing do not mutate the session.

Input Schema

NameRequiredDescriptionDefault
operationYesConcrete local runtime operation to execute in this domain.
parametersNoArguments for the selected operation; validated against that operation’s original closed schema.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.2.194
    • changedInput schema / allOf
      Previous value: -[
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "start_process"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "command": {
      -              "description": "Shell command to run.",
      -              "type": "string"
      -            },
      -            "timeout_ms": {
      -              "description": "How long to wait for initial output before returning, in milliseconds. Default 1000.",
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "command"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "parameters"
      -      ]
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "read_process_output"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "length": {
      -              "description": "Maximum number of lines to return.",
      -              "type": "number"
      -            },
      -            "offset": {
      -              "description": "Zero-based line number to start from, counted across everything the session has produced; a negative value reads the last N lines. Omit for new output. Lines evicted by the buffer cap are no longer available.",
      -              "type": "number"
      -            },
      -            "pid": {
      -              "description": "Session pid returned by start_process.",
      -              "type": "number"
      -            },
      -            "timeout_ms": {
      -              "description": "How long to wait for new output when no offset is given, in milliseconds.",
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "pid"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "parameters"
      -      ]
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "interact_with_process"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "input": {
      -              "description": "Line of input to send; a newline is appended.",
      -              "type": "string"
      -            },
      -            "pid": {
      -              "description": "Session pid returned by start_process.",
      -              "type": "number"
      -            },
      -            "timeout_ms": {
      -              "description": "How long to wait for the response, in milliseconds. Default 1000.",
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "pid",
      -            "input"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "parameters"
      -      ]
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "wait_for_process_output"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "pattern": {
      -              "description": "Regular expression or literal text to wait for.",
      -              "type": "string"
      -            },
      -            "pid": {
      -              "description": "Session pid returned by start_process.",
      -              "type": "number"
      -            },
      -            "timeout_ms": {
      -              "description": "How long to wait before returning the output collected so far, in milliseconds. Default 10000.",
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "pid",
      -            "pattern"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "parameters"
      -      ]
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "force_terminate"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "pid": {
      -              "description": "Session pid returned by start_process.",
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "pid"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "parameters"
      -      ]
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "list_sessions"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {},
      -          "type": "object"
      -        }
      -      }
      -    }
      -  }
      -]New value: +[
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "start_process"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "command": {
      +              "description": "Shell command to run.",
      +              "type": "string"
      +            },
      +            "timeout_ms": {
      +              "description": "How long to wait for initial output before returning, in milliseconds. Default 1000.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "command"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "parameters"
      +      ]
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "read_process_output"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "length": {
      +              "description": "Maximum number of lines to return per call (default 200). Without offset, unreturned lines remain available; use hasMore to fetch the next page.",
      +              "type": "number"
      +            },
      +            "offset": {
      +              "description": "Zero-based line number to start from, counted across everything the session has produced; a negative value reads the last N lines. Omit for new output. Lines evicted by the buffer cap are no longer available.",
      +              "type": "number"
      +            },
      +            "pid": {
      +              "description": "Session pid returned by start_process.",
      +              "type": "number"
      +            },
      +            "timeout_ms": {
      +              "description": "With no offset, wait up to this many milliseconds for output/exit; 0 returns immediately (default). Use 1000–2000 to avoid repeated remote polls when output is expected.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "pid"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "parameters"
      +      ]
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "interact_with_process"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "input": {
      +              "description": "Line of input to send; a newline is appended.",
      +              "type": "string"
      +            },
      +            "pid": {
      +              "description": "Session pid returned by start_process.",
      +              "type": "number"
      +            },
      +            "timeout_ms": {
      +              "description": "How long to wait for the response, in milliseconds. Default 1000.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "pid",
      +            "input"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "parameters"
      +      ]
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "wait_for_process_output"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "pattern": {
      +              "description": "Regular expression or literal text to wait for.",
      +              "type": "string"
      +            },
      +            "pid": {
      +              "description": "Session pid returned by start_process.",
      +              "type": "number"
      +            },
      +            "timeout_ms": {
      +              "description": "How long to wait before returning the output collected so far, in milliseconds. Default 10000.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "pid",
      +            "pattern"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "parameters"
      +      ]
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "force_terminate"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "pid": {
      +              "description": "Session pid returned by start_process.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "pid"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "parameters"
      +      ]
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "list_sessions"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "properties": {},
      +          "type": "object"
      +        }
      +      }
      +    }
      +  }
      +]
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "command": {
      -        "type": "string"
      -      },
      -      "exitCode": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "exited": {
      -        "type": "boolean"
      -      },
      -      "lines": {
      -        "description": "Total output lines produced by the session.",
      -        "type": "number"
      -      },
      -      "output": {
      -        "type": "string"
      -      },
      -      "partial": {
      -        "type": "string"
      -      },
      -      "pid": {
      -        "description": "Process/session id used by follow-up terminal tools.",
      -        "type": "number"
      -      },
      -      "runtimeMs": {
      -        "type": "number"
      -      },
      -      "signal": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "status": {
      -        "description": "running or exited, with an exit code/signal when known.",
      -        "type": "string"
      -      },
      -      "warning": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "pid",
      -      "status",
      -      "runtimeMs",
      -      "lines",
      -      "exited",
      -      "exitCode",
      -      "signal",
      -      "command",
      -      "output"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "exitCode": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "exited": {
      -        "type": "boolean"
      -      },
      -      "explicitOffset": {
      -        "type": "boolean"
      -      },
      -      "lines": {
      -        "description": "Total output lines produced by the session.",
      -        "type": "number"
      -      },
      -      "output": {
      -        "type": "string"
      -      },
      -      "pid": {
      -        "description": "Process/session id used by follow-up terminal tools.",
      -        "type": "number"
      -      },
      -      "range": {
      -        "type": "string"
      -      },
      -      "runtimeMs": {
      -        "type": "number"
      -      },
      -      "signal": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "status": {
      -        "description": "running or exited, with an exit code/signal when known.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "pid",
      -      "status",
      -      "runtimeMs",
      -      "lines",
      -      "exited",
      -      "exitCode",
      -      "signal",
      -      "range",
      -      "output",
      -      "explicitOffset"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "exitCode": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "exited": {
      -        "type": "boolean"
      -      },
      -      "lines": {
      -        "description": "Total output lines produced by the session.",
      -        "type": "number"
      -      },
      -      "output": {
      -        "type": "string"
      -      },
      -      "pid": {
      -        "description": "Process/session id used by follow-up terminal tools.",
      -        "type": "number"
      -      },
      -      "runtimeMs": {
      -        "type": "number"
      -      },
      -      "signal": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "status": {
      -        "description": "running or exited, with an exit code/signal when known.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "pid",
      -      "status",
      -      "runtimeMs",
      -      "lines",
      -      "exited",
      -      "exitCode",
      -      "signal",
      -      "output"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bufferedMatch": {
      -        "type": "boolean"
      -      },
      -      "exitCode": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "exited": {
      -        "type": "boolean"
      -      },
      -      "lines": {
      -        "description": "Total output lines produced by the session.",
      -        "type": "number"
      -      },
      -      "matched": {
      -        "type": "boolean"
      -      },
      -      "output": {
      -        "type": "string"
      -      },
      -      "pattern": {
      -        "type": "string"
      -      },
      -      "pid": {
      -        "description": "Process/session id used by follow-up terminal tools.",
      -        "type": "number"
      -      },
      -      "runtimeMs": {
      -        "type": "number"
      -      },
      -      "signal": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "status": {
      -        "description": "running or exited, with an exit code/signal when known.",
      -        "type": "string"
      -      },
      -      "timeoutMs": {
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "pid",
      -      "status",
      -      "runtimeMs",
      -      "lines",
      -      "exited",
      -      "exitCode",
      -      "signal",
      -      "pattern",
      -      "matched",
      -      "bufferedMatch",
      -      "timeoutMs",
      -      "output"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "alreadyExited": {
      -        "type": "boolean"
      -      },
      -      "escalated": {
      -        "type": "boolean"
      -      },
      -      "exitCode": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "exited": {
      -        "type": "boolean"
      -      },
      -      "lines": {
      -        "description": "Total output lines produced by the session.",
      -        "type": "number"
      -      },
      -      "pid": {
      -        "description": "Process/session id used by follow-up terminal tools.",
      -        "type": "number"
      -      },
      -      "runtimeMs": {
      -        "type": "number"
      -      },
      -      "signal": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "status": {
      -        "description": "running or exited, with an exit code/signal when known.",
      -        "type": "string"
      -      },
      -      "terminated": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "pid",
      -      "status",
      -      "runtimeMs",
      -      "lines",
      -      "exited",
      -      "exitCode",
      -      "signal",
      -      "terminated",
      -      "alreadyExited",
      -      "escalated"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "sessions": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "blocked": {
      -              "type": "string"
      -            },
      -            "command": {
      -              "type": "string"
      -            },
      -            "exitCode": {
      -              "anyOf": [
      -                {
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "exited": {
      -              "type": "boolean"
      -            },
      -            "lines": {
      -              "description": "Total output lines produced by the session.",
      -              "type": "number"
      -            },
      -            "pid": {
      -              "description": "Process/session id used by follow-up terminal tools.",
      -              "type": "number"
      -            },
      -            "runtimeMs": {
      -              "type": "number"
      -            },
      -            "signal": {
      -              "anyOf": [
      -                {
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "status": {
      -              "description": "running or exited, with an exit code/signal when known.",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "pid",
      -            "status",
      -            "runtimeMs",
      -            "lines",
      -            "exited",
      -            "exitCode",
      -            "signal",
      -            "blocked",
      -            "command"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "sessions"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "command": {
      +        "type": "string"
      +      },
      +      "exitCode": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "exited": {
      +        "type": "boolean"
      +      },
      +      "lines": {
      +        "description": "Total output lines produced by the session.",
      +        "type": "number"
      +      },
      +      "output": {
      +        "type": "string"
      +      },
      +      "partial": {
      +        "type": "string"
      +      },
      +      "pid": {
      +        "description": "Process/session id used by follow-up terminal tools.",
      +        "type": "number"
      +      },
      +      "runtimeMs": {
      +        "type": "number"
      +      },
      +      "signal": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "status": {
      +        "description": "running or exited, with an exit code/signal when known.",
      +        "type": "string"
      +      },
      +      "warning": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "pid",
      +      "status",
      +      "runtimeMs",
      +      "lines",
      +      "exited",
      +      "exitCode",
      +      "signal",
      +      "command",
      +      "output"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "exitCode": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "exited": {
      +        "type": "boolean"
      +      },
      +      "explicitOffset": {
      +        "type": "boolean"
      +      },
      +      "hasMore": {
      +        "type": "boolean"
      +      },
      +      "lines": {
      +        "description": "Total output lines produced by the session.",
      +        "type": "number"
      +      },
      +      "output": {
      +        "type": "string"
      +      },
      +      "pid": {
      +        "description": "Process/session id used by follow-up terminal tools.",
      +        "type": "number"
      +      },
      +      "range": {
      +        "type": "string"
      +      },
      +      "runtimeMs": {
      +        "type": "number"
      +      },
      +      "signal": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "status": {
      +        "description": "running or exited, with an exit code/signal when known.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "pid",
      +      "status",
      +      "runtimeMs",
      +      "lines",
      +      "exited",
      +      "exitCode",
      +      "signal",
      +      "range",
      +      "output",
      +      "explicitOffset",
      +      "hasMore"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "exitCode": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "exited": {
      +        "type": "boolean"
      +      },
      +      "lines": {
      +        "description": "Total output lines produced by the session.",
      +        "type": "number"
      +      },
      +      "output": {
      +        "type": "string"
      +      },
      +      "pid": {
      +        "description": "Process/session id used by follow-up terminal tools.",
      +        "type": "number"
      +      },
      +      "runtimeMs": {
      +        "type": "number"
      +      },
      +      "signal": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "status": {
      +        "description": "running or exited, with an exit code/signal when known.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "pid",
      +      "status",
      +      "runtimeMs",
      +      "lines",
      +      "exited",
      +      "exitCode",
      +      "signal",
      +      "output"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bufferedMatch": {
      +        "type": "boolean"
      +      },
      +      "exitCode": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "exited": {
      +        "type": "boolean"
      +      },
      +      "lines": {
      +        "description": "Total output lines produced by the session.",
      +        "type": "number"
      +      },
      +      "matched": {
      +        "type": "boolean"
      +      },
      +      "output": {
      +        "type": "string"
      +      },
      +      "pattern": {
      +        "type": "string"
      +      },
      +      "pid": {
      +        "description": "Process/session id used by follow-up terminal tools.",
      +        "type": "number"
      +      },
      +      "runtimeMs": {
      +        "type": "number"
      +      },
      +      "signal": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "status": {
      +        "description": "running or exited, with an exit code/signal when known.",
      +        "type": "string"
      +      },
      +      "timeoutMs": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "pid",
      +      "status",
      +      "runtimeMs",
      +      "lines",
      +      "exited",
      +      "exitCode",
      +      "signal",
      +      "pattern",
      +      "matched",
      +      "bufferedMatch",
      +      "timeoutMs",
      +      "output"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "alreadyExited": {
      +        "type": "boolean"
      +      },
      +      "escalated": {
      +        "type": "boolean"
      +      },
      +      "exitCode": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "exited": {
      +        "type": "boolean"
      +      },
      +      "lines": {
      +        "description": "Total output lines produced by the session.",
      +        "type": "number"
      +      },
      +      "pid": {
      +        "description": "Process/session id used by follow-up terminal tools.",
      +        "type": "number"
      +      },
      +      "runtimeMs": {
      +        "type": "number"
      +      },
      +      "signal": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "status": {
      +        "description": "running or exited, with an exit code/signal when known.",
      +        "type": "string"
      +      },
      +      "terminated": {
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "pid",
      +      "status",
      +      "runtimeMs",
      +      "lines",
      +      "exited",
      +      "exitCode",
      +      "signal",
      +      "terminated",
      +      "alreadyExited",
      +      "escalated"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "sessions": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "blocked": {
      +              "type": "string"
      +            },
      +            "command": {
      +              "type": "string"
      +            },
      +            "exitCode": {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "exited": {
      +              "type": "boolean"
      +            },
      +            "lines": {
      +              "description": "Total output lines produced by the session.",
      +              "type": "number"
      +            },
      +            "pid": {
      +              "description": "Process/session id used by follow-up terminal tools.",
      +              "type": "number"
      +            },
      +            "runtimeMs": {
      +              "type": "number"
      +            },
      +            "signal": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "status": {
      +              "description": "running or exited, with an exit code/signal when known.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "pid",
      +            "status",
      +            "runtimeMs",
      +            "lines",
      +            "exited",
      +            "exitCode",
      +            "signal",
      +            "blocked",
      +            "command"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "sessions"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Addedv0.2.88

TDQS

A4.3/5.0
Behavior4/5

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

Beyond annotations, it discloses operation-specific risk: starting or interacting can change local/external state, force termination can lose unsaved process work, while reading/waiting/listing do not mutate the session. This adds useful nuance, though it does not cover permissions, rate limits, or session lifetime details.

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 three sentences, front-loaded with the use case and operation list, followed by validation and safety notes. Every sentence contributes useful information without repetition or filler.

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 complex multiplexed terminal tool, the description gives the necessary mental model: when to use it, the available operations, single-operation selection, schema validation, and per-operation risk. Return values are covered by the output schema, and parameter details are covered by the rich input schema.

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 100%, and the conditional schemas document each operation's parameters in detail. The description only adds the high-level rule that exactly one operation must be selected and parameters are validated against a closed schema, so the schema carries most parameter semantics.

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 states a specific resource and action domain: running shell commands and managing existing ReMCP terminal sessions. It enumerates the six concrete operations, making the tool's scope unambiguous and distinguishable from general system/computer/file tools.

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?

It explicitly says to use this tool when a shell command or existing terminal session is needed, and it instructs the agent to choose exactly one operation. However, it does not name alternative sibling tools or state when not to use this tool.

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