{
  "tools": [
    "call_read_tools_batch",
    "capture_pane",
    "capture_since",
    "clear_pane_scrollback",
    "create_session",
    "create_window",
    "find_pane_by_position",
    "get_pane_info",
    "get_server_info",
    "get_session_info",
    "get_tmux_variables",
    "get_window_info",
    "kill_pane",
    "kill_session",
    "kill_window",
    "list_panes",
    "list_sessions",
    "list_windows",
    "move_window",
    "paste_text",
    "rename_session",
    "rename_window",
    "resize_pane",
    "resize_window",
    "respawn_pane",
    "run_shell_command",
    "search_panes",
    "select_layout",
    "select_pane",
    "select_window",
    "send_keys",
    "send_keys_batch",
    "set_history_limit",
    "set_mouse_enabled",
    "set_pane_title",
    "set_synchronize_panes",
    "show_environment",
    "show_hooks",
    "show_option",
    "signal_channel",
    "snapshot_pane",
    "split_window",
    "swap_pane",
    "wait_for_channel",
    "wait_for_text"
  ],
  "registrations": [
    {
      "name": "call_read_tools_batch",
      "wireName": "call_read_tools_batch",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 618
      },
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Invoke a serial batch of at most 16 inspect tools. One client approval covers every nested name; inner tools receive no separate approval. The structured result is capped below 1,000,000 bytes, preserves every operation row, and reports explicit stop and truncation accounting.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "onError": {
            "description": "Whether a failed operation ends the batch. Defaults to stop.",
            "enum": [
              "stop",
              "continue"
            ],
            "type": "string"
          },
          "operations": {
            "description": "The read-only tool calls to run, in order, in one approval.",
            "items": {
              "anyOf": [
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `list_sessions`, exactly the shape it takes when called on its own.",
                      "properties": {},
                      "type": "object"
                    },
                    "tool": {
                      "const": "list_sessions",
                      "description": "Run `list_sessions` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `list_windows`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "session": {
                          "description": "Session id ($1) or name. Omit for all sessions.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tool": {
                      "const": "list_windows",
                      "description": "Run `list_windows` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `list_panes`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "session": {
                          "description": "Session id ($1) or name.",
                          "type": "string"
                        },
                        "window": {
                          "description": "Stable window id, e.g. @1.",
                          "pattern": "^@\\d+$",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tool": {
                      "const": "list_panes",
                      "description": "Run `list_panes` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `get_pane_info`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "paneId": {
                          "description": "Stable pane id, e.g. %1.",
                          "pattern": "^%\\d+$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "paneId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "get_pane_info",
                      "description": "Run `get_pane_info` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `get_server_info`, exactly the shape it takes when called on its own.",
                      "properties": {},
                      "type": "object"
                    },
                    "tool": {
                      "const": "get_server_info",
                      "description": "Run `get_server_info` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `capture_pane`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "end": {
                          "description": "Last line, on the same scale as start: 0 is the top of the visible screen and negative reaches back into history. It does not count back from the bottom, so end:-1 is one line above the screen top, not the last line of output.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "joinWrapped": {
                          "description": "Rejoin lines tmux wrapped.",
                          "type": "boolean"
                        },
                        "maxLines": {
                          "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991,
                          "type": "integer"
                        },
                        "paneId": {
                          "description": "Stable pane id, e.g. %1.",
                          "pattern": "^%\\d+$",
                          "type": "string"
                        },
                        "start": {
                          "description": "First line; negative reaches into scrollback.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        }
                      },
                      "required": [
                        "paneId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "capture_pane",
                      "description": "Run `capture_pane` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `capture_since`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "cursor": {
                          "description": "The cursor from your previous capture_since. Omit on the first call.",
                          "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
                          "type": "string"
                        },
                        "maxLines": {
                          "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991,
                          "type": "integer"
                        },
                        "paneId": {
                          "description": "Stable pane id, e.g. %1.",
                          "pattern": "^%\\d+$",
                          "type": "string"
                        },
                        "waitMs": {
                          "description": "Wait up to this long for new output before answering. Default 0.",
                          "maximum": 9007199254740991,
                          "minimum": 0,
                          "type": "integer"
                        }
                      },
                      "required": [
                        "paneId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "capture_since",
                      "description": "Run `capture_since` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `search_panes`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "maxMatchesPerPane": {
                          "description": "Stop after this many matches in each pane. Defaults to the server limit.",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991,
                          "type": "integer"
                        },
                        "pattern": {
                          "description": "Non-empty literal text to find.",
                          "minLength": 1,
                          "type": "string"
                        },
                        "regex": {
                          "description": "Interpret pattern using libtmux's bounded regular-expression grammar.",
                          "type": "boolean"
                        },
                        "scrollbackLines": {
                          "description": "How far above the visible screen to search. Default 0.",
                          "maximum": 9007199254740991,
                          "minimum": 0,
                          "type": "integer"
                        },
                        "session": {
                          "description": "Restrict to one session by id or name.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "pattern"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "search_panes",
                      "description": "Run `search_panes` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `show_option`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "name": {
                          "description": "The tmux option to read, such as \"status-left\".",
                          "type": "string"
                        },
                        "scope": {
                          "description": "Default server.",
                          "enum": [
                            "server",
                            "session",
                            "global-session",
                            "window",
                            "global-window",
                            "pane"
                          ],
                          "type": "string"
                        },
                        "target": {
                          "description": "Session id/name or pane id, for the matching scope.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "show_option",
                      "description": "Run `show_option` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `show_hooks`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "session": {
                          "description": "Session scope; omit for server scope.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tool": {
                      "const": "show_hooks",
                      "description": "Run `show_hooks` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `show_environment`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "session": {
                          "description": "Session id ($1) or name. Omit for the server environment.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "tool": {
                      "const": "show_environment",
                      "description": "Run `show_environment` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `get_session_info`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "session": {
                          "description": "Session id ($1) or name.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "session"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "get_session_info",
                      "description": "Run `get_session_info` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `get_window_info`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "windowId": {
                          "description": "Stable window id, e.g. @1.",
                          "pattern": "^@\\d+$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "windowId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "get_window_info",
                      "description": "Run `get_window_info` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `find_pane_by_position`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "corner": {
                          "description": "Which corner of the window's layout to resolve.",
                          "enum": [
                            "top-left",
                            "top-right",
                            "bottom-left",
                            "bottom-right"
                          ],
                          "type": "string"
                        },
                        "windowId": {
                          "description": "Stable window id, e.g. @1.",
                          "pattern": "^@\\d+$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "corner",
                        "windowId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "find_pane_by_position",
                      "description": "Run `find_pane_by_position` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `get_tmux_variables`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "names": {
                          "description": "Variable names to resolve, such as \"pane_current_command\" — bare names, not `#{…}` format syntax.",
                          "items": {
                            "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
                            "type": "string"
                          },
                          "maxItems": 32,
                          "minItems": 1,
                          "type": "array",
                          "x-libtmux-tmux-format": "validated-variable-name"
                        },
                        "paneId": {
                          "description": "Stable pane id, e.g. %1.",
                          "pattern": "^%\\d+$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "names"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "get_tmux_variables",
                      "description": "Run `get_tmux_variables` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "description": "Arguments for `snapshot_pane`, exactly the shape it takes when called on its own.",
                      "properties": {
                        "maxLines": {
                          "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991,
                          "type": "integer"
                        },
                        "paneId": {
                          "description": "Stable pane id, e.g. %1.",
                          "pattern": "^%\\d+$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "paneId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "snapshot_pane",
                      "description": "Run `snapshot_pane` as this step of the batch.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                }
              ]
            },
            "maxItems": 16,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "operations"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "failed": {
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "onError": {
            "enum": [
              "stop",
              "continue"
            ],
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "error": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "index": {
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "result": {
                  "anyOf": [
                    {
                      "additionalProperties": {},
                      "properties": {
                        "content": {
                          "items": {},
                          "type": "array"
                        },
                        "isError": {
                          "type": "boolean"
                        },
                        "structuredContent": {
                          "additionalProperties": {},
                          "propertyNames": {
                            "type": "string"
                          },
                          "type": "object"
                        }
                      },
                      "required": [
                        "content"
                      ],
                      "type": "object"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "resultTruncated": {
                  "type": "boolean"
                },
                "success": {
                  "type": "boolean"
                },
                "tool": {
                  "type": "string"
                }
              },
              "required": [
                "error",
                "index",
                "result",
                "resultTruncated",
                "success",
                "tool"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "stoppedAt": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "succeeded": {
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "truncated": {
            "type": "boolean"
          },
          "truncatedBytes": {
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "failed",
          "onError",
          "results",
          "stoppedAt",
          "succeeded",
          "truncated",
          "truncatedBytes"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Invoke a serial batch of at most 16 inspect tools. One client approval covers every nested name; inner tools receive no separate approval. The structured result is capped below 1,000,000 bytes, preserves every operation row, and reports explicit stop and truncation accounting.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "onError": {
                "description": "Whether a failed operation ends the batch. Defaults to stop.",
                "enum": [
                  "stop",
                  "continue"
                ],
                "type": "string"
              },
              "operations": {
                "description": "The read-only tool calls to run, in order, in one approval.",
                "items": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `list_sessions`, exactly the shape it takes when called on its own.",
                          "properties": {},
                          "type": "object"
                        },
                        "tool": {
                          "const": "list_sessions",
                          "description": "Run `list_sessions` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `list_windows`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "session": {
                              "description": "Session id ($1) or name. Omit for all sessions.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "tool": {
                          "const": "list_windows",
                          "description": "Run `list_windows` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `list_panes`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "session": {
                              "description": "Session id ($1) or name.",
                              "type": "string"
                            },
                            "window": {
                              "description": "Stable window id, e.g. @1.",
                              "pattern": "^@\\d+$",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "tool": {
                          "const": "list_panes",
                          "description": "Run `list_panes` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `get_pane_info`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "paneId": {
                              "description": "Stable pane id, e.g. %1.",
                              "pattern": "^%\\d+$",
                              "type": "string"
                            }
                          },
                          "required": [
                            "paneId"
                          ],
                          "type": "object"
                        },
                        "tool": {
                          "const": "get_pane_info",
                          "description": "Run `get_pane_info` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `get_server_info`, exactly the shape it takes when called on its own.",
                          "properties": {},
                          "type": "object"
                        },
                        "tool": {
                          "const": "get_server_info",
                          "description": "Run `get_server_info` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `capture_pane`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "end": {
                              "description": "Last line, on the same scale as start: 0 is the top of the visible screen and negative reaches back into history. It does not count back from the bottom, so end:-1 is one line above the screen top, not the last line of output.",
                              "maximum": 9007199254740991,
                              "minimum": -9007199254740991,
                              "type": "integer"
                            },
                            "joinWrapped": {
                              "description": "Rejoin lines tmux wrapped.",
                              "type": "boolean"
                            },
                            "maxLines": {
                              "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991,
                              "type": "integer"
                            },
                            "paneId": {
                              "description": "Stable pane id, e.g. %1.",
                              "pattern": "^%\\d+$",
                              "type": "string"
                            },
                            "start": {
                              "description": "First line; negative reaches into scrollback.",
                              "maximum": 9007199254740991,
                              "minimum": -9007199254740991,
                              "type": "integer"
                            }
                          },
                          "required": [
                            "paneId"
                          ],
                          "type": "object"
                        },
                        "tool": {
                          "const": "capture_pane",
                          "description": "Run `capture_pane` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `capture_since`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "cursor": {
                              "description": "The cursor from your previous capture_since. Omit on the first call.",
                              "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
                              "type": "string"
                            },
                            "maxLines": {
                              "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991,
                              "type": "integer"
                            },
                            "paneId": {
                              "description": "Stable pane id, e.g. %1.",
                              "pattern": "^%\\d+$",
                              "type": "string"
                            },
                            "waitMs": {
                              "description": "Wait up to this long for new output before answering. Default 0.",
                              "maximum": 9007199254740991,
                              "minimum": 0,
                              "type": "integer"
                            }
                          },
                          "required": [
                            "paneId"
                          ],
                          "type": "object"
                        },
                        "tool": {
                          "const": "capture_since",
                          "description": "Run `capture_since` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `search_panes`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "maxMatchesPerPane": {
                              "description": "Stop after this many matches in each pane. Defaults to the server limit.",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991,
                              "type": "integer"
                            },
                            "pattern": {
                              "description": "Non-empty literal text to find.",
                              "minLength": 1,
                              "type": "string"
                            },
                            "regex": {
                              "description": "Interpret pattern using libtmux's bounded regular-expression grammar.",
                              "type": "boolean"
                            },
                            "scrollbackLines": {
                              "description": "How far above the visible screen to search. Default 0.",
                              "maximum": 9007199254740991,
                              "minimum": 0,
                              "type": "integer"
                            },
                            "session": {
                              "description": "Restrict to one session by id or name.",
                              "type": "string"
                            }
                          },
                          "required": [
                            "pattern"
                          ],
                          "type": "object"
                        },
                        "tool": {
                          "const": "search_panes",
                          "description": "Run `search_panes` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `show_option`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "name": {
                              "description": "The tmux option to read, such as \"status-left\".",
                              "type": "string"
                            },
                            "scope": {
                              "description": "Default server.",
                              "enum": [
                                "server",
                                "session",
                                "global-session",
                                "window",
                                "global-window",
                                "pane"
                              ],
                              "type": "string"
                            },
                            "target": {
                              "description": "Session id/name or pane id, for the matching scope.",
                              "type": "string"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "type": "object"
                        },
                        "tool": {
                          "const": "show_option",
                          "description": "Run `show_option` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `show_hooks`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "session": {
                              "description": "Session scope; omit for server scope.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "tool": {
                          "const": "show_hooks",
                          "description": "Run `show_hooks` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `show_environment`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "session": {
                              "description": "Session id ($1) or name. Omit for the server environment.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "tool": {
                          "const": "show_environment",
                          "description": "Run `show_environment` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `get_session_info`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "session": {
                              "description": "Session id ($1) or name.",
                              "type": "string"
                            }
                          },
                          "required": [
                            "session"
                          ],
                          "type": "object"
                        },
                        "tool": {
                          "const": "get_session_info",
                          "description": "Run `get_session_info` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `get_window_info`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "windowId": {
                              "description": "Stable window id, e.g. @1.",
                              "pattern": "^@\\d+$",
                              "type": "string"
                            }
                          },
                          "required": [
                            "windowId"
                          ],
                          "type": "object"
                        },
                        "tool": {
                          "const": "get_window_info",
                          "description": "Run `get_window_info` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `find_pane_by_position`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "corner": {
                              "description": "Which corner of the window's layout to resolve.",
                              "enum": [
                                "top-left",
                                "top-right",
                                "bottom-left",
                                "bottom-right"
                              ],
                              "type": "string"
                            },
                            "windowId": {
                              "description": "Stable window id, e.g. @1.",
                              "pattern": "^@\\d+$",
                              "type": "string"
                            }
                          },
                          "required": [
                            "corner",
                            "windowId"
                          ],
                          "type": "object"
                        },
                        "tool": {
                          "const": "find_pane_by_position",
                          "description": "Run `find_pane_by_position` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `get_tmux_variables`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "names": {
                              "description": "Variable names to resolve, such as \"pane_current_command\" — bare names, not `#{…}` format syntax.",
                              "items": {
                                "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
                                "type": "string"
                              },
                              "maxItems": 32,
                              "minItems": 1,
                              "type": "array",
                              "x-libtmux-tmux-format": "validated-variable-name"
                            },
                            "paneId": {
                              "description": "Stable pane id, e.g. %1.",
                              "pattern": "^%\\d+$",
                              "type": "string"
                            }
                          },
                          "required": [
                            "names"
                          ],
                          "type": "object"
                        },
                        "tool": {
                          "const": "get_tmux_variables",
                          "description": "Run `get_tmux_variables` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "arguments": {
                          "additionalProperties": false,
                          "description": "Arguments for `snapshot_pane`, exactly the shape it takes when called on its own.",
                          "properties": {
                            "maxLines": {
                              "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991,
                              "type": "integer"
                            },
                            "paneId": {
                              "description": "Stable pane id, e.g. %1.",
                              "pattern": "^%\\d+$",
                              "type": "string"
                            }
                          },
                          "required": [
                            "paneId"
                          ],
                          "type": "object"
                        },
                        "tool": {
                          "const": "snapshot_pane",
                          "description": "Run `snapshot_pane` as this step of the batch.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool"
                      ],
                      "type": "object"
                    }
                  ]
                },
                "maxItems": 16,
                "minItems": 1,
                "type": "array"
              }
            },
            "required": [
              "operations"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "call_read_tools_batch",
          "nestedAuthority": [
            "list_sessions",
            "list_windows",
            "list_panes",
            "get_pane_info",
            "get_server_info",
            "capture_pane",
            "capture_since",
            "search_panes",
            "show_option",
            "show_hooks",
            "show_environment",
            "get_session_info",
            "get_window_info",
            "find_pane_by_position",
            "get_tmux_variables",
            "snapshot_pane"
          ],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content",
            "process-environment",
            "configured-command"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "failed": {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "onError": {
                "enum": [
                  "stop",
                  "continue"
                ],
                "type": "string"
              },
              "results": {
                "items": {
                  "properties": {
                    "error": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "index": {
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "result": {
                      "anyOf": [
                        {
                          "additionalProperties": {},
                          "properties": {
                            "content": {
                              "items": {},
                              "type": "array"
                            },
                            "isError": {
                              "type": "boolean"
                            },
                            "structuredContent": {
                              "additionalProperties": {},
                              "propertyNames": {
                                "type": "string"
                              },
                              "type": "object"
                            }
                          },
                          "required": [
                            "content"
                          ],
                          "type": "object"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "resultTruncated": {
                      "type": "boolean"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "tool": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "index",
                    "result",
                    "resultTruncated",
                    "success",
                    "tool"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "stoppedAt": {
                "anyOf": [
                  {
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "succeeded": {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "truncated": {
                "type": "boolean"
              },
              "truncatedBytes": {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "failed",
              "onError",
              "results",
              "stoppedAt",
              "succeeded",
              "truncated",
              "truncatedBytes"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Call read tools batch",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "capture_pane",
      "wireName": "capture_pane",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/capture.ts",
        "line": 27
      },
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. The text a pane is showing, or its scrollback. Negative `start` reaches back into history (-100 is a hundred lines above the top of the screen). For repeated reads of the same pane use capture_since instead — it returns only what is new.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "end": {
            "description": "Last line, on the same scale as start: 0 is the top of the visible screen and negative reaches back into history. It does not count back from the bottom, so end:-1 is one line above the screen top, not the last line of output.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "joinWrapped": {
            "description": "Rejoin lines tmux wrapped.",
            "type": "boolean"
          },
          "maxLines": {
            "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "start": {
            "description": "First line; negative reaches into scrollback.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "byteClamped": {
            "description": "Whether the byte ceiling shortened the capture.",
            "type": "boolean"
          },
          "droppedLines": {
            "description": "Lines cut from the front to fit maxLines.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "effectiveEnd": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "effectiveStart": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "omittedBytes": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "rangeClamped": {
            "description": "Whether a result ceiling shortened the range.",
            "type": "boolean"
          },
          "returnedBytes": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "text": {
            "type": "string"
          },
          "totalLines": {
            "description": "How many lines the capture held before trimming.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "byteClamped",
          "droppedLines",
          "effectiveEnd",
          "effectiveStart",
          "omittedBytes",
          "paneId",
          "rangeClamped",
          "returnedBytes",
          "text",
          "totalLines"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. The text a pane is showing, or its scrollback. Negative `start` reaches back into history (-100 is a hundred lines above the top of the screen). For repeated reads of the same pane use capture_since instead — it returns only what is new.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "end": {
                "description": "Last line, on the same scale as start: 0 is the top of the visible screen and negative reaches back into history. It does not count back from the bottom, so end:-1 is one line above the screen top, not the last line of output.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "joinWrapped": {
                "description": "Rejoin lines tmux wrapped.",
                "type": "boolean"
              },
              "maxLines": {
                "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "start": {
                "description": "First line; negative reaches into scrollback.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "capture_pane",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "byteClamped": {
                "description": "Whether the byte ceiling shortened the capture.",
                "type": "boolean"
              },
              "droppedLines": {
                "description": "Lines cut from the front to fit maxLines.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "effectiveEnd": {
                "anyOf": [
                  {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "effectiveStart": {
                "anyOf": [
                  {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "omittedBytes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "rangeClamped": {
                "description": "Whether a result ceiling shortened the range.",
                "type": "boolean"
              },
              "returnedBytes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "text": {
                "type": "string"
              },
              "totalLines": {
                "description": "How many lines the capture held before trimming.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "byteClamped",
              "droppedLines",
              "effectiveEnd",
              "effectiveStart",
              "omittedBytes",
              "paneId",
              "rangeClamped",
              "returnedBytes",
              "text",
              "totalLines"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Capture pane",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "capture_since",
      "wireName": "capture_since",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/capture.ts",
        "line": 132
      },
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. What a pane has printed since you last looked. Call it once with no cursor to start watching and get the current screen; keep the cursor it returns and pass it back each time after that, and you are charged only for what is new. This is the tool for watching a build, a log, or a test run — not a capture_pane loop. Set waitMs to block until something arrives rather than returning empty. Reports the stream in the order it was written, so a program that draws by moving the cursor (a progress bar, a full-screen TUI) reads jumbled here — capture_pane renders those.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "cursor": {
            "description": "The cursor from your previous capture_since. Omit on the first call.",
            "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
            "type": "string"
          },
          "maxLines": {
            "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "waitMs": {
            "description": "Wait up to this long for new output before answering. Default 0.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "byteClamped": {
            "description": "Whether the byte ceiling shortened this result.",
            "type": "boolean"
          },
          "cursor": {
            "anyOf": [
              {
                "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Pass this to the next capture_since call; null means streaming was unavailable."
          },
          "droppedLines": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "effectiveTimeoutMs": {
            "description": "The wait ceiling applied; zero when this call did not wait on a live stream.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "missedBytes": {
            "description": "Output that scrolled past before this read reached it. Non-zero means you fell behind.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "omittedBytes": {
            "description": "Result bytes omitted after capture or streaming.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "rangeClamped": {
            "description": "Whether result limits shortened a grid capture.",
            "type": "boolean"
          },
          "returnedBytes": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "seeded": {
            "description": "True when this call started the watch and returned the screen.",
            "type": "boolean"
          },
          "streaming": {
            "description": "False when no control connection was available and this fell back to capturing.",
            "type": "boolean"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "byteClamped",
          "cursor",
          "droppedLines",
          "effectiveTimeoutMs",
          "missedBytes",
          "paneId",
          "omittedBytes",
          "rangeClamped",
          "returnedBytes",
          "seeded",
          "streaming",
          "text"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. What a pane has printed since you last looked. Call it once with no cursor to start watching and get the current screen; keep the cursor it returns and pass it back each time after that, and you are charged only for what is new. This is the tool for watching a build, a log, or a test run — not a capture_pane loop. Set waitMs to block until something arrives rather than returning empty. Reports the stream in the order it was written, so a program that draws by moving the cursor (a progress bar, a full-screen TUI) reads jumbled here — capture_pane renders those.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "cursor": {
                "description": "The cursor from your previous capture_since. Omit on the first call.",
                "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
                "type": "string"
              },
              "maxLines": {
                "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "waitMs": {
                "description": "Wait up to this long for new output before answering. Default 0.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "capture_since",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "byteClamped": {
                "description": "Whether the byte ceiling shortened this result.",
                "type": "boolean"
              },
              "cursor": {
                "anyOf": [
                  {
                    "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Pass this to the next capture_since call; null means streaming was unavailable."
              },
              "droppedLines": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "effectiveTimeoutMs": {
                "description": "The wait ceiling applied; zero when this call did not wait on a live stream.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "missedBytes": {
                "description": "Output that scrolled past before this read reached it. Non-zero means you fell behind.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "omittedBytes": {
                "description": "Result bytes omitted after capture or streaming.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "rangeClamped": {
                "description": "Whether result limits shortened a grid capture.",
                "type": "boolean"
              },
              "returnedBytes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "seeded": {
                "description": "True when this call started the watch and returned the screen.",
                "type": "boolean"
              },
              "streaming": {
                "description": "False when no control connection was available and this fell back to capturing.",
                "type": "boolean"
              },
              "text": {
                "type": "string"
              }
            },
            "required": [
              "byteClamped",
              "cursor",
              "droppedLines",
              "effectiveTimeoutMs",
              "missedBytes",
              "paneId",
              "omittedBytes",
              "rangeClamped",
              "returnedBytes",
              "seeded",
              "streaming",
              "text"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Observe new output",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "clear_pane_scrollback",
      "wireName": "clear_pane_scrollback",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 575
      },
      "description": "Delete tmux state; accepts no command payload. Discard the retained scrollback history for one pane.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "cleared": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "cleared"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Delete tmux state; accepts no command payload. Discard the retained scrollback history for one pane.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "clear_pane_scrollback",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "cleared": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "cleared"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Clear pane scrollback",
          "tmuxEffects": [
            "delete"
          ],
          "toolset": "teardown"
        }
      }
    },
    {
      "name": "create_session",
      "wireName": "create_session",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/lifecycle.ts",
        "line": 68
      },
      "description": "Start a pane's configured process; accepts no command payload. Create a detached session and return it with its first window and pane, so you can start working without listing anything first.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "height": {
            "description": "Rows. Default 24, because a detached session has no client to size it.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "name": {
            "description": "Session name; tmux picks a number when omitted.",
            "type": "string",
            "x-libtmux-tmux-format": "literalized-once"
          },
          "startDirectory": {
            "description": "Working directory for the first pane. Defaults to the server's.",
            "type": "string",
            "x-libtmux-tmux-format": "literalized-once"
          },
          "width": {
            "description": "Columns. Default 80, and a program that formats to its terminal width — ps, git log --graph, docker ps — truncates to that at the source, where no capture option can recover it.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "windowName": {
            "description": "Name for the first window, so the session does not open with a stray shell.",
            "type": "string",
            "x-libtmux-tmux-format": "literalized-once"
          }
        },
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "paneId": {
            "description": "The new session's first pane. Target this.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "session": {
            "additionalProperties": false,
            "properties": {
              "attachedClients": {
                "description": "Raw client count from tmux; 0 means detached. Includes control-mode clients - this server's own wait_for_text or other live read holds one open while it runs, and another program on this socket may hold others. See humanAttachedClients for a person-only count.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "humanAttachedClients": {
                "description": "attachedClients minus every control-mode client, this server's own included.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable session id, e.g. $1.",
                "pattern": "^\\$\\d+$",
                "type": "string"
              },
              "metadataComplete": {
                "description": "Whether the session name is complete.",
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from the session name.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "windows": {
                "description": "How many windows it holds.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "attachedClients",
              "humanAttachedClients",
              "id",
              "metadataComplete",
              "name",
              "omittedMetadataBytes",
              "windows"
            ],
            "type": "object"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "paneId",
          "session",
          "windowId"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Start a pane's configured process; accepts no command payload. Create a detached session and return it with its first window and pane, so you can start working without listing anything first.",
          "inputLiteralization": {
            "name": "double-hash-once",
            "startDirectory": "double-hash-once",
            "windowName": "double-hash-once"
          },
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "height": {
                "description": "Rows. Default 24, because a detached session has no client to size it.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "name": {
                "description": "Session name; tmux picks a number when omitted.",
                "type": "string",
                "x-libtmux-tmux-format": "literalized-once"
              },
              "startDirectory": {
                "description": "Working directory for the first pane. Defaults to the server's.",
                "type": "string",
                "x-libtmux-tmux-format": "literalized-once"
              },
              "width": {
                "description": "Columns. Default 80, and a program that formats to its terminal width — ps, git log --graph, docker ps — truncates to that at the source, where no capture option can recover it.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "windowName": {
                "description": "Name for the first window, so the session does not open with a stray shell.",
                "type": "string",
                "x-libtmux-tmux-format": "literalized-once"
              }
            },
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "create_session",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "paneId": {
                "description": "The new session's first pane. Target this.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "session": {
                "properties": {
                  "attachedClients": {
                    "description": "Raw client count from tmux; 0 means detached. Includes control-mode clients - this server's own wait_for_text or other live read holds one open while it runs, and another program on this socket may hold others. See humanAttachedClients for a person-only count.",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "humanAttachedClients": {
                    "description": "attachedClients minus every control-mode client, this server's own included.",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable session id, e.g. $1.",
                    "pattern": "^\\$\\d+$",
                    "type": "string"
                  },
                  "metadataComplete": {
                    "description": "Whether the session name is complete.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from the session name.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "windows": {
                    "description": "How many windows it holds.",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  }
                },
                "required": [
                  "attachedClients",
                  "humanAttachedClients",
                  "id",
                  "metadataComplete",
                  "name",
                  "omittedMetadataBytes",
                  "windows"
                ],
                "type": "object"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "paneId",
              "session",
              "windowId"
            ],
            "type": "object"
          },
          "processReach": "configured-process",
          "title": "Create session",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "create_window",
      "wireName": "create_window",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/lifecycle.ts",
        "line": 147
      },
      "description": "Start a pane's configured process; accepts no command payload. Add a window to a session and return it with its pane.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "name": {
            "description": "Name for the new window.",
            "type": "string",
            "x-libtmux-tmux-format": "literalized-once"
          },
          "session": {
            "description": "Session id ($1) or name.",
            "type": "string"
          },
          "startDirectory": {
            "description": "Working directory for the new pane. Defaults to the session's.",
            "type": "string",
            "x-libtmux-tmux-format": "literalized-once"
          }
        },
        "required": [
          "session"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "window": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "layout": {
                "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                "type": "string"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "panes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "placements": {
                "description": "Retained sessions and indexes where this window is linked.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "active": {
                      "description": "Whether this placement is current in its session.",
                      "type": "boolean"
                    },
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName",
                    "active"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "zoomed": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "layout",
              "metadataComplete",
              "name",
              "omittedMetadataBytes",
              "panes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "zoomed"
            ],
            "type": "object"
          }
        },
        "required": [
          "paneId",
          "window"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Start a pane's configured process; accepts no command payload. Add a window to a session and return it with its pane.",
          "inputLiteralization": {
            "name": "double-hash-once",
            "startDirectory": "double-hash-once"
          },
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "name": {
                "description": "Name for the new window.",
                "type": "string",
                "x-libtmux-tmux-format": "literalized-once"
              },
              "session": {
                "description": "Session id ($1) or name.",
                "type": "string"
              },
              "startDirectory": {
                "description": "Working directory for the new pane. Defaults to the session's.",
                "type": "string",
                "x-libtmux-tmux-format": "literalized-once"
              }
            },
            "required": [
              "session"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "create_window",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "window": {
                "properties": {
                  "id": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "layout": {
                    "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                    "type": "string"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "panes": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained sessions and indexes where this window is linked.",
                    "items": {
                      "properties": {
                        "active": {
                          "description": "Whether this placement is current in its session.",
                          "type": "boolean"
                        },
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName",
                        "active"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "zoomed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "layout",
                  "metadataComplete",
                  "name",
                  "omittedMetadataBytes",
                  "panes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "zoomed"
                ],
                "type": "object"
              }
            },
            "required": [
              "paneId",
              "window"
            ],
            "type": "object"
          },
          "processReach": "configured-process",
          "title": "Create window",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "find_pane_by_position",
      "wireName": "find_pane_by_position",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 233
      },
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Find the pane occupying a named corner of a window.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "corner": {
            "description": "Which corner of the window's layout to resolve.",
            "enum": [
              "top-left",
              "top-right",
              "bottom-left",
              "bottom-right"
            ],
            "type": "string"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "corner",
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "pane": {
            "additionalProperties": false,
            "properties": {
              "active": {
                "description": "Whether this is its window's active pane.",
                "type": "boolean"
              },
              "command": {
                "description": "The command tmux reports running in it.",
                "type": "string"
              },
              "cwd": {
                "description": "Its current working directory.",
                "type": "string"
              },
              "dead": {
                "description": "Whether its process exited and remain-on-exit kept it.",
                "type": "boolean"
              },
              "height": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "index": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "isAttended": {
                "description": "A person is currently looking at this pane.",
                "type": "boolean"
              },
              "isCallerPane": {
                "description": "This is the pane this MCP server runs in.",
                "type": "boolean"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "placements": {
                "description": "Retained session and window indexes through which this pane is reachable.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "title": {
                "type": "string"
              },
              "width": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "windowName": {
                "type": "string"
              }
            },
            "required": [
              "active",
              "command",
              "cwd",
              "dead",
              "height",
              "id",
              "index",
              "isAttended",
              "isCallerPane",
              "metadataComplete",
              "omittedMetadataBytes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "title",
              "width",
              "windowId",
              "windowName"
            ],
            "type": "object"
          }
        },
        "required": [
          "pane"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Inspect tmux metadata; accepts no client-supplied executable input. Find the pane occupying a named corner of a window.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "corner": {
                "description": "Which corner of the window's layout to resolve.",
                "enum": [
                  "top-left",
                  "top-right",
                  "bottom-left",
                  "bottom-right"
                ],
                "type": "string"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "corner",
              "windowId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "find_pane_by_position",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "pane": {
                "properties": {
                  "active": {
                    "description": "Whether this is its window's active pane.",
                    "type": "boolean"
                  },
                  "command": {
                    "description": "The command tmux reports running in it.",
                    "type": "string"
                  },
                  "cwd": {
                    "description": "Its current working directory.",
                    "type": "string"
                  },
                  "dead": {
                    "description": "Whether its process exited and remain-on-exit kept it.",
                    "type": "boolean"
                  },
                  "height": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                    "pattern": "^%\\d+$",
                    "type": "string"
                  },
                  "index": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "isAttended": {
                    "description": "A person is currently looking at this pane.",
                    "type": "boolean"
                  },
                  "isCallerPane": {
                    "description": "This is the pane this MCP server runs in.",
                    "type": "boolean"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained session and window indexes through which this pane is reachable.",
                    "items": {
                      "properties": {
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "title": {
                    "type": "string"
                  },
                  "width": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "windowId": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "windowName": {
                    "type": "string"
                  }
                },
                "required": [
                  "active",
                  "command",
                  "cwd",
                  "dead",
                  "height",
                  "id",
                  "index",
                  "isAttended",
                  "isCallerPane",
                  "metadataComplete",
                  "omittedMetadataBytes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "title",
                  "width",
                  "windowId",
                  "windowName"
                ],
                "type": "object"
              }
            },
            "required": [
              "pane"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Find pane by position",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "get_pane_info",
      "wireName": "get_pane_info",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/discovery.ts",
        "line": 196
      },
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. One pane's metadata: what it runs, where, how big, and whether it is yours or watched. Does not read its contents — capture_pane does that.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "pane": {
            "additionalProperties": false,
            "properties": {
              "active": {
                "description": "Whether this is its window's active pane.",
                "type": "boolean"
              },
              "command": {
                "description": "The command tmux reports running in it.",
                "type": "string"
              },
              "cwd": {
                "description": "Its current working directory.",
                "type": "string"
              },
              "dead": {
                "description": "Whether its process exited and remain-on-exit kept it.",
                "type": "boolean"
              },
              "height": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "index": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "isAttended": {
                "description": "A person is currently looking at this pane.",
                "type": "boolean"
              },
              "isCallerPane": {
                "description": "This is the pane this MCP server runs in.",
                "type": "boolean"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "placements": {
                "description": "Retained session and window indexes through which this pane is reachable.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "title": {
                "type": "string"
              },
              "width": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "windowName": {
                "type": "string"
              }
            },
            "required": [
              "active",
              "command",
              "cwd",
              "dead",
              "height",
              "id",
              "index",
              "isAttended",
              "isCallerPane",
              "metadataComplete",
              "omittedMetadataBytes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "title",
              "width",
              "windowId",
              "windowName"
            ],
            "type": "object"
          }
        },
        "required": [
          "pane"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Inspect tmux metadata; accepts no client-supplied executable input. One pane's metadata: what it runs, where, how big, and whether it is yours or watched. Does not read its contents — capture_pane does that.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "get_pane_info",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "pane": {
                "properties": {
                  "active": {
                    "description": "Whether this is its window's active pane.",
                    "type": "boolean"
                  },
                  "command": {
                    "description": "The command tmux reports running in it.",
                    "type": "string"
                  },
                  "cwd": {
                    "description": "Its current working directory.",
                    "type": "string"
                  },
                  "dead": {
                    "description": "Whether its process exited and remain-on-exit kept it.",
                    "type": "boolean"
                  },
                  "height": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                    "pattern": "^%\\d+$",
                    "type": "string"
                  },
                  "index": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "isAttended": {
                    "description": "A person is currently looking at this pane.",
                    "type": "boolean"
                  },
                  "isCallerPane": {
                    "description": "This is the pane this MCP server runs in.",
                    "type": "boolean"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained session and window indexes through which this pane is reachable.",
                    "items": {
                      "properties": {
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "title": {
                    "type": "string"
                  },
                  "width": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "windowId": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "windowName": {
                    "type": "string"
                  }
                },
                "required": [
                  "active",
                  "command",
                  "cwd",
                  "dead",
                  "height",
                  "id",
                  "index",
                  "isAttended",
                  "isCallerPane",
                  "metadataComplete",
                  "omittedMetadataBytes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "title",
                  "width",
                  "windowId",
                  "windowName"
                ],
                "type": "object"
              }
            },
            "required": [
              "pane"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Get pane",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "get_server_info",
      "wireName": "get_server_info",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/discovery.ts",
        "line": 216
      },
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. The tmux server this process drives: its socket, version, daemon pid, and totals. Check the version before using a feature that needs a recent tmux.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "panes": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "pid": {
            "type": [
              "string",
              "null"
            ]
          },
          "sessions": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "socketPath": {
            "type": [
              "string",
              "null"
            ]
          },
          "version": {
            "type": "string"
          },
          "windows": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "panes",
          "pid",
          "sessions",
          "socketPath",
          "version",
          "windows"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Inspect tmux metadata; accepts no client-supplied executable input. The tmux server this process drives: its socket, version, daemon pid, and totals. Check the version before using a feature that needs a recent tmux.",
          "inputLiteralization": {},
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "get_server_info",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "panes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "pid": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "sessions": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "socketPath": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "version": {
                "type": "string"
              },
              "windows": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "panes",
              "pid",
              "sessions",
              "socketPath",
              "version",
              "windows"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Server info",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "get_session_info",
      "wireName": "get_session_info",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 190
      },
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Return metadata for one session without listing every session.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "session": {
            "description": "Session id ($1) or name.",
            "type": "string"
          }
        },
        "required": [
          "session"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "session": {
            "additionalProperties": false,
            "properties": {
              "attachedClients": {
                "description": "Raw client count from tmux; 0 means detached. Includes control-mode clients - this server's own wait_for_text or other live read holds one open while it runs, and another program on this socket may hold others. See humanAttachedClients for a person-only count.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "humanAttachedClients": {
                "description": "attachedClients minus every control-mode client, this server's own included.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable session id, e.g. $1.",
                "pattern": "^\\$\\d+$",
                "type": "string"
              },
              "metadataComplete": {
                "description": "Whether the session name is complete.",
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from the session name.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "windows": {
                "description": "How many windows it holds.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "attachedClients",
              "humanAttachedClients",
              "id",
              "metadataComplete",
              "name",
              "omittedMetadataBytes",
              "windows"
            ],
            "type": "object"
          }
        },
        "required": [
          "session"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Inspect tmux metadata; accepts no client-supplied executable input. Return metadata for one session without listing every session.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "session": {
                "description": "Session id ($1) or name.",
                "type": "string"
              }
            },
            "required": [
              "session"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "get_session_info",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "session": {
                "properties": {
                  "attachedClients": {
                    "description": "Raw client count from tmux; 0 means detached. Includes control-mode clients - this server's own wait_for_text or other live read holds one open while it runs, and another program on this socket may hold others. See humanAttachedClients for a person-only count.",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "humanAttachedClients": {
                    "description": "attachedClients minus every control-mode client, this server's own included.",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable session id, e.g. $1.",
                    "pattern": "^\\$\\d+$",
                    "type": "string"
                  },
                  "metadataComplete": {
                    "description": "Whether the session name is complete.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from the session name.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "windows": {
                    "description": "How many windows it holds.",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  }
                },
                "required": [
                  "attachedClients",
                  "humanAttachedClients",
                  "id",
                  "metadataComplete",
                  "name",
                  "omittedMetadataBytes",
                  "windows"
                ],
                "type": "object"
              }
            },
            "required": [
              "session"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Get session info",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "get_tmux_variables",
      "wireName": "get_tmux_variables",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 263
      },
      "description": "Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Resolve validated tmux variable names without accepting raw format syntax.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "names": {
            "description": "Variable names to resolve, such as \"pane_current_command\" — bare names, not `#{…}` format syntax.",
            "items": {
              "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "type": "array",
            "x-libtmux-tmux-format": "validated-variable-name"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "names"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "values": {
            "additionalProperties": {
              "type": "string"
            },
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "values"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Resolve validated tmux variable names without accepting raw format syntax.",
          "inputLiteralization": {
            "names": "validated-variable-name"
          },
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "names": {
                "description": "Variable names to resolve, such as \"pane_current_command\" — bare names, not `#{…}` format syntax.",
                "items": {
                  "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
                  "type": "string"
                },
                "maxItems": 32,
                "minItems": 1,
                "type": "array",
                "x-libtmux-tmux-format": "validated-variable-name"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "names"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "get_tmux_variables",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "configured-command"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "values": {
                "additionalProperties": {
                  "type": "string"
                },
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              }
            },
            "required": [
              "values"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Get tmux variables",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "get_window_info",
      "wireName": "get_window_info",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 216
      },
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Return metadata and placements for one window.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "window": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "layout": {
                "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                "type": "string"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "panes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "placements": {
                "description": "Retained sessions and indexes where this window is linked.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "active": {
                      "description": "Whether this placement is current in its session.",
                      "type": "boolean"
                    },
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName",
                    "active"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "zoomed": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "layout",
              "metadataComplete",
              "name",
              "omittedMetadataBytes",
              "panes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "zoomed"
            ],
            "type": "object"
          }
        },
        "required": [
          "window"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Inspect tmux metadata; accepts no client-supplied executable input. Return metadata and placements for one window.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "windowId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "get_window_info",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "window": {
                "properties": {
                  "id": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "layout": {
                    "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                    "type": "string"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "panes": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained sessions and indexes where this window is linked.",
                    "items": {
                      "properties": {
                        "active": {
                          "description": "Whether this placement is current in its session.",
                          "type": "boolean"
                        },
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName",
                        "active"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "zoomed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "layout",
                  "metadataComplete",
                  "name",
                  "omittedMetadataBytes",
                  "panes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "zoomed"
                ],
                "type": "object"
              }
            },
            "required": [
              "window"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Get window info",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "kill_pane",
      "wireName": "kill_pane",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/lifecycle.ts",
        "line": 323
      },
      "description": "Delete tmux state; accepts no command payload. Close a pane and the process in it. Refuses the pane this server runs in and every pane a person is watching; force confirms only this server's exact caller pane.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "force": {
            "description": "Allow this to target the pane this server itself was called from, which is otherwise refused. It does not override the refusal to touch a pane a person is watching.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "killed": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "killed"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Delete tmux state; accepts no command payload. Close a pane and the process in it. Refuses the pane this server runs in and every pane a person is watching; force confirms only this server's exact caller pane.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "force": {
                "description": "Allow this to target the pane this server itself was called from, which is otherwise refused. It does not override the refusal to touch a pane a person is watching.",
                "type": "boolean"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "kill_pane",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "killed": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "killed"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Kill pane",
          "tmuxEffects": [
            "observe",
            "delete"
          ],
          "toolset": "teardown"
        }
      }
    },
    {
      "name": "kill_session",
      "wireName": "kill_session",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/lifecycle.ts",
        "line": 386
      },
      "description": "Delete tmux state; accepts no command payload. Remove a session. Windows and panes shared with another session remain available there.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "force": {
            "description": "Allow this to target the pane this server itself was called from, which is otherwise refused. It does not override the refusal to touch a pane a person is watching.",
            "type": "boolean"
          },
          "session": {
            "description": "Session id ($1) or name.",
            "type": "string"
          }
        },
        "required": [
          "session"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "killed": {
            "description": "Stable session id, e.g. $1.",
            "pattern": "^\\$\\d+$",
            "type": "string"
          }
        },
        "required": [
          "killed"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Delete tmux state; accepts no command payload. Remove a session. Windows and panes shared with another session remain available there.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "force": {
                "description": "Allow this to target the pane this server itself was called from, which is otherwise refused. It does not override the refusal to touch a pane a person is watching.",
                "type": "boolean"
              },
              "session": {
                "description": "Session id ($1) or name.",
                "type": "string"
              }
            },
            "required": [
              "session"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "kill_session",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "killed": {
                "description": "Stable session id, e.g. $1.",
                "pattern": "^\\$\\d+$",
                "type": "string"
              }
            },
            "required": [
              "killed"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Kill session",
          "tmuxEffects": [
            "observe",
            "delete"
          ],
          "toolset": "teardown"
        }
      }
    },
    {
      "name": "kill_window",
      "wireName": "kill_window",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/lifecycle.ts",
        "line": 352
      },
      "description": "Delete tmux state; accepts no command payload. Close a window and every pane in it.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "force": {
            "description": "Allow this to target the pane this server itself was called from, which is otherwise refused. It does not override the refusal to touch a pane a person is watching.",
            "type": "boolean"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "killed": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "killed"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Delete tmux state; accepts no command payload. Close a window and every pane in it.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "force": {
                "description": "Allow this to target the pane this server itself was called from, which is otherwise refused. It does not override the refusal to touch a pane a person is watching.",
                "type": "boolean"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "windowId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "kill_window",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "killed": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "killed"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Kill window",
          "tmuxEffects": [
            "observe",
            "delete"
          ],
          "toolset": "teardown"
        }
      }
    },
    {
      "name": "list_panes",
      "wireName": "list_panes",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/discovery.ts",
        "line": 150
      },
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Panes on this server, with the command each is running and its directory. Marks the pane this server runs in (isCallerPane) and panes a person is watching (isAttended). Metadata only — search_panes reads their contents.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "session": {
            "description": "Session id ($1) or name.",
            "type": "string"
          },
          "window": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "complete": {
            "type": "boolean"
          },
          "omittedEntries": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "panes": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "active": {
                  "description": "Whether this is its window's active pane.",
                  "type": "boolean"
                },
                "command": {
                  "description": "The command tmux reports running in it.",
                  "type": "string"
                },
                "cwd": {
                  "description": "Its current working directory.",
                  "type": "string"
                },
                "dead": {
                  "description": "Whether its process exited and remain-on-exit kept it.",
                  "type": "boolean"
                },
                "height": {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "id": {
                  "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                  "pattern": "^%\\d+$",
                  "type": "string"
                },
                "index": {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "isAttended": {
                  "description": "A person is currently looking at this pane.",
                  "type": "boolean"
                },
                "isCallerPane": {
                  "description": "This is the pane this MCP server runs in.",
                  "type": "boolean"
                },
                "metadataComplete": {
                  "description": "Whether every projected metadata string is complete.",
                  "type": "boolean"
                },
                "omittedMetadataBytes": {
                  "description": "UTF-8 bytes omitted from projected metadata strings.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "omittedPlacements": {
                  "description": "Later placements omitted.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "placements": {
                  "description": "Retained session and window indexes through which this pane is reachable.",
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "index": {
                        "description": "The window index in this session.",
                        "maximum": 9007199254740991,
                        "minimum": -9007199254740991,
                        "type": "integer"
                      },
                      "sessionId": {
                        "description": "Stable session id, e.g. $1.",
                        "pattern": "^\\$\\d+$",
                        "type": "string"
                      },
                      "sessionName": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "index",
                      "sessionId",
                      "sessionName"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "placementsComplete": {
                  "description": "Whether placements contains every placement.",
                  "type": "boolean"
                },
                "title": {
                  "type": "string"
                },
                "width": {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "windowId": {
                  "description": "Stable window id, e.g. @1.",
                  "pattern": "^@\\d+$",
                  "type": "string"
                },
                "windowName": {
                  "type": "string"
                }
              },
              "required": [
                "active",
                "command",
                "cwd",
                "dead",
                "height",
                "id",
                "index",
                "isAttended",
                "isCallerPane",
                "metadataComplete",
                "omittedMetadataBytes",
                "omittedPlacements",
                "placements",
                "placementsComplete",
                "title",
                "width",
                "windowId",
                "windowName"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "complete",
          "omittedEntries",
          "panes"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Inspect tmux metadata; accepts no client-supplied executable input. Panes on this server, with the command each is running and its directory. Marks the pane this server runs in (isCallerPane) and panes a person is watching (isAttended). Metadata only — search_panes reads their contents.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "session": {
                "description": "Session id ($1) or name.",
                "type": "string"
              },
              "window": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "list_panes",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "complete": {
                "type": "boolean"
              },
              "omittedEntries": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "panes": {
                "items": {
                  "properties": {
                    "active": {
                      "description": "Whether this is its window's active pane.",
                      "type": "boolean"
                    },
                    "command": {
                      "description": "The command tmux reports running in it.",
                      "type": "string"
                    },
                    "cwd": {
                      "description": "Its current working directory.",
                      "type": "string"
                    },
                    "dead": {
                      "description": "Whether its process exited and remain-on-exit kept it.",
                      "type": "boolean"
                    },
                    "height": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "id": {
                      "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                      "pattern": "^%\\d+$",
                      "type": "string"
                    },
                    "index": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "isAttended": {
                      "description": "A person is currently looking at this pane.",
                      "type": "boolean"
                    },
                    "isCallerPane": {
                      "description": "This is the pane this MCP server runs in.",
                      "type": "boolean"
                    },
                    "metadataComplete": {
                      "description": "Whether every projected metadata string is complete.",
                      "type": "boolean"
                    },
                    "omittedMetadataBytes": {
                      "description": "UTF-8 bytes omitted from projected metadata strings.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "omittedPlacements": {
                      "description": "Later placements omitted.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "placements": {
                      "description": "Retained session and window indexes through which this pane is reachable.",
                      "items": {
                        "properties": {
                          "index": {
                            "description": "The window index in this session.",
                            "maximum": 9007199254740991,
                            "minimum": -9007199254740991,
                            "type": "integer"
                          },
                          "sessionId": {
                            "description": "Stable session id, e.g. $1.",
                            "pattern": "^\\$\\d+$",
                            "type": "string"
                          },
                          "sessionName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "index",
                          "sessionId",
                          "sessionName"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "placementsComplete": {
                      "description": "Whether placements contains every placement.",
                      "type": "boolean"
                    },
                    "title": {
                      "type": "string"
                    },
                    "width": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "windowId": {
                      "description": "Stable window id, e.g. @1.",
                      "pattern": "^@\\d+$",
                      "type": "string"
                    },
                    "windowName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "active",
                    "command",
                    "cwd",
                    "dead",
                    "height",
                    "id",
                    "index",
                    "isAttended",
                    "isCallerPane",
                    "metadataComplete",
                    "omittedMetadataBytes",
                    "omittedPlacements",
                    "placements",
                    "placementsComplete",
                    "title",
                    "width",
                    "windowId",
                    "windowName"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "complete",
              "omittedEntries",
              "panes"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "List panes",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "list_sessions",
      "wireName": "list_sessions",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/discovery.ts",
        "line": 60
      },
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Every session on this server with its id, name, window count, and whether anyone is attached. Metadata only — for what a pane shows, use capture_pane or search_panes.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "complete": {
            "type": "boolean"
          },
          "omittedEntries": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "sessions": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "attachedClients": {
                  "description": "Raw client count from tmux; 0 means detached. Includes control-mode clients - this server's own wait_for_text or other live read holds one open while it runs, and another program on this socket may hold others. See humanAttachedClients for a person-only count.",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "humanAttachedClients": {
                  "description": "attachedClients minus every control-mode client, this server's own included.",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "id": {
                  "description": "Stable session id, e.g. $1.",
                  "pattern": "^\\$\\d+$",
                  "type": "string"
                },
                "metadataComplete": {
                  "description": "Whether the session name is complete.",
                  "type": "boolean"
                },
                "name": {
                  "type": "string"
                },
                "omittedMetadataBytes": {
                  "description": "UTF-8 bytes omitted from the session name.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "windows": {
                  "description": "How many windows it holds.",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                }
              },
              "required": [
                "attachedClients",
                "humanAttachedClients",
                "id",
                "metadataComplete",
                "name",
                "omittedMetadataBytes",
                "windows"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "complete",
          "omittedEntries",
          "sessions"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Inspect tmux metadata; accepts no client-supplied executable input. Every session on this server with its id, name, window count, and whether anyone is attached. Metadata only — for what a pane shows, use capture_pane or search_panes.",
          "inputLiteralization": {},
          "inputSchema": {
            "properties": {},
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "list_sessions",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "complete": {
                "type": "boolean"
              },
              "omittedEntries": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "sessions": {
                "items": {
                  "properties": {
                    "attachedClients": {
                      "description": "Raw client count from tmux; 0 means detached. Includes control-mode clients - this server's own wait_for_text or other live read holds one open while it runs, and another program on this socket may hold others. See humanAttachedClients for a person-only count.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "humanAttachedClients": {
                      "description": "attachedClients minus every control-mode client, this server's own included.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "id": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "metadataComplete": {
                      "description": "Whether the session name is complete.",
                      "type": "boolean"
                    },
                    "name": {
                      "type": "string"
                    },
                    "omittedMetadataBytes": {
                      "description": "UTF-8 bytes omitted from the session name.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "windows": {
                      "description": "How many windows it holds.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "attachedClients",
                    "humanAttachedClients",
                    "id",
                    "metadataComplete",
                    "name",
                    "omittedMetadataBytes",
                    "windows"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "complete",
              "omittedEntries",
              "sessions"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "List sessions",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "list_windows",
      "wireName": "list_windows",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/discovery.ts",
        "line": 105
      },
      "description": "Inspect tmux metadata; accepts no client-supplied executable input. Windows on this server, optionally restricted to one session by id or name.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "session": {
            "description": "Session id ($1) or name. Omit for all sessions.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "complete": {
            "type": "boolean"
          },
          "omittedEntries": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "windows": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "Stable window id, e.g. @1.",
                  "pattern": "^@\\d+$",
                  "type": "string"
                },
                "layout": {
                  "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                  "type": "string"
                },
                "metadataComplete": {
                  "description": "Whether every projected metadata string is complete.",
                  "type": "boolean"
                },
                "name": {
                  "type": "string"
                },
                "omittedMetadataBytes": {
                  "description": "UTF-8 bytes omitted from projected metadata strings.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "omittedPlacements": {
                  "description": "Later placements omitted.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "panes": {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "placements": {
                  "description": "Retained sessions and indexes where this window is linked.",
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "active": {
                        "description": "Whether this placement is current in its session.",
                        "type": "boolean"
                      },
                      "index": {
                        "description": "The window index in this session.",
                        "maximum": 9007199254740991,
                        "minimum": -9007199254740991,
                        "type": "integer"
                      },
                      "sessionId": {
                        "description": "Stable session id, e.g. $1.",
                        "pattern": "^\\$\\d+$",
                        "type": "string"
                      },
                      "sessionName": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "index",
                      "sessionId",
                      "sessionName",
                      "active"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "placementsComplete": {
                  "description": "Whether placements contains every placement.",
                  "type": "boolean"
                },
                "zoomed": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "layout",
                "metadataComplete",
                "name",
                "omittedMetadataBytes",
                "panes",
                "omittedPlacements",
                "placements",
                "placementsComplete",
                "zoomed"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "complete",
          "omittedEntries",
          "windows"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Inspect tmux metadata; accepts no client-supplied executable input. Windows on this server, optionally restricted to one session by id or name.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "session": {
                "description": "Session id ($1) or name. Omit for all sessions.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "list_windows",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "complete": {
                "type": "boolean"
              },
              "omittedEntries": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "windows": {
                "items": {
                  "properties": {
                    "id": {
                      "description": "Stable window id, e.g. @1.",
                      "pattern": "^@\\d+$",
                      "type": "string"
                    },
                    "layout": {
                      "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                      "type": "string"
                    },
                    "metadataComplete": {
                      "description": "Whether every projected metadata string is complete.",
                      "type": "boolean"
                    },
                    "name": {
                      "type": "string"
                    },
                    "omittedMetadataBytes": {
                      "description": "UTF-8 bytes omitted from projected metadata strings.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "omittedPlacements": {
                      "description": "Later placements omitted.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "panes": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "placements": {
                      "description": "Retained sessions and indexes where this window is linked.",
                      "items": {
                        "properties": {
                          "active": {
                            "description": "Whether this placement is current in its session.",
                            "type": "boolean"
                          },
                          "index": {
                            "description": "The window index in this session.",
                            "maximum": 9007199254740991,
                            "minimum": -9007199254740991,
                            "type": "integer"
                          },
                          "sessionId": {
                            "description": "Stable session id, e.g. $1.",
                            "pattern": "^\\$\\d+$",
                            "type": "string"
                          },
                          "sessionName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "index",
                          "sessionId",
                          "sessionName",
                          "active"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "placementsComplete": {
                      "description": "Whether placements contains every placement.",
                      "type": "boolean"
                    },
                    "zoomed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "layout",
                    "metadataComplete",
                    "name",
                    "omittedMetadataBytes",
                    "panes",
                    "omittedPlacements",
                    "placements",
                    "placementsComplete",
                    "zoomed"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "complete",
              "omittedEntries",
              "windows"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "List windows",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "move_window",
      "wireName": "move_window",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/layout.ts",
        "line": 268
      },
      "description": "Change tmux state; no client-supplied executable input. Move a window to another index, or into another session.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "index": {
            "description": "Destination index. Defaults to the next free one.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "session": {
            "description": "Destination session id or name.",
            "type": "string"
          },
          "sourceIndex": {
            "description": "Source window index. Required when the session has several placements of the id.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "sourceSession": {
            "description": "Source session id or name. Required when the id has several placements.",
            "type": "string"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "window": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "layout": {
                "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                "type": "string"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "panes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "placements": {
                "description": "Retained sessions and indexes where this window is linked.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "active": {
                      "description": "Whether this placement is current in its session.",
                      "type": "boolean"
                    },
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName",
                    "active"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "zoomed": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "layout",
              "metadataComplete",
              "name",
              "omittedMetadataBytes",
              "panes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "zoomed"
            ],
            "type": "object"
          }
        },
        "required": [
          "window"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Move a window to another index, or into another session.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "index": {
                "description": "Destination index. Defaults to the next free one.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "session": {
                "description": "Destination session id or name.",
                "type": "string"
              },
              "sourceIndex": {
                "description": "Source window index. Required when the session has several placements of the id.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "sourceSession": {
                "description": "Source session id or name. Required when the id has several placements.",
                "type": "string"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "windowId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "move_window",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "window": {
                "properties": {
                  "id": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "layout": {
                    "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                    "type": "string"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "panes": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained sessions and indexes where this window is linked.",
                    "items": {
                      "properties": {
                        "active": {
                          "description": "Whether this placement is current in its session.",
                          "type": "boolean"
                        },
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName",
                        "active"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "zoomed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "layout",
                  "metadataComplete",
                  "name",
                  "omittedMetadataBytes",
                  "panes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "zoomed"
                ],
                "type": "object"
              }
            },
            "required": [
              "window"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Move window",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "paste_text",
      "wireName": "paste_text",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/input.ts",
        "line": 189
      },
      "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Put text into a pane without tmux interpreting any of it as key names. Use for content — a password, a code block, anything with characters a key parser would claim.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "enter": {
            "description": "Press Enter afterwards. Default false.",
            "type": "boolean"
          },
          "force": {
            "description": "Allow writing to the pane this server itself was called from, which is otherwise refused. It does not override the refusal to write to a pane a person is watching — a pane an attached client has on screen is still refused with force.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "text": {
            "description": "Text to paste. Sent through a tmux buffer, so a shell's line editor does not redraw on every character.",
            "type": "string"
          }
        },
        "required": [
          "paneId",
          "text"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "bytes": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "bytes",
          "paneId"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Put text into a pane without tmux interpreting any of it as key names. Use for content — a password, a code block, anything with characters a key parser would claim.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "enter": {
                "description": "Press Enter afterwards. Default false.",
                "type": "boolean"
              },
              "force": {
                "description": "Allow writing to the pane this server itself was called from, which is otherwise refused. It does not override the refusal to write to a pane a person is watching — a pane an attached client has on screen is still refused with force.",
                "type": "boolean"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "text": {
                "description": "Text to paste. Sent through a tmux buffer, so a shell's line editor does not redraw on every character.",
                "type": "string"
              }
            },
            "required": [
              "paneId",
              "text"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "paste_text",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "bytes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "bytes",
              "paneId"
            ],
            "type": "object"
          },
          "processReach": "pane-input",
          "title": "Paste text",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "rename_session",
      "wireName": "rename_session",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/lifecycle.ts",
        "line": 234
      },
      "description": "Change tmux state; no client-supplied executable input. Rename a session. Its id does not change, so targets by id keep working.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "name": {
            "description": "The session's new name.",
            "type": "string",
            "x-libtmux-tmux-format": "literalized-once"
          },
          "session": {
            "description": "Session id ($1) or name.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "session"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "session": {
            "additionalProperties": false,
            "properties": {
              "attachedClients": {
                "description": "Raw client count from tmux; 0 means detached. Includes control-mode clients - this server's own wait_for_text or other live read holds one open while it runs, and another program on this socket may hold others. See humanAttachedClients for a person-only count.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "humanAttachedClients": {
                "description": "attachedClients minus every control-mode client, this server's own included.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable session id, e.g. $1.",
                "pattern": "^\\$\\d+$",
                "type": "string"
              },
              "metadataComplete": {
                "description": "Whether the session name is complete.",
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from the session name.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "windows": {
                "description": "How many windows it holds.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "attachedClients",
              "humanAttachedClients",
              "id",
              "metadataComplete",
              "name",
              "omittedMetadataBytes",
              "windows"
            ],
            "type": "object"
          }
        },
        "required": [
          "session"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Rename a session. Its id does not change, so targets by id keep working.",
          "inputLiteralization": {
            "name": "double-hash-once"
          },
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "name": {
                "description": "The session's new name.",
                "type": "string",
                "x-libtmux-tmux-format": "literalized-once"
              },
              "session": {
                "description": "Session id ($1) or name.",
                "type": "string"
              }
            },
            "required": [
              "name",
              "session"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "rename_session",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "session": {
                "properties": {
                  "attachedClients": {
                    "description": "Raw client count from tmux; 0 means detached. Includes control-mode clients - this server's own wait_for_text or other live read holds one open while it runs, and another program on this socket may hold others. See humanAttachedClients for a person-only count.",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "humanAttachedClients": {
                    "description": "attachedClients minus every control-mode client, this server's own included.",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable session id, e.g. $1.",
                    "pattern": "^\\$\\d+$",
                    "type": "string"
                  },
                  "metadataComplete": {
                    "description": "Whether the session name is complete.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from the session name.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "windows": {
                    "description": "How many windows it holds.",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  }
                },
                "required": [
                  "attachedClients",
                  "humanAttachedClients",
                  "id",
                  "metadataComplete",
                  "name",
                  "omittedMetadataBytes",
                  "windows"
                ],
                "type": "object"
              }
            },
            "required": [
              "session"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Rename session",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "rename_window",
      "wireName": "rename_window",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/lifecycle.ts",
        "line": 260
      },
      "description": "Change tmux state; no client-supplied executable input. Rename a window. Its id does not change.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "name": {
            "description": "The window's new name.",
            "type": "string",
            "x-libtmux-tmux-format": "literalized-once"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "name",
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "window": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "layout": {
                "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                "type": "string"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "panes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "placements": {
                "description": "Retained sessions and indexes where this window is linked.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "active": {
                      "description": "Whether this placement is current in its session.",
                      "type": "boolean"
                    },
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName",
                    "active"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "zoomed": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "layout",
              "metadataComplete",
              "name",
              "omittedMetadataBytes",
              "panes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "zoomed"
            ],
            "type": "object"
          }
        },
        "required": [
          "window"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Rename a window. Its id does not change.",
          "inputLiteralization": {
            "name": "double-hash-once"
          },
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "name": {
                "description": "The window's new name.",
                "type": "string",
                "x-libtmux-tmux-format": "literalized-once"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "name",
              "windowId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "rename_window",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "window": {
                "properties": {
                  "id": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "layout": {
                    "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                    "type": "string"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "panes": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained sessions and indexes where this window is linked.",
                    "items": {
                      "properties": {
                        "active": {
                          "description": "Whether this placement is current in its session.",
                          "type": "boolean"
                        },
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName",
                        "active"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "zoomed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "layout",
                  "metadataComplete",
                  "name",
                  "omittedMetadataBytes",
                  "panes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "zoomed"
                ],
                "type": "object"
              }
            },
            "required": [
              "window"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Rename window",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "resize_pane",
      "wireName": "resize_pane",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/layout.ts",
        "line": 85
      },
      "description": "Change tmux state; no client-supplied executable input. Resize a pane, either to a size or by an amount in a direction. Give width/height for an absolute size, or direction with amount for a nudge.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "amount": {
            "description": "Cells to move by. Needs direction.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "direction": {
            "description": "Adjust by an amount in this direction instead of setting a size.",
            "enum": [
              "up",
              "down",
              "left",
              "right"
            ],
            "type": "string"
          },
          "height": {
            "description": "Set the pane height, in rows.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "width": {
            "description": "Set the width, in columns.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "zoom": {
            "description": "true makes this pane fill its window, false restores the layout. A state, not a toggle: sending the same value twice is a no-op.",
            "type": "boolean"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "pane": {
            "additionalProperties": false,
            "properties": {
              "active": {
                "description": "Whether this is its window's active pane.",
                "type": "boolean"
              },
              "command": {
                "description": "The command tmux reports running in it.",
                "type": "string"
              },
              "cwd": {
                "description": "Its current working directory.",
                "type": "string"
              },
              "dead": {
                "description": "Whether its process exited and remain-on-exit kept it.",
                "type": "boolean"
              },
              "height": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "index": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "isAttended": {
                "description": "A person is currently looking at this pane.",
                "type": "boolean"
              },
              "isCallerPane": {
                "description": "This is the pane this MCP server runs in.",
                "type": "boolean"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "placements": {
                "description": "Retained session and window indexes through which this pane is reachable.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "title": {
                "type": "string"
              },
              "width": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "windowName": {
                "type": "string"
              }
            },
            "required": [
              "active",
              "command",
              "cwd",
              "dead",
              "height",
              "id",
              "index",
              "isAttended",
              "isCallerPane",
              "metadataComplete",
              "omittedMetadataBytes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "title",
              "width",
              "windowId",
              "windowName"
            ],
            "type": "object"
          }
        },
        "required": [
          "pane"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Resize a pane, either to a size or by an amount in a direction. Give width/height for an absolute size, or direction with amount for a nudge.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "amount": {
                "description": "Cells to move by. Needs direction.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "direction": {
                "description": "Adjust by an amount in this direction instead of setting a size.",
                "enum": [
                  "up",
                  "down",
                  "left",
                  "right"
                ],
                "type": "string"
              },
              "height": {
                "description": "Set the pane height, in rows.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "width": {
                "description": "Set the width, in columns.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "zoom": {
                "description": "true makes this pane fill its window, false restores the layout. A state, not a toggle: sending the same value twice is a no-op.",
                "type": "boolean"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "resize_pane",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "pane": {
                "properties": {
                  "active": {
                    "description": "Whether this is its window's active pane.",
                    "type": "boolean"
                  },
                  "command": {
                    "description": "The command tmux reports running in it.",
                    "type": "string"
                  },
                  "cwd": {
                    "description": "Its current working directory.",
                    "type": "string"
                  },
                  "dead": {
                    "description": "Whether its process exited and remain-on-exit kept it.",
                    "type": "boolean"
                  },
                  "height": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                    "pattern": "^%\\d+$",
                    "type": "string"
                  },
                  "index": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "isAttended": {
                    "description": "A person is currently looking at this pane.",
                    "type": "boolean"
                  },
                  "isCallerPane": {
                    "description": "This is the pane this MCP server runs in.",
                    "type": "boolean"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained session and window indexes through which this pane is reachable.",
                    "items": {
                      "properties": {
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "title": {
                    "type": "string"
                  },
                  "width": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "windowId": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "windowName": {
                    "type": "string"
                  }
                },
                "required": [
                  "active",
                  "command",
                  "cwd",
                  "dead",
                  "height",
                  "id",
                  "index",
                  "isAttended",
                  "isCallerPane",
                  "metadataComplete",
                  "omittedMetadataBytes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "title",
                  "width",
                  "windowId",
                  "windowName"
                ],
                "type": "object"
              }
            },
            "required": [
              "pane"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Resize pane",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "resize_window",
      "wireName": "resize_window",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/layout.ts",
        "line": 311
      },
      "description": "Change tmux state; no client-supplied executable input. Set a window's size in cells. A detached window is whatever size tmux guessed, and a program that formats to its terminal width truncates to that at the source — no capture option recovers those columns, because they were never printed. resize_pane only redistributes space inside a window and cannot grow one. A client attached to the window will overwrite this when it next changes; window-size manual makes a size of your own stick.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "height": {
            "description": "Set the height, in rows.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "width": {
            "description": "Set the width, in columns.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "window": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "layout": {
                "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                "type": "string"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "panes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "placements": {
                "description": "Retained sessions and indexes where this window is linked.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "active": {
                      "description": "Whether this placement is current in its session.",
                      "type": "boolean"
                    },
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName",
                    "active"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "zoomed": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "layout",
              "metadataComplete",
              "name",
              "omittedMetadataBytes",
              "panes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "zoomed"
            ],
            "type": "object"
          }
        },
        "required": [
          "window"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Set a window's size in cells. A detached window is whatever size tmux guessed, and a program that formats to its terminal width truncates to that at the source — no capture option recovers those columns, because they were never printed. resize_pane only redistributes space inside a window and cannot grow one. A client attached to the window will overwrite this when it next changes; window-size manual makes a size of your own stick.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "height": {
                "description": "Set the height, in rows.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "width": {
                "description": "Set the width, in columns.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "windowId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "resize_window",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "window": {
                "properties": {
                  "id": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "layout": {
                    "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                    "type": "string"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "panes": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained sessions and indexes where this window is linked.",
                    "items": {
                      "properties": {
                        "active": {
                          "description": "Whether this placement is current in its session.",
                          "type": "boolean"
                        },
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName",
                        "active"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "zoomed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "layout",
                  "metadataComplete",
                  "name",
                  "omittedMetadataBytes",
                  "panes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "zoomed"
                ],
                "type": "object"
              }
            },
            "required": [
              "window"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Resize window",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "respawn_pane",
      "wireName": "respawn_pane",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/lifecycle.ts",
        "line": 282
      },
      "description": "Start a pane's configured process; accepts no command payload. Restart a pane's command in place, keeping the pane and its id. Use to recover a pane whose process died, rather than killing and re-splitting.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "force": {
            "description": "Allow this to target the pane this server itself was called from, which is otherwise refused. It does not override the refusal to touch a pane a person is watching.",
            "type": "boolean"
          },
          "killFirst": {
            "description": "Replace a still-running process. Default false.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "startDirectory": {
            "description": "Working directory for the restarted command. Defaults to the pane's.",
            "type": "string",
            "x-libtmux-tmux-format": "literalized-once"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "pane": {
            "additionalProperties": false,
            "properties": {
              "active": {
                "description": "Whether this is its window's active pane.",
                "type": "boolean"
              },
              "command": {
                "description": "The command tmux reports running in it.",
                "type": "string"
              },
              "cwd": {
                "description": "Its current working directory.",
                "type": "string"
              },
              "dead": {
                "description": "Whether its process exited and remain-on-exit kept it.",
                "type": "boolean"
              },
              "height": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "index": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "isAttended": {
                "description": "A person is currently looking at this pane.",
                "type": "boolean"
              },
              "isCallerPane": {
                "description": "This is the pane this MCP server runs in.",
                "type": "boolean"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "placements": {
                "description": "Retained session and window indexes through which this pane is reachable.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "title": {
                "type": "string"
              },
              "width": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "windowName": {
                "type": "string"
              }
            },
            "required": [
              "active",
              "command",
              "cwd",
              "dead",
              "height",
              "id",
              "index",
              "isAttended",
              "isCallerPane",
              "metadataComplete",
              "omittedMetadataBytes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "title",
              "width",
              "windowId",
              "windowName"
            ],
            "type": "object"
          }
        },
        "required": [
          "pane"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Start a pane's configured process; accepts no command payload. Restart a pane's command in place, keeping the pane and its id. Use to recover a pane whose process died, rather than killing and re-splitting.",
          "inputLiteralization": {
            "startDirectory": "double-hash-once"
          },
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "force": {
                "description": "Allow this to target the pane this server itself was called from, which is otherwise refused. It does not override the refusal to touch a pane a person is watching.",
                "type": "boolean"
              },
              "killFirst": {
                "description": "Replace a still-running process. Default false.",
                "type": "boolean"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "startDirectory": {
                "description": "Working directory for the restarted command. Defaults to the pane's.",
                "type": "string",
                "x-libtmux-tmux-format": "literalized-once"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "respawn_pane",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "pane": {
                "properties": {
                  "active": {
                    "description": "Whether this is its window's active pane.",
                    "type": "boolean"
                  },
                  "command": {
                    "description": "The command tmux reports running in it.",
                    "type": "string"
                  },
                  "cwd": {
                    "description": "Its current working directory.",
                    "type": "string"
                  },
                  "dead": {
                    "description": "Whether its process exited and remain-on-exit kept it.",
                    "type": "boolean"
                  },
                  "height": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                    "pattern": "^%\\d+$",
                    "type": "string"
                  },
                  "index": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "isAttended": {
                    "description": "A person is currently looking at this pane.",
                    "type": "boolean"
                  },
                  "isCallerPane": {
                    "description": "This is the pane this MCP server runs in.",
                    "type": "boolean"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained session and window indexes through which this pane is reachable.",
                    "items": {
                      "properties": {
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "title": {
                    "type": "string"
                  },
                  "width": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "windowId": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "windowName": {
                    "type": "string"
                  }
                },
                "required": [
                  "active",
                  "command",
                  "cwd",
                  "dead",
                  "height",
                  "id",
                  "index",
                  "isAttended",
                  "isCallerPane",
                  "metadataComplete",
                  "omittedMetadataBytes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "title",
                  "width",
                  "windowId",
                  "windowName"
                ],
                "type": "object"
              }
            },
            "required": [
              "pane"
            ],
            "type": "object"
          },
          "processReach": "configured-process",
          "title": "Respawn pane",
          "tmuxEffects": [
            "observe",
            "change",
            "delete"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "run_shell_command",
      "wireName": "run_shell_command",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/input.ts",
        "line": 304
      },
      "description": "Run a shell command in a pane with your user's permissions. Run a shell command in a pane, wait for it to finish, and report its exit status and output. Prefer this over send_keys plus capture_pane: it frames the command so a pane's echo of what you typed can never be mistaken for what the command printed, and it knows when the command actually ended rather than guessing from the screen. The command runs in a subshell, so cd and export do not persist to a later call. A pane is effectively single-writer: this server reserves it until the command settles, but another process with the same tmux socket can still write into it.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "command": {
            "description": "The shell command to run.",
            "type": "string"
          },
          "force": {
            "description": "Allow writing to the pane this server itself was called from, which is otherwise refused. It does not override the refusal to write to a pane a person is watching — a pane an attached client has on screen is still refused with force.",
            "type": "boolean"
          },
          "maxLines": {
            "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "timeoutMs": {
            "description": "How long to wait. Clamped by the server ceiling; the result says what was used.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "command",
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "droppedLines": {
            "description": "Lines of output withheld by maxLines. The text half says so in a notice; a caller reading only the structured half would otherwise take the tail for the whole.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "effectiveTimeoutMs": {
            "description": "The timeout actually enforced.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "exitStatus": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "The command's exit status; null if it did not finish."
          },
          "foreignOutputSuspected": {
            "description": "Another writer printed into this pane while the command ran. Output that could be attributed to them was removed; what is left may still include theirs. False means no foreign marker was seen, not that the output is certainly this command's.",
            "type": "boolean"
          },
          "missedBytes": {
            "description": "Output that fell out of the pane's buffer before this read reached it. Nonzero means the command printed more than was kept, so the output here starts partway through it.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "omittedBytes": {
            "description": "Output bytes omitted by the result ceiling.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "outcome": {
            "description": "Why this returned. Read it rather than inferring from the text.",
            "enum": [
              "completed",
              "timed_out",
              "pane_died",
              "cancelled"
            ],
            "type": "string"
          },
          "output": {
            "description": "The bounded tail of the command's output.",
            "type": "string"
          },
          "outputComplete": {
            "description": "False when capture or result limits omitted any command output.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "returnedBytes": {
            "description": "UTF-8 output bytes returned.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "stillRunning": {
            "description": "Whether the command may still be running after this call returned.",
            "type": "boolean"
          }
        },
        "required": [
          "effectiveTimeoutMs",
          "droppedLines",
          "missedBytes",
          "omittedBytes",
          "foreignOutputSuspected",
          "exitStatus",
          "outcome",
          "output",
          "outputComplete",
          "paneId",
          "returnedBytes",
          "stillRunning"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Run a shell command in a pane with your user's permissions. Run a shell command in a pane, wait for it to finish, and report its exit status and output. Prefer this over send_keys plus capture_pane: it frames the command so a pane's echo of what you typed can never be mistaken for what the command printed, and it knows when the command actually ended rather than guessing from the screen. The command runs in a subshell, so cd and export do not persist to a later call. A pane is effectively single-writer: this server reserves it until the command settles, but another process with the same tmux socket can still write into it.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "command": {
                "description": "The shell command to run.",
                "type": "string"
              },
              "force": {
                "description": "Allow writing to the pane this server itself was called from, which is otherwise refused. It does not override the refusal to write to a pane a person is watching — a pane an attached client has on screen is still refused with force.",
                "type": "boolean"
              },
              "maxLines": {
                "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "timeoutMs": {
                "description": "How long to wait. Clamped by the server ceiling; the result says what was used.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "command",
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "run_shell_command",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "droppedLines": {
                "description": "Lines of output withheld by maxLines. The text half says so in a notice; a caller reading only the structured half would otherwise take the tail for the whole.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "effectiveTimeoutMs": {
                "description": "The timeout actually enforced.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "exitStatus": {
                "anyOf": [
                  {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The command's exit status; null if it did not finish."
              },
              "foreignOutputSuspected": {
                "description": "Another writer printed into this pane while the command ran. Output that could be attributed to them was removed; what is left may still include theirs. False means no foreign marker was seen, not that the output is certainly this command's.",
                "type": "boolean"
              },
              "missedBytes": {
                "description": "Output that fell out of the pane's buffer before this read reached it. Nonzero means the command printed more than was kept, so the output here starts partway through it.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "omittedBytes": {
                "description": "Output bytes omitted by the result ceiling.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "outcome": {
                "description": "Why this returned. Read it rather than inferring from the text.",
                "enum": [
                  "completed",
                  "timed_out",
                  "pane_died",
                  "cancelled"
                ],
                "type": "string"
              },
              "output": {
                "description": "The bounded tail of the command's output.",
                "type": "string"
              },
              "outputComplete": {
                "description": "False when capture or result limits omitted any command output.",
                "type": "boolean"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "returnedBytes": {
                "description": "UTF-8 output bytes returned.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "stillRunning": {
                "description": "Whether the command may still be running after this call returned.",
                "type": "boolean"
              }
            },
            "required": [
              "effectiveTimeoutMs",
              "droppedLines",
              "missedBytes",
              "omittedBytes",
              "foreignOutputSuspected",
              "exitStatus",
              "outcome",
              "output",
              "outputComplete",
              "paneId",
              "returnedBytes",
              "stillRunning"
            ],
            "type": "object"
          },
          "processReach": "pane-command",
          "title": "Run a shell command and wait",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "search_panes",
      "wireName": "search_panes",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/search.ts",
        "line": 78
      },
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Find which panes are showing something. Searches pane contents, not their names — use list_panes for metadata. Returns the matching lines with their pane, so you can target one without capturing them all. Literal matching stops at one 256 KiB aggregate UTF-8 byte budget.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "maxMatchesPerPane": {
            "description": "Stop after this many matches in each pane. Defaults to the server limit.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "pattern": {
            "description": "Non-empty literal text to find.",
            "minLength": 1,
            "type": "string"
          },
          "regex": {
            "description": "Interpret pattern using libtmux's bounded regular-expression grammar.",
            "type": "boolean"
          },
          "scrollbackLines": {
            "description": "How far above the visible screen to search. Default 0.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "session": {
            "description": "Restrict to one session by id or name.",
            "type": "string"
          }
        },
        "required": [
          "pattern"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "capturesByteClamped": {
            "type": "boolean"
          },
          "effectiveScrollbackLines": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "matches": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "lineNumber": {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "paneId": {
                  "description": "Stable pane id, e.g. %1.",
                  "pattern": "^%\\d+$",
                  "type": "string"
                },
                "placements": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "index": {
                        "description": "The window index in this session.",
                        "maximum": 9007199254740991,
                        "minimum": -9007199254740991,
                        "type": "integer"
                      },
                      "sessionId": {
                        "description": "Stable session id, e.g. $1.",
                        "pattern": "^\\$\\d+$",
                        "type": "string"
                      },
                      "sessionName": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "index",
                      "sessionId",
                      "sessionName"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "text": {
                  "type": "string"
                },
                "windowName": {
                  "type": "string"
                }
              },
              "required": [
                "lineNumber",
                "paneId",
                "placements",
                "text",
                "windowName"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "matchesTruncated": {
            "type": "boolean"
          },
          "matchingByteClamped": {
            "type": "boolean"
          },
          "matchingLineClamped": {
            "type": "boolean"
          },
          "matchingTimeClamped": {
            "type": "boolean"
          },
          "paneLimitClamped": {
            "type": "boolean"
          },
          "panesFailed": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "panesSearched": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "scrollbackClamped": {
            "type": "boolean"
          }
        },
        "required": [
          "capturesByteClamped",
          "effectiveScrollbackLines",
          "matches",
          "matchingByteClamped",
          "matchingLineClamped",
          "matchingTimeClamped",
          "matchesTruncated",
          "paneLimitClamped",
          "panesFailed",
          "panesSearched",
          "scrollbackClamped"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Find which panes are showing something. Searches pane contents, not their names — use list_panes for metadata. Returns the matching lines with their pane, so you can target one without capturing them all. Literal matching stops at one 256 KiB aggregate UTF-8 byte budget.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "maxMatchesPerPane": {
                "description": "Stop after this many matches in each pane. Defaults to the server limit.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "pattern": {
                "description": "Non-empty literal text to find.",
                "minLength": 1,
                "type": "string"
              },
              "regex": {
                "description": "Interpret pattern using libtmux's bounded regular-expression grammar.",
                "type": "boolean"
              },
              "scrollbackLines": {
                "description": "How far above the visible screen to search. Default 0.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "session": {
                "description": "Restrict to one session by id or name.",
                "type": "string"
              }
            },
            "required": [
              "pattern"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "search_panes",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "capturesByteClamped": {
                "type": "boolean"
              },
              "effectiveScrollbackLines": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "matches": {
                "items": {
                  "properties": {
                    "lineNumber": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "paneId": {
                      "description": "Stable pane id, e.g. %1.",
                      "pattern": "^%\\d+$",
                      "type": "string"
                    },
                    "placements": {
                      "items": {
                        "properties": {
                          "index": {
                            "description": "The window index in this session.",
                            "maximum": 9007199254740991,
                            "minimum": -9007199254740991,
                            "type": "integer"
                          },
                          "sessionId": {
                            "description": "Stable session id, e.g. $1.",
                            "pattern": "^\\$\\d+$",
                            "type": "string"
                          },
                          "sessionName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "index",
                          "sessionId",
                          "sessionName"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "text": {
                      "type": "string"
                    },
                    "windowName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "lineNumber",
                    "paneId",
                    "placements",
                    "text",
                    "windowName"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "matchesTruncated": {
                "type": "boolean"
              },
              "matchingByteClamped": {
                "type": "boolean"
              },
              "matchingLineClamped": {
                "type": "boolean"
              },
              "matchingTimeClamped": {
                "type": "boolean"
              },
              "paneLimitClamped": {
                "type": "boolean"
              },
              "panesFailed": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "panesSearched": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "scrollbackClamped": {
                "type": "boolean"
              }
            },
            "required": [
              "capturesByteClamped",
              "effectiveScrollbackLines",
              "matches",
              "matchingByteClamped",
              "matchingLineClamped",
              "matchingTimeClamped",
              "matchesTruncated",
              "paneLimitClamped",
              "panesFailed",
              "panesSearched",
              "scrollbackClamped"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Search pane contents",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "select_layout",
      "wireName": "select_layout",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/layout.ts",
        "line": 201
      },
      "description": "Change tmux state; no client-supplied executable input. Rearrange a window's panes using a named layout, a unique abbreviation for the running daemon, or a checksummed saved layout from a window whose metadataComplete is true. tmux may adapt dimensions or prune extra cells; the returned window.layout reports the observed result.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "layout": {
            "description": "A tmux named layout, unique abbreviation for the running version, or checksummed saved layout. Geometry and pruning follow tmux.",
            "type": "string"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "layout",
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "window": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "layout": {
                "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                "type": "string"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "panes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "placements": {
                "description": "Retained sessions and indexes where this window is linked.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "active": {
                      "description": "Whether this placement is current in its session.",
                      "type": "boolean"
                    },
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName",
                    "active"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "zoomed": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "layout",
              "metadataComplete",
              "name",
              "omittedMetadataBytes",
              "panes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "zoomed"
            ],
            "type": "object"
          }
        },
        "required": [
          "window"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Rearrange a window's panes using a named layout, a unique abbreviation for the running daemon, or a checksummed saved layout from a window whose metadataComplete is true. tmux may adapt dimensions or prune extra cells; the returned window.layout reports the observed result.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "layout": {
                "description": "A tmux named layout, unique abbreviation for the running version, or checksummed saved layout. Geometry and pruning follow tmux.",
                "type": "string"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "layout",
              "windowId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "select_layout",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "window": {
                "properties": {
                  "id": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "layout": {
                    "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                    "type": "string"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "panes": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained sessions and indexes where this window is linked.",
                    "items": {
                      "properties": {
                        "active": {
                          "description": "Whether this placement is current in its session.",
                          "type": "boolean"
                        },
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName",
                        "active"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "zoomed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "layout",
                  "metadataComplete",
                  "name",
                  "omittedMetadataBytes",
                  "panes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "zoomed"
                ],
                "type": "object"
              }
            },
            "required": [
              "window"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Select layout",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "select_pane",
      "wireName": "select_pane",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/layout.ts",
        "line": 151
      },
      "description": "Change tmux state; no client-supplied executable input. Make a pane the active one in its window. Moves the cursor of anyone attached to that window.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "pane": {
            "additionalProperties": false,
            "properties": {
              "active": {
                "description": "Whether this is its window's active pane.",
                "type": "boolean"
              },
              "command": {
                "description": "The command tmux reports running in it.",
                "type": "string"
              },
              "cwd": {
                "description": "Its current working directory.",
                "type": "string"
              },
              "dead": {
                "description": "Whether its process exited and remain-on-exit kept it.",
                "type": "boolean"
              },
              "height": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "index": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "isAttended": {
                "description": "A person is currently looking at this pane.",
                "type": "boolean"
              },
              "isCallerPane": {
                "description": "This is the pane this MCP server runs in.",
                "type": "boolean"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "placements": {
                "description": "Retained session and window indexes through which this pane is reachable.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "title": {
                "type": "string"
              },
              "width": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "windowName": {
                "type": "string"
              }
            },
            "required": [
              "active",
              "command",
              "cwd",
              "dead",
              "height",
              "id",
              "index",
              "isAttended",
              "isCallerPane",
              "metadataComplete",
              "omittedMetadataBytes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "title",
              "width",
              "windowId",
              "windowName"
            ],
            "type": "object"
          }
        },
        "required": [
          "pane"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Make a pane the active one in its window. Moves the cursor of anyone attached to that window.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "select_pane",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "pane": {
                "properties": {
                  "active": {
                    "description": "Whether this is its window's active pane.",
                    "type": "boolean"
                  },
                  "command": {
                    "description": "The command tmux reports running in it.",
                    "type": "string"
                  },
                  "cwd": {
                    "description": "Its current working directory.",
                    "type": "string"
                  },
                  "dead": {
                    "description": "Whether its process exited and remain-on-exit kept it.",
                    "type": "boolean"
                  },
                  "height": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                    "pattern": "^%\\d+$",
                    "type": "string"
                  },
                  "index": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "isAttended": {
                    "description": "A person is currently looking at this pane.",
                    "type": "boolean"
                  },
                  "isCallerPane": {
                    "description": "This is the pane this MCP server runs in.",
                    "type": "boolean"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained session and window indexes through which this pane is reachable.",
                    "items": {
                      "properties": {
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "title": {
                    "type": "string"
                  },
                  "width": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "windowId": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "windowName": {
                    "type": "string"
                  }
                },
                "required": [
                  "active",
                  "command",
                  "cwd",
                  "dead",
                  "height",
                  "id",
                  "index",
                  "isAttended",
                  "isCallerPane",
                  "metadataComplete",
                  "omittedMetadataBytes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "title",
                  "width",
                  "windowId",
                  "windowName"
                ],
                "type": "object"
              }
            },
            "required": [
              "pane"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Select pane",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "select_window",
      "wireName": "select_window",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/layout.ts",
        "line": 173
      },
      "description": "Change tmux state; no client-supplied executable input. Make a window the current one in its session.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "sourceIndex": {
            "description": "Source window index. Required when the session has several placements of the id.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "sourceSession": {
            "description": "Source session id or name. Required when the id has several placements.",
            "type": "string"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "window": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "layout": {
                "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                "type": "string"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "panes": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "placements": {
                "description": "Retained sessions and indexes where this window is linked.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "active": {
                      "description": "Whether this placement is current in its session.",
                      "type": "boolean"
                    },
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName",
                    "active"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "zoomed": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "layout",
              "metadataComplete",
              "name",
              "omittedMetadataBytes",
              "panes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "zoomed"
            ],
            "type": "object"
          }
        },
        "required": [
          "window"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Make a window the current one in its session.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "sourceIndex": {
                "description": "Source window index. Required when the session has several placements of the id.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "sourceSession": {
                "description": "Source session id or name. Required when the id has several placements.",
                "type": "string"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "windowId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "select_window",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "window": {
                "properties": {
                  "id": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "layout": {
                    "description": "tmux's observed saved layout, including any resizing or pruning; feed it back only when metadataComplete is true.",
                    "type": "string"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "panes": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained sessions and indexes where this window is linked.",
                    "items": {
                      "properties": {
                        "active": {
                          "description": "Whether this placement is current in its session.",
                          "type": "boolean"
                        },
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName",
                        "active"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "zoomed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "layout",
                  "metadataComplete",
                  "name",
                  "omittedMetadataBytes",
                  "panes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "zoomed"
                ],
                "type": "object"
              }
            },
            "required": [
              "window"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Select window",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "send_keys",
      "wireName": "send_keys",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/input.ts",
        "line": 116
      },
      "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Send keystrokes to a pane. Use for TUIs, control keys (C-c), and partial lines. For a shell command whose result you want, use run_shell_command — it waits for completion and reports exit status, which this does not.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "enter": {
            "description": "Press Enter afterwards. Default true.",
            "type": "boolean"
          },
          "force": {
            "description": "Allow writing to the pane this server itself was called from, which is otherwise refused. It does not override the refusal to write to a pane a person is watching — a pane an attached client has on screen is still refused with force.",
            "type": "boolean"
          },
          "keys": {
            "description": "Keys to send. tmux key names like C-c work unless literal is true.",
            "type": "string"
          },
          "literal": {
            "description": "Send the text as-is, without resolving key names.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "keys",
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "attended": {
            "description": "A person is watching a configured cohort member.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "resolvedPaneIds": {
            "description": "Configured cohort at the immediate preflight, not a delivery receipt.",
            "items": {
              "description": "Stable pane id, e.g. %1.",
              "pattern": "^%\\d+$",
              "type": "string"
            },
            "type": "array"
          },
          "sent": {
            "type": "boolean"
          }
        },
        "required": [
          "attended",
          "paneId",
          "resolvedPaneIds",
          "sent"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Send keystrokes to a pane. Use for TUIs, control keys (C-c), and partial lines. For a shell command whose result you want, use run_shell_command — it waits for completion and reports exit status, which this does not.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "enter": {
                "description": "Press Enter afterwards. Default true.",
                "type": "boolean"
              },
              "force": {
                "description": "Allow writing to the pane this server itself was called from, which is otherwise refused. It does not override the refusal to write to a pane a person is watching — a pane an attached client has on screen is still refused with force.",
                "type": "boolean"
              },
              "keys": {
                "description": "Keys to send. tmux key names like C-c work unless literal is true.",
                "type": "string"
              },
              "literal": {
                "description": "Send the text as-is, without resolving key names.",
                "type": "boolean"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "keys",
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "send_keys",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "attended": {
                "description": "A person is watching a configured cohort member.",
                "type": "boolean"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "resolvedPaneIds": {
                "description": "Configured cohort at the immediate preflight, not a delivery receipt.",
                "items": {
                  "description": "Stable pane id, e.g. %1.",
                  "pattern": "^%\\d+$",
                  "type": "string"
                },
                "type": "array"
              },
              "sent": {
                "type": "boolean"
              }
            },
            "required": [
              "attended",
              "paneId",
              "resolvedPaneIds",
              "sent"
            ],
            "type": "object"
          },
          "processReach": "pane-input",
          "title": "Send keys",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "send_keys_batch",
      "wireName": "send_keys_batch",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 468
      },
      "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Send an ordered batch of pane-input operations, resolving and checking each row's configured cohort immediately before input. Stop or continue on error.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "onError": {
            "description": "Whether a failed operation ends the batch. Defaults to stop.",
            "enum": [
              "stop",
              "continue"
            ],
            "type": "string"
          },
          "operations": {
            "description": "The key sends to run, in order, one pane each.",
            "items": {
              "properties": {
                "enter": {
                  "description": "Press Enter afterwards. Default true.",
                  "type": "boolean"
                },
                "force": {
                  "description": "Allow this server's own caller pane, as on `send_keys`.",
                  "type": "boolean"
                },
                "keys": {
                  "description": "Keys for this pane, as on `send_keys`.",
                  "type": "string"
                },
                "literal": {
                  "description": "Send the text literally rather than resolving key names.",
                  "type": "boolean"
                },
                "paneId": {
                  "description": "Stable pane id, e.g. %1.",
                  "pattern": "^%\\d+$",
                  "type": "string"
                }
              },
              "required": [
                "keys",
                "paneId"
              ],
              "type": "object"
            },
            "maxItems": 64,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "operations"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "completed": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "failures": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "index": {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "reason": {
                  "type": "string"
                }
              },
              "required": [
                "index",
                "reason"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "targets": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "index": {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "resolvedPaneIds": {
                  "items": {
                    "description": "Stable pane id, e.g. %1.",
                    "pattern": "^%\\d+$",
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "index",
                "resolvedPaneIds"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "completed",
          "failures",
          "targets"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Send input to a pane's program; a shell that receives it runs it with your user's permissions. Send an ordered batch of pane-input operations, resolving and checking each row's configured cohort immediately before input. Stop or continue on error.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "onError": {
                "description": "Whether a failed operation ends the batch. Defaults to stop.",
                "enum": [
                  "stop",
                  "continue"
                ],
                "type": "string"
              },
              "operations": {
                "description": "The key sends to run, in order, one pane each.",
                "items": {
                  "properties": {
                    "enter": {
                      "description": "Press Enter afterwards. Default true.",
                      "type": "boolean"
                    },
                    "force": {
                      "description": "Allow this server's own caller pane, as on `send_keys`.",
                      "type": "boolean"
                    },
                    "keys": {
                      "description": "Keys for this pane, as on `send_keys`.",
                      "type": "string"
                    },
                    "literal": {
                      "description": "Send the text literally rather than resolving key names.",
                      "type": "boolean"
                    },
                    "paneId": {
                      "description": "Stable pane id, e.g. %1.",
                      "pattern": "^%\\d+$",
                      "type": "string"
                    }
                  },
                  "required": [
                    "keys",
                    "paneId"
                  ],
                  "type": "object"
                },
                "maxItems": 64,
                "minItems": 1,
                "type": "array"
              }
            },
            "required": [
              "operations"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "send_keys_batch",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "completed": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "failures": {
                "items": {
                  "properties": {
                    "index": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "reason": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "reason"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "targets": {
                "items": {
                  "properties": {
                    "index": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "resolvedPaneIds": {
                      "items": {
                        "description": "Stable pane id, e.g. %1.",
                        "pattern": "^%\\d+$",
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "index",
                    "resolvedPaneIds"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "completed",
              "failures",
              "targets"
            ],
            "type": "object"
          },
          "processReach": "pane-input",
          "title": "Send keys batch",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "set_history_limit",
      "wireName": "set_history_limit",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 420
      },
      "description": "Change tmux state; no client-supplied executable input. Set the default retained scrollback line limit through a bounded integer.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "lines": {
            "description": "Scrollback lines each new pane keeps. Applies to panes made after this.",
            "maximum": 2000000,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "lines"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "lines": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "lines"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Set the default retained scrollback line limit through a bounded integer.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "lines": {
                "description": "Scrollback lines each new pane keeps. Applies to panes made after this.",
                "maximum": 2000000,
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "lines"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "set_history_limit",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "lines": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "lines"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Set history limit",
          "tmuxEffects": [
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "set_mouse_enabled",
      "wireName": "set_mouse_enabled",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 404
      },
      "description": "Change tmux state; no client-supplied executable input. Set the global tmux mouse option through a closed boolean schema.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "enabled": {
            "description": "Whether tmux should report mouse events.",
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Set the global tmux mouse option through a closed boolean schema.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "enabled": {
                "description": "Whether tmux should report mouse events.",
                "type": "boolean"
              }
            },
            "required": [
              "enabled"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "set_mouse_enabled",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "enabled": {
                "type": "boolean"
              }
            },
            "required": [
              "enabled"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Set mouse enabled",
          "tmuxEffects": [
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "set_pane_title",
      "wireName": "set_pane_title",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/layout.ts",
        "line": 350
      },
      "description": "Change tmux state; no client-supplied executable input. Give a pane a title. Useful for labelling what an agent put where, since the title shows in list_panes and survives the command changing.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "title": {
            "description": "The pane's new title.",
            "type": "string",
            "x-libtmux-tmux-format": "literalized-once"
          }
        },
        "required": [
          "paneId",
          "title"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "pane": {
            "additionalProperties": false,
            "properties": {
              "active": {
                "description": "Whether this is its window's active pane.",
                "type": "boolean"
              },
              "command": {
                "description": "The command tmux reports running in it.",
                "type": "string"
              },
              "cwd": {
                "description": "Its current working directory.",
                "type": "string"
              },
              "dead": {
                "description": "Whether its process exited and remain-on-exit kept it.",
                "type": "boolean"
              },
              "height": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "index": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "isAttended": {
                "description": "A person is currently looking at this pane.",
                "type": "boolean"
              },
              "isCallerPane": {
                "description": "This is the pane this MCP server runs in.",
                "type": "boolean"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "placements": {
                "description": "Retained session and window indexes through which this pane is reachable.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "title": {
                "type": "string"
              },
              "width": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "windowName": {
                "type": "string"
              }
            },
            "required": [
              "active",
              "command",
              "cwd",
              "dead",
              "height",
              "id",
              "index",
              "isAttended",
              "isCallerPane",
              "metadataComplete",
              "omittedMetadataBytes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "title",
              "width",
              "windowId",
              "windowName"
            ],
            "type": "object"
          }
        },
        "required": [
          "pane"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Give a pane a title. Useful for labelling what an agent put where, since the title shows in list_panes and survives the command changing.",
          "inputLiteralization": {
            "title": "double-hash-once"
          },
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "title": {
                "description": "The pane's new title.",
                "type": "string",
                "x-libtmux-tmux-format": "literalized-once"
              }
            },
            "required": [
              "paneId",
              "title"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "set_pane_title",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "pane": {
                "properties": {
                  "active": {
                    "description": "Whether this is its window's active pane.",
                    "type": "boolean"
                  },
                  "command": {
                    "description": "The command tmux reports running in it.",
                    "type": "string"
                  },
                  "cwd": {
                    "description": "Its current working directory.",
                    "type": "string"
                  },
                  "dead": {
                    "description": "Whether its process exited and remain-on-exit kept it.",
                    "type": "boolean"
                  },
                  "height": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                    "pattern": "^%\\d+$",
                    "type": "string"
                  },
                  "index": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "isAttended": {
                    "description": "A person is currently looking at this pane.",
                    "type": "boolean"
                  },
                  "isCallerPane": {
                    "description": "This is the pane this MCP server runs in.",
                    "type": "boolean"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained session and window indexes through which this pane is reachable.",
                    "items": {
                      "properties": {
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "title": {
                    "type": "string"
                  },
                  "width": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "windowId": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "windowName": {
                    "type": "string"
                  }
                },
                "required": [
                  "active",
                  "command",
                  "cwd",
                  "dead",
                  "height",
                  "id",
                  "index",
                  "isAttended",
                  "isCallerPane",
                  "metadataComplete",
                  "omittedMetadataBytes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "title",
                  "width",
                  "windowId",
                  "windowName"
                ],
                "type": "object"
              }
            },
            "required": [
              "pane"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Set pane title",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "set_synchronize_panes",
      "wireName": "set_synchronize_panes",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 441
      },
      "description": "Change tmux state; no client-supplied executable input. Set the window default for synchronized pane input. Pane overrides still determine each effective configured cohort.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "enabled": {
            "description": "Whether typing into one pane of this window types into all of them.",
            "type": "boolean"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "enabled",
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "windowId": {
            "description": "Stable window id, e.g. @1.",
            "pattern": "^@\\d+$",
            "type": "string"
          }
        },
        "required": [
          "enabled",
          "windowId"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": true,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Set the window default for synchronized pane input. Pane overrides still determine each effective configured cohort.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "enabled": {
                "description": "Whether typing into one pane of this window types into all of them.",
                "type": "boolean"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "enabled",
              "windowId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "set_synchronize_panes",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              }
            },
            "required": [
              "enabled",
              "windowId"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Set synchronize panes",
          "tmuxEffects": [
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "show_environment",
      "wireName": "show_environment",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/settings.ts",
        "line": 199
      },
      "description": "Read the tmux environment; accepts no client-supplied executable input. Returned values may contain secrets. The environment tmux gives processes it starts, at server or session scope. This is what a new pane will inherit, not what a running one has.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "session": {
            "description": "Session id ($1) or name. Omit for the server environment.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "complete": {
            "type": "boolean"
          },
          "environment": {
            "additionalProperties": {
              "type": [
                "string",
                "null"
              ]
            },
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "omittedEntries": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "complete",
          "environment",
          "omittedEntries"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Read the tmux environment; accepts no client-supplied executable input. Returned values may contain secrets. The environment tmux gives processes it starts, at server or session scope. This is what a new pane will inherit, not what a running one has.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "session": {
                "description": "Session id ($1) or name. Omit for the server environment.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "show_environment",
          "nestedAuthority": [],
          "outputClasses": [
            "process-environment"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "complete": {
                "type": "boolean"
              },
              "environment": {
                "additionalProperties": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              },
              "omittedEntries": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "complete",
              "environment",
              "omittedEntries"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Show environment",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "show_hooks",
      "wireName": "show_hooks",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/settings.ts",
        "line": 138
      },
      "description": "Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Read the hooks a server or session runs. Read-only: a hook set here would outlive this process and keep firing in somebody's tmux. Put hooks a server should keep in its config file.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "session": {
            "description": "Session scope; omit for server scope.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "complete": {
            "type": "boolean"
          },
          "hooks": {
            "additionalProperties": {
              "type": "string"
            },
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "omittedEntries": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "unset": {
            "description": "Hook names tmux defines that carry no command, and so are not listed.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "complete",
          "hooks",
          "omittedEntries",
          "unset"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Read the hooks a server or session runs. Read-only: a hook set here would outlive this process and keep firing in somebody's tmux. Put hooks a server should keep in its config file.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "session": {
                "description": "Session scope; omit for server scope.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "show_hooks",
          "nestedAuthority": [],
          "outputClasses": [
            "configured-command"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "complete": {
                "type": "boolean"
              },
              "hooks": {
                "additionalProperties": {
                  "type": "string"
                },
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              },
              "omittedEntries": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "unset": {
                "description": "Hook names tmux defines that carry no command, and so are not listed.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "complete",
              "hooks",
              "omittedEntries",
              "unset"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Show hooks",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "show_option",
      "wireName": "show_option",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/settings.ts",
        "line": 105
      },
      "description": "Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Read one named tmux option at server, session, window, or pane scope.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "name": {
            "description": "The tmux option to read, such as \"status-left\".",
            "type": "string"
          },
          "scope": {
            "description": "Default server.",
            "enum": [
              "server",
              "session",
              "global-session",
              "window",
              "global-window",
              "pane"
            ],
            "type": "string"
          },
          "target": {
            "description": "Session id/name or pane id, for the matching scope.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "value": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "scope",
          "value"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration. Read one named tmux option at server, session, window, or pane scope.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "name": {
                "description": "The tmux option to read, such as \"status-left\".",
                "type": "string"
              },
              "scope": {
                "description": "Default server.",
                "enum": [
                  "server",
                  "session",
                  "global-session",
                  "window",
                  "global-window",
                  "pane"
                ],
                "type": "string"
              },
              "target": {
                "description": "Session id/name or pane id, for the matching scope.",
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "show_option",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "configured-command"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "name": {
                "type": "string"
              },
              "scope": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "name",
              "scope",
              "value"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Show option",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "signal_channel",
      "wireName": "signal_channel",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 386
      },
      "description": "Change tmux state; no client-supplied executable input. Signal a tmux wait-for channel.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "channel": {
            "description": "The tmux wait-for channel to signal.",
            "type": "string"
          }
        },
        "required": [
          "channel"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "channel": {
            "type": "string"
          },
          "signalled": {
            "type": "boolean"
          }
        },
        "required": [
          "channel",
          "signalled"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Signal a tmux wait-for channel.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "channel": {
                "description": "The tmux wait-for channel to signal.",
                "type": "string"
              }
            },
            "required": [
              "channel"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "signal_channel",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "channel": {
                "type": "string"
              },
              "signalled": {
                "type": "boolean"
              }
            },
            "required": [
              "channel",
              "signalled"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Signal channel",
          "tmuxEffects": [
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "snapshot_pane",
      "wireName": "snapshot_pane",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 305
      },
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Return bounded terminal content and pane metadata in one MCP response. The metadata and capture come from separate tmux requests and are not an atomic snapshot.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "maxLines": {
            "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "content": {
            "type": "string"
          },
          "cursorX": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "cursorY": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "droppedLines": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "inMode": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "pane": {
            "additionalProperties": false,
            "properties": {
              "active": {
                "description": "Whether this is its window's active pane.",
                "type": "boolean"
              },
              "command": {
                "description": "The command tmux reports running in it.",
                "type": "string"
              },
              "cwd": {
                "description": "Its current working directory.",
                "type": "string"
              },
              "dead": {
                "description": "Whether its process exited and remain-on-exit kept it.",
                "type": "boolean"
              },
              "height": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "index": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "isAttended": {
                "description": "A person is currently looking at this pane.",
                "type": "boolean"
              },
              "isCallerPane": {
                "description": "This is the pane this MCP server runs in.",
                "type": "boolean"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "placements": {
                "description": "Retained session and window indexes through which this pane is reachable.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "title": {
                "type": "string"
              },
              "width": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "windowName": {
                "type": "string"
              }
            },
            "required": [
              "active",
              "command",
              "cwd",
              "dead",
              "height",
              "id",
              "index",
              "isAttended",
              "isCallerPane",
              "metadataComplete",
              "omittedMetadataBytes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "title",
              "width",
              "windowId",
              "windowName"
            ],
            "type": "object"
          },
          "scrollPosition": {
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "content",
          "cursorX",
          "cursorY",
          "droppedLines",
          "inMode",
          "pane",
          "scrollPosition"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Return bounded terminal content and pane metadata in one MCP response. The metadata and capture come from separate tmux requests and are not an atomic snapshot.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "maxLines": {
                "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "snapshot_pane",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "content": {
                "type": "string"
              },
              "cursorX": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "cursorY": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "droppedLines": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "inMode": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "pane": {
                "properties": {
                  "active": {
                    "description": "Whether this is its window's active pane.",
                    "type": "boolean"
                  },
                  "command": {
                    "description": "The command tmux reports running in it.",
                    "type": "string"
                  },
                  "cwd": {
                    "description": "Its current working directory.",
                    "type": "string"
                  },
                  "dead": {
                    "description": "Whether its process exited and remain-on-exit kept it.",
                    "type": "boolean"
                  },
                  "height": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                    "pattern": "^%\\d+$",
                    "type": "string"
                  },
                  "index": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "isAttended": {
                    "description": "A person is currently looking at this pane.",
                    "type": "boolean"
                  },
                  "isCallerPane": {
                    "description": "This is the pane this MCP server runs in.",
                    "type": "boolean"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained session and window indexes through which this pane is reachable.",
                    "items": {
                      "properties": {
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "title": {
                    "type": "string"
                  },
                  "width": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "windowId": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "windowName": {
                    "type": "string"
                  }
                },
                "required": [
                  "active",
                  "command",
                  "cwd",
                  "dead",
                  "height",
                  "id",
                  "index",
                  "isAttended",
                  "isCallerPane",
                  "metadataComplete",
                  "omittedMetadataBytes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "title",
                  "width",
                  "windowId",
                  "windowName"
                ],
                "type": "object"
              },
              "scrollPosition": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "content",
              "cursorX",
              "cursorY",
              "droppedLines",
              "inMode",
              "pane",
              "scrollPosition"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Snapshot pane",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "split_window",
      "wireName": "split_window",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/lifecycle.ts",
        "line": 190
      },
      "description": "Start a pane's configured process; accepts no command payload. Split a pane and return the new one. Direction is where the new pane goes relative to the one you split.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "direction": {
            "description": "Default below.",
            "enum": [
              "above",
              "below",
              "left",
              "right"
            ],
            "type": "string"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "startDirectory": {
            "description": "Defaults to the directory the pane being split is in.",
            "type": "string",
            "x-libtmux-tmux-format": "literalized-once"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "pane": {
            "additionalProperties": false,
            "properties": {
              "active": {
                "description": "Whether this is its window's active pane.",
                "type": "boolean"
              },
              "command": {
                "description": "The command tmux reports running in it.",
                "type": "string"
              },
              "cwd": {
                "description": "Its current working directory.",
                "type": "string"
              },
              "dead": {
                "description": "Whether its process exited and remain-on-exit kept it.",
                "type": "boolean"
              },
              "height": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "id": {
                "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "index": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "isAttended": {
                "description": "A person is currently looking at this pane.",
                "type": "boolean"
              },
              "isCallerPane": {
                "description": "This is the pane this MCP server runs in.",
                "type": "boolean"
              },
              "metadataComplete": {
                "description": "Whether every projected metadata string is complete.",
                "type": "boolean"
              },
              "omittedMetadataBytes": {
                "description": "UTF-8 bytes omitted from projected metadata strings.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "omittedPlacements": {
                "description": "Later placements omitted.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "placements": {
                "description": "Retained session and window indexes through which this pane is reachable.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "index": {
                      "description": "The window index in this session.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "sessionId": {
                      "description": "Stable session id, e.g. $1.",
                      "pattern": "^\\$\\d+$",
                      "type": "string"
                    },
                    "sessionName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "index",
                    "sessionId",
                    "sessionName"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "placementsComplete": {
                "description": "Whether placements contains every placement.",
                "type": "boolean"
              },
              "title": {
                "type": "string"
              },
              "width": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "windowId": {
                "description": "Stable window id, e.g. @1.",
                "pattern": "^@\\d+$",
                "type": "string"
              },
              "windowName": {
                "type": "string"
              }
            },
            "required": [
              "active",
              "command",
              "cwd",
              "dead",
              "height",
              "id",
              "index",
              "isAttended",
              "isCallerPane",
              "metadataComplete",
              "omittedMetadataBytes",
              "omittedPlacements",
              "placements",
              "placementsComplete",
              "title",
              "width",
              "windowId",
              "windowName"
            ],
            "type": "object"
          }
        },
        "required": [
          "pane"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Start a pane's configured process; accepts no command payload. Split a pane and return the new one. Direction is where the new pane goes relative to the one you split.",
          "inputLiteralization": {
            "startDirectory": "double-hash-once"
          },
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "direction": {
                "description": "Default below.",
                "enum": [
                  "above",
                  "below",
                  "left",
                  "right"
                ],
                "type": "string"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "startDirectory": {
                "description": "Defaults to the directory the pane being split is in.",
                "type": "string",
                "x-libtmux-tmux-format": "literalized-once"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "split_window",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "pane": {
                "properties": {
                  "active": {
                    "description": "Whether this is its window's active pane.",
                    "type": "boolean"
                  },
                  "command": {
                    "description": "The command tmux reports running in it.",
                    "type": "string"
                  },
                  "cwd": {
                    "description": "Its current working directory.",
                    "type": "string"
                  },
                  "dead": {
                    "description": "Whether its process exited and remain-on-exit kept it.",
                    "type": "boolean"
                  },
                  "height": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "id": {
                    "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                    "pattern": "^%\\d+$",
                    "type": "string"
                  },
                  "index": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "isAttended": {
                    "description": "A person is currently looking at this pane.",
                    "type": "boolean"
                  },
                  "isCallerPane": {
                    "description": "This is the pane this MCP server runs in.",
                    "type": "boolean"
                  },
                  "metadataComplete": {
                    "description": "Whether every projected metadata string is complete.",
                    "type": "boolean"
                  },
                  "omittedMetadataBytes": {
                    "description": "UTF-8 bytes omitted from projected metadata strings.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "omittedPlacements": {
                    "description": "Later placements omitted.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "placements": {
                    "description": "Retained session and window indexes through which this pane is reachable.",
                    "items": {
                      "properties": {
                        "index": {
                          "description": "The window index in this session.",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        "sessionId": {
                          "description": "Stable session id, e.g. $1.",
                          "pattern": "^\\$\\d+$",
                          "type": "string"
                        },
                        "sessionName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "index",
                        "sessionId",
                        "sessionName"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "placementsComplete": {
                    "description": "Whether placements contains every placement.",
                    "type": "boolean"
                  },
                  "title": {
                    "type": "string"
                  },
                  "width": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "windowId": {
                    "description": "Stable window id, e.g. @1.",
                    "pattern": "^@\\d+$",
                    "type": "string"
                  },
                  "windowName": {
                    "type": "string"
                  }
                },
                "required": [
                  "active",
                  "command",
                  "cwd",
                  "dead",
                  "height",
                  "id",
                  "index",
                  "isAttended",
                  "isCallerPane",
                  "metadataComplete",
                  "omittedMetadataBytes",
                  "omittedPlacements",
                  "placements",
                  "placementsComplete",
                  "title",
                  "width",
                  "windowId",
                  "windowName"
                ],
                "type": "object"
              }
            },
            "required": [
              "pane"
            ],
            "type": "object"
          },
          "processReach": "configured-process",
          "title": "Split window",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "swap_pane",
      "wireName": "swap_pane",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/layout.ts",
        "line": 230
      },
      "description": "Change tmux state; no client-supplied executable input. Exchange two panes' positions. Their ids and contents travel with them.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "otherPaneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          }
        },
        "required": [
          "otherPaneId",
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "complete": {
            "type": "boolean"
          },
          "omittedEntries": {
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "panes": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "active": {
                  "description": "Whether this is its window's active pane.",
                  "type": "boolean"
                },
                "command": {
                  "description": "The command tmux reports running in it.",
                  "type": "string"
                },
                "cwd": {
                  "description": "Its current working directory.",
                  "type": "string"
                },
                "dead": {
                  "description": "Whether its process exited and remain-on-exit kept it.",
                  "type": "boolean"
                },
                "height": {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "id": {
                  "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                  "pattern": "^%\\d+$",
                  "type": "string"
                },
                "index": {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "isAttended": {
                  "description": "A person is currently looking at this pane.",
                  "type": "boolean"
                },
                "isCallerPane": {
                  "description": "This is the pane this MCP server runs in.",
                  "type": "boolean"
                },
                "metadataComplete": {
                  "description": "Whether every projected metadata string is complete.",
                  "type": "boolean"
                },
                "omittedMetadataBytes": {
                  "description": "UTF-8 bytes omitted from projected metadata strings.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "omittedPlacements": {
                  "description": "Later placements omitted.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "placements": {
                  "description": "Retained session and window indexes through which this pane is reachable.",
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "index": {
                        "description": "The window index in this session.",
                        "maximum": 9007199254740991,
                        "minimum": -9007199254740991,
                        "type": "integer"
                      },
                      "sessionId": {
                        "description": "Stable session id, e.g. $1.",
                        "pattern": "^\\$\\d+$",
                        "type": "string"
                      },
                      "sessionName": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "index",
                      "sessionId",
                      "sessionName"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "placementsComplete": {
                  "description": "Whether placements contains every placement.",
                  "type": "boolean"
                },
                "title": {
                  "type": "string"
                },
                "width": {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "windowId": {
                  "description": "Stable window id, e.g. @1.",
                  "pattern": "^@\\d+$",
                  "type": "string"
                },
                "windowName": {
                  "type": "string"
                }
              },
              "required": [
                "active",
                "command",
                "cwd",
                "dead",
                "height",
                "id",
                "index",
                "isAttended",
                "isCallerPane",
                "metadataComplete",
                "omittedMetadataBytes",
                "omittedPlacements",
                "placements",
                "placementsComplete",
                "title",
                "width",
                "windowId",
                "windowName"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "complete",
          "omittedEntries",
          "panes"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Exchange two panes' positions. Their ids and contents travel with them.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "otherPaneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              }
            },
            "required": [
              "otherPaneId",
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "swap_pane",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "complete": {
                "type": "boolean"
              },
              "omittedEntries": {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "panes": {
                "items": {
                  "properties": {
                    "active": {
                      "description": "Whether this is its window's active pane.",
                      "type": "boolean"
                    },
                    "command": {
                      "description": "The command tmux reports running in it.",
                      "type": "string"
                    },
                    "cwd": {
                      "description": "Its current working directory.",
                      "type": "string"
                    },
                    "dead": {
                      "description": "Whether its process exited and remain-on-exit kept it.",
                      "type": "boolean"
                    },
                    "height": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "id": {
                      "description": "Stable pane id. Prefer this for entity-scoped targeting.",
                      "pattern": "^%\\d+$",
                      "type": "string"
                    },
                    "index": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "isAttended": {
                      "description": "A person is currently looking at this pane.",
                      "type": "boolean"
                    },
                    "isCallerPane": {
                      "description": "This is the pane this MCP server runs in.",
                      "type": "boolean"
                    },
                    "metadataComplete": {
                      "description": "Whether every projected metadata string is complete.",
                      "type": "boolean"
                    },
                    "omittedMetadataBytes": {
                      "description": "UTF-8 bytes omitted from projected metadata strings.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "omittedPlacements": {
                      "description": "Later placements omitted.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "placements": {
                      "description": "Retained session and window indexes through which this pane is reachable.",
                      "items": {
                        "properties": {
                          "index": {
                            "description": "The window index in this session.",
                            "maximum": 9007199254740991,
                            "minimum": -9007199254740991,
                            "type": "integer"
                          },
                          "sessionId": {
                            "description": "Stable session id, e.g. $1.",
                            "pattern": "^\\$\\d+$",
                            "type": "string"
                          },
                          "sessionName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "index",
                          "sessionId",
                          "sessionName"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "placementsComplete": {
                      "description": "Whether placements contains every placement.",
                      "type": "boolean"
                    },
                    "title": {
                      "type": "string"
                    },
                    "width": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "windowId": {
                      "description": "Stable window id, e.g. @1.",
                      "pattern": "^@\\d+$",
                      "type": "string"
                    },
                    "windowName": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "active",
                    "command",
                    "cwd",
                    "dead",
                    "height",
                    "id",
                    "index",
                    "isAttended",
                    "isCallerPane",
                    "metadataComplete",
                    "omittedMetadataBytes",
                    "omittedPlacements",
                    "placements",
                    "placementsComplete",
                    "title",
                    "width",
                    "windowId",
                    "windowName"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "complete",
              "omittedEntries",
              "panes"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Swap panes",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "wait_for_channel",
      "wireName": "wait_for_channel",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/target.ts",
        "line": 358
      },
      "description": "Change tmux state; no client-supplied executable input. Wait until a tmux wait-for channel is signalled.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "channel": {
            "description": "The tmux wait-for channel name.",
            "type": "string"
          },
          "timeoutMs": {
            "description": "Give up after this long. Defaults to the server's wait ceiling.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "channel"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "channel": {
            "type": "string"
          },
          "signalled": {
            "type": "boolean"
          }
        },
        "required": [
          "channel",
          "signalled"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Change tmux state; no client-supplied executable input. Wait until a tmux wait-for channel is signalled.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "channel": {
                "description": "The tmux wait-for channel name.",
                "type": "string"
              },
              "timeoutMs": {
                "description": "Give up after this long. Defaults to the server's wait ceiling.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "channel"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "wait_for_channel",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "channel": {
                "type": "string"
              },
              "signalled": {
                "type": "boolean"
              }
            },
            "required": [
              "channel",
              "signalled"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Wait for channel",
          "tmuxEffects": [
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "wait_for_text",
      "wireName": "wait_for_text",
      "source": {
        "repo": "libtmux/libtmux-ts",
        "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
        "file": "packages/mcp/src/tools/wait.ts",
        "line": 503
      },
      "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Wait until a pane prints something, streaming tmux's notifications rather than polling. Use for output you did NOT author — another process, a person, a background job. For a command you wrote, use run_shell_command: it knows when the command ended and reports exit status, which no text match can. This discounts text this server itself typed into the pane, for as long as it is unsubmitted or was submitted within the last ten seconds, so a command you just sent cannot match its own echo — but a pane not yet reading input can still echo type-ahead back once it starts, so wait for a prompt before typing into a cold shell. Whatever happens you get back what the pane printed and why the wait ended — a timeout is never an empty answer.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "cursor": {
            "description": "Start from a cursor an earlier capture_since or wait returned.",
            "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
            "type": "string"
          },
          "maxLines": {
            "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "patterns": {
            "description": "Any one of these ends the wait. Omit to wait for any output at all.",
            "items": {
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 64,
            "type": "array"
          },
          "regex": {
            "description": "Interpret patterns using libtmux's bounded regular-expression grammar.",
            "type": "boolean"
          },
          "timeoutMs": {
            "description": "Clamped by the server ceiling; the result reports what was used.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "alreadyOnScreen": {
            "description": "The pattern is on the pane now but printed before this wait began, so the wait could not match it. Read it with capture_pane rather than waiting again.",
            "type": "boolean"
          },
          "cursor": {
            "anyOf": [
              {
                "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Pass to capture_since or another wait; null means the live stream cannot be resumed."
          },
          "droppedLines": {
            "description": "Output lines omitted by the result limit.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "effectiveTimeoutMs": {
            "description": "The timeout actually enforced, after clamping.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "matched": {
            "description": "The text that matched, or null.",
            "type": [
              "string",
              "null"
            ]
          },
          "missedBytes": {
            "description": "Retained output lost before this read; non-zero means the result is incomplete.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "omittedBytes": {
            "description": "Output bytes omitted by the result ceiling.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "outcome": {
            "description": "Why the wait ended. Read this rather than guessing from the output.",
            "enum": [
              "matched",
              "timed_out",
              "pane_died",
              "no_stream",
              "cancelled",
              "output_lost",
              "stream_lost"
            ],
            "type": "string"
          },
          "output": {
            "description": "The bounded tail of what the pane printed while waiting.",
            "type": "string"
          },
          "paneId": {
            "description": "Stable pane id, e.g. %1.",
            "pattern": "^%\\d+$",
            "type": "string"
          },
          "returnedBytes": {
            "description": "UTF-8 bytes returned across output and screen.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "screen": {
            "description": "What the pane shows now after a miss, unless result limits omit it; see screenClamped.",
            "type": "string"
          },
          "screenClamped": {
            "description": "Whether result limits shortened the pane screen.",
            "type": "boolean"
          },
          "streamFailure": {
            "anyOf": [
              {
                "enum": [
                  "connection_lost",
                  "events_dropped",
                  "expired",
                  "hub_closed",
                  "topology_changed"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Why the live stream ended, or null while it remained valid."
          }
        },
        "required": [
          "alreadyOnScreen",
          "cursor",
          "droppedLines",
          "effectiveTimeoutMs",
          "matched",
          "missedBytes",
          "omittedBytes",
          "outcome",
          "output",
          "paneId",
          "returnedBytes",
          "screen",
          "screenClamped",
          "streamFailure"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": false,
            "openWorldHint": true,
            "readOnlyHint": false
          },
          "description": "Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Wait until a pane prints something, streaming tmux's notifications rather than polling. Use for output you did NOT author — another process, a person, a background job. For a command you wrote, use run_shell_command: it knows when the command ended and reports exit status, which no text match can. This discounts text this server itself typed into the pane, for as long as it is unsubmitted or was submitted within the last ten seconds, so a command you just sent cannot match its own echo — but a pane not yet reading input can still echo type-ahead back once it starts, so wait for a prompt before typing into a cold shell. Whatever happens you get back what the pane printed and why the wait ended — a timeout is never an empty answer.",
          "inputLiteralization": {},
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "cursor": {
                "description": "Start from a cursor an earlier capture_since or wait returned.",
                "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
                "type": "string"
              },
              "maxLines": {
                "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "patterns": {
                "description": "Any one of these ends the wait. Omit to wait for any output at all.",
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 64,
                "type": "array"
              },
              "regex": {
                "description": "Interpret patterns using libtmux's bounded regular-expression grammar.",
                "type": "boolean"
              },
              "timeoutMs": {
                "description": "Clamped by the server ceiling; the result reports what was used.",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "paneId"
            ],
            "type": "object"
          },
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "name": "wait_for_text",
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "alreadyOnScreen": {
                "description": "The pattern is on the pane now but printed before this wait began, so the wait could not match it. Read it with capture_pane rather than waiting again.",
                "type": "boolean"
              },
              "cursor": {
                "anyOf": [
                  {
                    "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Pass to capture_since or another wait; null means the live stream cannot be resumed."
              },
              "droppedLines": {
                "description": "Output lines omitted by the result limit.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "effectiveTimeoutMs": {
                "description": "The timeout actually enforced, after clamping.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "matched": {
                "description": "The text that matched, or null.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "missedBytes": {
                "description": "Retained output lost before this read; non-zero means the result is incomplete.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "omittedBytes": {
                "description": "Output bytes omitted by the result ceiling.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "outcome": {
                "description": "Why the wait ended. Read this rather than guessing from the output.",
                "enum": [
                  "matched",
                  "timed_out",
                  "pane_died",
                  "no_stream",
                  "cancelled",
                  "output_lost",
                  "stream_lost"
                ],
                "type": "string"
              },
              "output": {
                "description": "The bounded tail of what the pane printed while waiting.",
                "type": "string"
              },
              "paneId": {
                "description": "Stable pane id, e.g. %1.",
                "pattern": "^%\\d+$",
                "type": "string"
              },
              "returnedBytes": {
                "description": "UTF-8 bytes returned across output and screen.",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "screen": {
                "description": "What the pane shows now after a miss, unless result limits omit it; see screenClamped.",
                "type": "string"
              },
              "screenClamped": {
                "description": "Whether result limits shortened the pane screen.",
                "type": "boolean"
              },
              "streamFailure": {
                "anyOf": [
                  {
                    "enum": [
                      "connection_lost",
                      "events_dropped",
                      "expired",
                      "hub_closed",
                      "topology_changed"
                    ],
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Why the live stream ended, or null while it remained valid."
              }
            },
            "required": [
              "alreadyOnScreen",
              "cursor",
              "droppedLines",
              "effectiveTimeoutMs",
              "matched",
              "missedBytes",
              "omittedBytes",
              "outcome",
              "output",
              "paneId",
              "returnedBytes",
              "screen",
              "screenClamped",
              "streamFailure"
            ],
            "type": "object"
          },
          "processReach": "none",
          "title": "Wait for output",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    }
  ],
  "wirePrefix": "",
  "selectable": true,
  "source": "packages/mcp/src",
  "repo": "libtmux/libtmux-ts",
  "revision": "46cccfef2a546de55ce8b308249b8c76339089a0",
  "extractedRevision": "46cccfef2a546de55ce8b308249b8c76339089a0",
  "selection": {
    "LIBTMUX_TOOLSETS": "inspect,manage,execute,teardown"
  },
  "protocol": {
    "capabilities": {
      "resources": {
        "listChanged": true
      },
      "tools": {
        "listChanged": true
      }
    },
    "prompts": [],
    "protocolVersion": "2025-11-25",
    "resources": [
      {
        "description": "The frozen structured-tool surface and its capability declarations.",
        "mimeType": "application/json",
        "name": "capabilities",
        "title": "Capabilities",
        "uri": "tmux://capabilities"
      }
    ],
    "resourceTemplates": [],
    "serverInfo": {
      "name": "libtmux",
      "title": "tmux",
      "version": "0.1.0-alpha.12"
    }
  }
}
