{
  "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-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2162
      },
      "description": "Run up to sixteen declared inspect operations serially under this one call; inner operations receive no separate approval. Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "onError": {
            "description": "Stop after the first failed operation or continue.",
            "enum": [
              "continue",
              "stop"
            ],
            "type": "string"
          },
          "operations": {
            "description": "One to sixteen typed inspect-tool operations.",
            "items": {
              "oneOf": [
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "history": {
                          "description": "Capture retained history as well as the visible pane.",
                          "type": "boolean"
                        },
                        "paneId": {
                          "description": "Stable pane ID.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [
                        "paneId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "capture_pane",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "cursor": {
                          "description": "Previously returned byte cursor.",
                          "minimum": 0,
                          "type": "integer"
                        },
                        "paneId": {
                          "description": "Stable pane ID.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [
                        "paneId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "capture_since",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "column": {
                          "description": "Zero-based terminal column.",
                          "minimum": 0,
                          "type": "integer"
                        },
                        "row": {
                          "description": "Zero-based terminal row.",
                          "minimum": 0,
                          "type": "integer"
                        },
                        "windowId": {
                          "description": "Optional stable window ID.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [
                        "row",
                        "column"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "find_pane_by_position",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "paneId": {
                          "description": "Stable pane ID.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [
                        "paneId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "get_pane_info",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {},
                      "required": [],
                      "type": "object"
                    },
                    "tool": {
                      "const": "get_server_info",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "session": {
                          "description": "Stable session ID or name.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [
                        "session"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "get_session_info",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "names": {
                          "description": "One to thirty-two validated tmux variable names.",
                          "items": {
                            "maxLength": 128,
                            "type": "string"
                          },
                          "maxItems": 32,
                          "minItems": 1,
                          "type": "array"
                        },
                        "paneId": {
                          "description": "Optional pane context.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [
                        "names"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "get_tmux_variables",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "windowId": {
                          "description": "Stable window ID.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [
                        "windowId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "get_window_info",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {},
                      "required": [],
                      "type": "object"
                    },
                    "tool": {
                      "const": "list_panes",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {},
                      "required": [],
                      "type": "object"
                    },
                    "tool": {
                      "const": "list_sessions",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "session": {
                          "description": "Stable session ID or name.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [
                        "session"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "list_windows",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "pattern": {
                          "description": "Bounded regular expression.",
                          "maxLength": 256,
                          "type": "string"
                        }
                      },
                      "required": [
                        "pattern"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "search_panes",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "description": "Optional exact environment name.",
                          "maxLength": 256,
                          "type": "string"
                        },
                        "session": {
                          "description": "Optional session target.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [],
                      "type": "object"
                    },
                    "tool": {
                      "const": "show_environment",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "description": "Optional exact hook name.",
                          "maxLength": 256,
                          "type": "string"
                        },
                        "target": {
                          "description": "Optional tmux target.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [],
                      "type": "object"
                    },
                    "tool": {
                      "const": "show_hooks",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "description": "Exact option name.",
                          "maxLength": 256,
                          "type": "string"
                        },
                        "target": {
                          "description": "Optional session, window, or pane target.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [
                        "name"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "show_option",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "arguments": {
                      "additionalProperties": false,
                      "properties": {
                        "paneId": {
                          "description": "Stable pane ID.",
                          "maxLength": 512,
                          "type": "string"
                        }
                      },
                      "required": [
                        "paneId"
                      ],
                      "type": "object"
                    },
                    "tool": {
                      "const": "snapshot_pane",
                      "type": "string"
                    }
                  },
                  "required": [
                    "tool"
                  ],
                  "type": "object"
                }
              ]
            },
            "maxItems": 16,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "operations"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Call read tools as a batch"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [
            "capture_pane",
            "capture_since",
            "find_pane_by_position",
            "get_pane_info",
            "get_server_info",
            "get_session_info",
            "get_tmux_variables",
            "get_window_info",
            "list_panes",
            "list_sessions",
            "list_windows",
            "search_panes",
            "show_environment",
            "show_hooks",
            "show_option",
            "snapshot_pane"
          ],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content",
            "process-environment",
            "configured-command"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "capture_pane",
      "wireName": "capture_pane",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1836
      },
      "description": "Return visible text, or retained history when requested. Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "history": {
            "description": "Capture retained history as well as the visible pane.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "pane_id": {
            "pattern": "^%[0-9]+$",
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "pane_id",
          "text"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Capture a tmux pane"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "capture_since",
      "wireName": "capture_since",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1858
      },
      "description": "Return bytes after a bounded client cursor and a replacement cursor. Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cursor": {
            "description": "Previously returned byte cursor.",
            "minimum": 0,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Capture new pane output"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "clear_pane_scrollback",
      "wireName": "clear_pane_scrollback",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 3145
      },
      "description": "Irreversibly discard retained scrollback for one pane. Delete tmux state; accepts no command payload.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Clear tmux pane scrollback"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "delete"
          ],
          "toolset": "teardown"
        }
      }
    },
    {
      "name": "create_session",
      "wireName": "create_session",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2543
      },
      "description": "Create a detached session; names and path data are literalized before tmux expansion. Start a pane's configured process; accepts no command payload.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "height": {
            "description": "Optional detached height.",
            "maximum": 100000,
            "minimum": 1,
            "type": "integer"
          },
          "name": {
            "description": "Optional literal unique session name.",
            "maxLength": 512,
            "type": "string"
          },
          "startDirectory": {
            "description": "Literal pane start directory.",
            "maxLength": 4096,
            "type": "string"
          },
          "width": {
            "description": "Optional detached width.",
            "maximum": 100000,
            "minimum": 1,
            "type": "integer"
          },
          "windowName": {
            "description": "Optional literal first window name.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "session_id": {
            "pattern": "^\\$[0-9]+$",
            "type": "string"
          }
        },
        "required": [
          "name",
          "session_id"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Create a tmux session"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {
            "name": "double-hash-once",
            "startDirectory": "double-hash-once",
            "windowName": "double-hash-once"
          },
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "configured-process",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "create_window",
      "wireName": "create_window",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2587
      },
      "description": "Create a detached window; name and path data are literalized before tmux expansion. Start a pane's configured process; accepts no command payload.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "Optional literal window name.",
            "maxLength": 512,
            "type": "string"
          },
          "session": {
            "description": "Stable owning session ID or name.",
            "maxLength": 512,
            "type": "string"
          },
          "startDirectory": {
            "description": "Literal pane start directory.",
            "maxLength": 4096,
            "type": "string"
          }
        },
        "required": [
          "session"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "session_id": {
            "pattern": "^\\$[0-9]+$",
            "type": "string"
          },
          "window_id": {
            "pattern": "^@[0-9]+$",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "window_id"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Create a tmux window"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {
            "name": "double-hash-once",
            "startDirectory": "double-hash-once"
          },
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "configured-process",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "find_pane_by_position",
      "wireName": "find_pane_by_position",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1951
      },
      "description": "Resolve coordinates using fixed tmux layout fields. Inspect tmux metadata; accepts no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "column": {
            "description": "Zero-based terminal column.",
            "minimum": 0,
            "type": "integer"
          },
          "row": {
            "description": "Zero-based terminal row.",
            "minimum": 0,
            "type": "integer"
          },
          "windowId": {
            "description": "Optional stable window ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "row",
          "column"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Find a pane by position"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "get_pane_info",
      "wireName": "get_pane_info",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1823
      },
      "description": "Return one pane by stable ID. Inspect tmux metadata; accepts no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Get tmux pane information"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "get_server_info",
      "wireName": "get_server_info",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1761
      },
      "description": "Report liveness, tmux version, and the resolved socket when running. Inspect tmux metadata; accepts no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Get tmux server information"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "get_session_info",
      "wireName": "get_session_info",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1794
      },
      "description": "Return one session by stable ID or name. Inspect tmux metadata; accepts no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "session": {
            "description": "Stable session ID or name.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "session"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Get tmux session information"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "get_tmux_variables",
      "wireName": "get_tmux_variables",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2023
      },
      "description": "Expand only validated variable identifiers, never a caller format. Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "names": {
            "description": "One to thirty-two validated tmux variable names.",
            "items": {
              "maxLength": 128,
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "type": "array"
          },
          "paneId": {
            "description": "Optional pane context.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "names"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Get tmux variables"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {
            "names": "validated-variable-name"
          },
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "configured-command"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "get_window_info",
      "wireName": "get_window_info",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1809
      },
      "description": "Return one window by stable ID. Inspect tmux metadata; accepts no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "windowId": {
            "description": "Stable window ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Get tmux window information"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "kill_pane",
      "wireName": "kill_pane",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 3161
      },
      "description": "Delete one pane and its running process. Delete tmux state; accepts no command payload.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Kill a tmux pane"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "delete"
          ],
          "toolset": "teardown"
        }
      }
    },
    {
      "name": "kill_session",
      "wireName": "kill_session",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 3196
      },
      "description": "Delete one session and every window it owns. Delete tmux state; accepts no command payload.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "session": {
            "description": "Stable session ID or name.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "session"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Kill a tmux session"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "delete"
          ],
          "toolset": "teardown"
        }
      }
    },
    {
      "name": "kill_window",
      "wireName": "kill_window",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 3178
      },
      "description": "Delete one window and every pane it owns. Delete tmux state; accepts no command payload.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "windowId": {
            "description": "Stable window ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Kill a tmux window"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "delete"
          ],
          "toolset": "teardown"
        }
      }
    },
    {
      "name": "list_panes",
      "wireName": "list_panes",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1733
      },
      "description": "List every pane with stable pane, window, and session IDs. Inspect tmux metadata; accepts no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "panes": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "active": {
                  "type": "boolean"
                },
                "command": {
                  "type": "string"
                },
                "dead": {
                  "type": "boolean"
                },
                "height": {
                  "minimum": 0,
                  "type": "integer"
                },
                "id": {
                  "pattern": "^%[0-9]+$",
                  "type": "string"
                },
                "index": {
                  "minimum": 0,
                  "type": "integer"
                },
                "path": {
                  "type": "string"
                },
                "pid": {
                  "minimum": 0,
                  "type": "integer"
                },
                "session_id": {
                  "pattern": "^\\$[0-9]+$",
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "width": {
                  "minimum": 0,
                  "type": "integer"
                },
                "window_id": {
                  "pattern": "^@[0-9]+$",
                  "type": "string"
                }
              },
              "required": [
                "active",
                "command",
                "dead",
                "height",
                "id",
                "index",
                "path",
                "pid",
                "session_id",
                "title",
                "width",
                "window_id"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "panes"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "List tmux panes"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "list_sessions",
      "wireName": "list_sessions",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1699
      },
      "description": "List stable session IDs, names, paths, and client counts. Inspect tmux metadata; accepts no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "sessions": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "attached": {
                  "type": "boolean"
                },
                "client_count": {
                  "minimum": 0,
                  "type": "integer"
                },
                "id": {
                  "pattern": "^\\$[0-9]+$",
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "path": {
                  "type": "string"
                },
                "window_count": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "attached",
                "client_count",
                "id",
                "name",
                "path",
                "window_count"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "sessions"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "List tmux sessions"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "list_windows",
      "wireName": "list_windows",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1708
      },
      "description": "List windows through an exact owning session. Inspect tmux metadata; accepts no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "session": {
            "description": "Stable session ID or name.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "session"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "windows": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "active": {
                  "type": "boolean"
                },
                "height": {
                  "minimum": 0,
                  "type": "integer"
                },
                "id": {
                  "pattern": "^@[0-9]+$",
                  "type": "string"
                },
                "index": {
                  "type": "integer"
                },
                "layout": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "pane_count": {
                  "minimum": 0,
                  "type": "integer"
                },
                "session_id": {
                  "pattern": "^\\$[0-9]+$",
                  "type": "string"
                },
                "width": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "active",
                "height",
                "id",
                "index",
                "layout",
                "name",
                "pane_count",
                "session_id",
                "width"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "windows"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "List tmux windows"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "move_window",
      "wireName": "move_window",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2417
      },
      "description": "Move a window to an exact index in its owning session. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "index": {
            "description": "Non-negative destination index.",
            "maximum": 100000,
            "minimum": 0,
            "type": "integer"
          },
          "windowId": {
            "description": "Stable window ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "windowId",
          "index"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Move a tmux window"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "paste_text",
      "wireName": "paste_text",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 3008
      },
      "description": "Require the target pane to be live and outside human-owned mode, then stage a private target-only buffer, optionally append Enter, paste it once, and verify cleanup. Empty text without Enter is a guarded buffer-free no-op. Send input to a pane's program; a shell that receives it runs it with your user's permissions.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "enter": {
            "description": "Append Enter to the same private paste buffer.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          },
          "text": {
            "description": "Literal text to paste.",
            "maxLength": 1048576,
            "type": "string"
          }
        },
        "required": [
          "paneId",
          "text"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "changed": {
            "type": "boolean"
          },
          "pane_id": {
            "pattern": "^%[0-9]+$",
            "type": "string"
          }
        },
        "required": [
          "pane_id"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Paste text into a tmux pane"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "pane-input",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "rename_session",
      "wireName": "rename_session",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2269
      },
      "description": "Replace one session name. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "Literal replacement session name.",
            "maxLength": 512,
            "type": "string"
          },
          "session": {
            "description": "Stable session ID or name.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "session",
          "name"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Rename a tmux session"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {
            "name": "double-hash-once"
          },
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "rename_window",
      "wireName": "rename_window",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2288
      },
      "description": "Replace one window name. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "Literal replacement window name.",
            "maxLength": 512,
            "type": "string"
          },
          "windowId": {
            "description": "Stable window ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "windowId",
          "name"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Rename a tmux window"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {
            "name": "double-hash-once"
          },
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "resize_pane",
      "wireName": "resize_pane",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2383
      },
      "description": "Replace one or both pane dimensions. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "height": {
            "description": "Optional positive pane height.",
            "maximum": 100000,
            "minimum": 1,
            "type": "integer"
          },
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          },
          "width": {
            "description": "Optional positive pane width.",
            "maximum": 100000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Resize a tmux pane"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "resize_window",
      "wireName": "resize_window",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2362
      },
      "description": "Replace one window's dimensions. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "height": {
            "description": "Positive window height.",
            "maximum": 100000,
            "minimum": 1,
            "type": "integer"
          },
          "width": {
            "description": "Positive window width.",
            "maximum": 100000,
            "minimum": 1,
            "type": "integer"
          },
          "windowId": {
            "description": "Stable window ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "windowId",
          "width",
          "height"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Resize a tmux window"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "respawn_pane",
      "wireName": "respawn_pane",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2658
      },
      "description": "Restart only the pane's configured process; no caller command is accepted. Start a pane's configured process; accepts no command payload.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "force": {
            "description": "Permit replacing a running pane process.",
            "type": "boolean"
          },
          "killFirst": {
            "description": "Kill a running pane process before respawn.",
            "type": "boolean"
          },
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          },
          "startDirectory": {
            "description": "Literal replacement start directory.",
            "maxLength": 4096,
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "changed": {
            "type": "boolean"
          },
          "pane_id": {
            "pattern": "^%[0-9]+$",
            "type": "string"
          }
        },
        "required": [
          "pane_id"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Respawn a tmux pane"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {
            "startDirectory": "double-hash-once"
          },
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "configured-process",
          "tmuxEffects": [
            "observe",
            "change",
            "delete"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "run_shell_command",
      "wireName": "run_shell_command",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2689
      },
      "description": "Require one live configured pane, outside human-owned mode and running a supported POSIX foreground shell, then send one command and return output after its private completion boundary. Run a shell command in a pane with your user's permissions.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "command": {
            "description": "Shell command sent to the pane.",
            "maxLength": 1048576,
            "type": "string"
          },
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          },
          "timeoutMs": {
            "description": "Completion timeout in milliseconds.",
            "maximum": 60000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "paneId",
          "command"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Run a shell command in a tmux pane"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "processReach": "pane-command",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "search_panes",
      "wireName": "search_panes",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1906
      },
      "description": "Search captured lines using a length-limited expression. Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "pattern": {
            "description": "Bounded regular expression.",
            "maxLength": 256,
            "type": "string"
          }
        },
        "required": [
          "pattern"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "matches": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "line": {
                  "type": "string"
                },
                "pane_id": {
                  "pattern": "^%[0-9]+$",
                  "type": "string"
                }
              },
              "required": [
                "line",
                "pane_id"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "matches"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Search tmux panes"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "select_layout",
      "wireName": "select_layout",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2339
      },
      "description": "Replace the pane layout of one window. Names and mirrored layouts follow the selected daemon version. Saved layouts accept v1 checksums and v2 JSON; v2 requires tmux 3.8 (including 3.8-rc) or newer. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "layout": {
            "description": "Built-in name, unambiguous abbreviation or saved tmux layout.",
            "maxLength": 4096,
            "type": "string"
          },
          "windowId": {
            "description": "Stable window ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "windowId",
          "layout"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Select a tmux layout"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "select_pane",
      "wireName": "select_pane",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2323
      },
      "description": "Make one pane active. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Select a tmux pane"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "select_window",
      "wireName": "select_window",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2307
      },
      "description": "Make one window active. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "windowId": {
            "description": "Stable window ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "windowId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Select a tmux window"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "send_keys",
      "wireName": "send_keys",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2803
      },
      "description": "Require every configured synchronized pane to be live and outside human-owned mode, then send one validated tmux key name. Send input to a pane's program; a shell that receives it runs it with your user's permissions.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "keys": {
            "description": "One tmux key name.",
            "maxLength": 256,
            "type": "string"
          },
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "paneId",
          "keys"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "pane_id": {
            "pattern": "^%[0-9]+$",
            "type": "string"
          },
          "target_pane_ids": {
            "items": {
              "pattern": "^%[0-9]+$",
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "pane_id",
          "target_pane_ids"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Send keys to a tmux pane"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "pane-input",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "send_keys_batch",
      "wireName": "send_keys_batch",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2876
      },
      "description": "Preflight each row's configured synchronized pane cohort independently, requiring every pane to be live and outside human-owned mode before its text or key and optional Enter. Send input to a pane's program; a shell that receives it runs it with your user's permissions.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "onError": {
            "description": "Stop after the first failed operation or continue.",
            "enum": [
              "continue",
              "stop"
            ],
            "type": "string"
          },
          "operations": {
            "description": "One to sixty-four ordered pane-input operations.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "enter": {
                  "type": "boolean"
                },
                "keys": {
                  "maxLength": 4096,
                  "type": "string"
                },
                "literal": {
                  "type": "boolean"
                },
                "paneId": {
                  "maxLength": 512,
                  "type": "string"
                }
              },
              "required": [
                "paneId",
                "keys"
              ],
              "type": "object"
            },
            "maxItems": 64,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "operations"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Send a key sequence to a tmux pane"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "pane-input",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "set_history_limit",
      "wireName": "set_history_limit",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2523
      },
      "description": "Replace retained-history bounds with a non-negative integer. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "Retained history line limit.",
            "maximum": 10000000,
            "minimum": 0,
            "type": "integer"
          },
          "session": {
            "description": "Stable session ID or name.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "session",
          "limit"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Set tmux history limit"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "set_mouse_enabled",
      "wireName": "set_mouse_enabled",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2510
      },
      "description": "Replace the global mouse option with a typed boolean. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "description": "Whether mouse handling is enabled.",
            "type": "boolean"
          }
        },
        "required": [
          "enabled"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Set tmux mouse handling"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "set_pane_title",
      "wireName": "set_pane_title",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2457
      },
      "description": "Replace one pane title. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          },
          "title": {
            "description": "Literal replacement pane title.",
            "maxLength": 4096,
            "type": "string"
          }
        },
        "required": [
          "paneId",
          "title"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Set a tmux pane title"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {
            "title": "double-hash-once"
          },
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "set_synchronize_panes",
      "wireName": "set_synchronize_panes",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 3106
      },
      "description": "Set the inherited window synchronize-panes default; pane-level overrides determine effective synchronized input membership. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "description": "Whether later pane input is duplicated.",
            "type": "boolean"
          },
          "windowId": {
            "description": "Stable window ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "windowId",
          "enabled"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Set synchronized pane input"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": true,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "show_environment",
      "wireName": "show_environment",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2097
      },
      "description": "Read global or session environment values. Read the tmux environment; accepts no client-supplied executable input. Returned values may contain secrets.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "Optional exact environment name.",
            "maxLength": 256,
            "type": "string"
          },
          "session": {
            "description": "Optional session target.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Show the tmux environment"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "process-environment"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "show_hooks",
      "wireName": "show_hooks",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2136
      },
      "description": "Read configured hooks, optionally filtered by exact name. Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "Optional exact hook name.",
            "maxLength": 256,
            "type": "string"
          },
          "target": {
            "description": "Optional tmux target.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Show tmux hooks"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "configured-command"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "show_option",
      "wireName": "show_option",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2072
      },
      "description": "Read one exact option without accepting an option value. Read configured tmux commands; accepts no client-supplied executable input. Returned values may contain executable configuration.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "Exact option name.",
            "maxLength": 256,
            "type": "string"
          },
          "target": {
            "description": "Optional session, window, or pane target.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Show a tmux option"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "configured-command"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "signal_channel",
      "wireName": "signal_channel",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2496
      },
      "description": "Release or latch one named server-side channel. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "channel": {
            "description": "Bounded channel name.",
            "maxLength": 256,
            "type": "string"
          }
        },
        "required": [
          "channel"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Signal a tmux channel"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "snapshot_pane",
      "wireName": "snapshot_pane",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 1887
      },
      "description": "Return pane metadata and visible terminal content from one call. Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "paneId": {
            "description": "Stable pane ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Snapshot a tmux pane"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    },
    {
      "name": "split_window",
      "wireName": "split_window",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2622
      },
      "description": "Create a configured-process pane; path data is literalized before tmux expansion. Start a pane's configured process; accepts no command payload.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "direction": {
            "description": "vertical or horizontal.",
            "maxLength": 16,
            "type": "string"
          },
          "paneId": {
            "description": "Stable pane to split.",
            "maxLength": 512,
            "type": "string"
          },
          "startDirectory": {
            "description": "Literal pane start directory.",
            "maxLength": 4096,
            "type": "string"
          }
        },
        "required": [
          "paneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "changed": {
            "type": "boolean"
          },
          "pane_id": {
            "pattern": "^%[0-9]+$",
            "type": "string"
          }
        },
        "required": [
          "pane_id"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Split a tmux window"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {
            "startDirectory": "double-hash-once"
          },
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "configured-process",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "execute"
        }
      }
    },
    {
      "name": "swap_pane",
      "wireName": "swap_pane",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2435
      },
      "description": "Exchange two pane positions without changing their IDs. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "sourcePaneId": {
            "description": "Stable source pane ID.",
            "maxLength": 512,
            "type": "string"
          },
          "targetPaneId": {
            "description": "Stable target pane ID.",
            "maxLength": 512,
            "type": "string"
          }
        },
        "required": [
          "sourcePaneId",
          "targetPaneId"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Swap two tmux panes"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe",
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "wait_for_channel",
      "wireName": "wait_for_channel",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2476
      },
      "description": "Wait for a named server-side channel with an optional deadline. Change tmux state; no client-supplied executable input.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "channel": {
            "description": "Bounded channel name.",
            "maxLength": 256,
            "type": "string"
          },
          "timeoutMs": {
            "description": "Optional bounded wait in milliseconds.",
            "maximum": 60000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "channel"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": true,
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Wait for a tmux channel"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": false,
          "mayReturnUntrustedContent": false,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "change"
          ],
          "toolset": "manage"
        }
      }
    },
    {
      "name": "wait_for_text",
      "wireName": "wait_for_text",
      "source": {
        "repo": "libtmux/libtmux-cxx",
        "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
        "file": "apps/mcp/src/tool_catalog.cpp",
        "line": 2006
      },
      "description": "Discount this server's pending input and recent submitted echoes; unmodelled keys stop tracking the current line. Wait for a new shell's prompt before typing. `matched_at_entry` reports visible text at entry; a mode ending in -unconfirmed identifies input that was still unconfirmed at the deadline. Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted.",
      "schemaStatus": "runtime",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "target": {
            "description": "Pane ID or pane target.",
            "maxLength": 512,
            "type": "string"
          },
          "text": {
            "description": "Literal text to wait for.",
            "maxLength": 4096,
            "type": "string"
          },
          "timeout_ms": {
            "description": "Bounded wait in milliseconds.",
            "maximum": 60000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "target",
          "text"
        ],
        "type": "object"
      },
      "outputSchema": {
        "additionalProperties": false,
        "properties": {
          "elapsed_ms": {
            "minimum": 0,
            "type": "integer"
          },
          "matched": {
            "type": "boolean"
          },
          "matched_at_entry": {
            "type": "boolean"
          },
          "mode": {
            "type": "string"
          },
          "pane_id": {
            "pattern": "^%[0-9]+$",
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "timed_out": {
            "type": "boolean"
          }
        },
        "required": [
          "elapsed_ms",
          "matched",
          "matched_at_entry",
          "mode",
          "text",
          "timed_out"
        ],
        "type": "object"
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true,
        "readOnlyHint": false,
        "title": "Wait for pane text"
      },
      "meta": {
        "com.git-pull.libtmux-mcp/capability": {
          "amplifiesFutureInput": false,
          "inputLiteralization": {},
          "mayExposeSecrets": true,
          "mayReturnUntrustedContent": true,
          "nestedAuthority": [],
          "outputClasses": [
            "tmux-metadata",
            "terminal-content"
          ],
          "processReach": "none",
          "tmuxEffects": [
            "observe"
          ],
          "toolset": "inspect"
        }
      }
    }
  ],
  "wirePrefix": "",
  "selectable": true,
  "source": "apps/mcp/src",
  "repo": "libtmux/libtmux-cxx",
  "revision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
  "extractedRevision": "3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f",
  "selection": {
    "LIBTMUX_TOOLSETS": "inspect,manage,execute,teardown"
  },
  "protocol": {
    "capabilities": {
      "resources": {
        "listChanged": false,
        "subscribe": false
      },
      "tools": {}
    },
    "prompts": [],
    "protocolVersion": "2025-11-25",
    "resources": [
      {
        "description": "The startup-frozen effective tool capability manifest.",
        "mimeType": "application/json",
        "name": "tmux-capabilities",
        "title": "Effective tmux capabilities",
        "uri": "tmux://capabilities"
      }
    ],
    "resourceTemplates": [],
    "serverInfo": {
      "name": "libtmux-cxx",
      "title": "libtmux C++ tmux server",
      "version": "0.1.0-alpha.11"
    },
    "unsupportedMethods": [
      "resources/templates/list"
    ]
  }
}
