{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "BookStack n8n Agent Tool Commands",
  "description": "Available commands for the BookStack n8n Agent Tool with MCP framework compatibility",
  "type": "object",
  "properties": {
    "commands": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "description": { "type": "string" },
          "inputSchema": {
            "type": "object",
            "properties": {
              "type": { "type": "string" },
              "properties": { "type": "object" },
              "required": { "type": "array", "items": { "type": "string" } }
            }
          }
        }
      }
    }
  },
  "commands": [
    {
      "name": "getDocs",
      "description": "Load the docs page for the API.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    },
    {
      "name": "getDocsJson", 
      "description": "Show a JSON view of the API docs data.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    },
    {
      "name": "listAttachments",
      "description": "Get a listing of attachments visible to the user. The external property indicates whether the attachment is simple a link.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "count": { "type": "integer", "minimum": 1, "maximum": 500, "description": "Number of records to return" },
          "offset": { "type": "integer", "minimum": 0, "description": "Number of records to skip" },
          "sort": { "type": "string", "description": "Field to sort by with optional +/- prefix" }
        },
        "required": []
      }
    },
    {
      "name": "createAttachment",
      "description": "Create a new attachment in the system. An uploaded_to value must be provided containing an ID of the page.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": { "type": "string", "description": "name field" },
          "uploaded_to": { "type": "integer", "description": "uploaded_to field" },
          "link": { "type": "string", "description": "link field" },
          "file": { "type": "string", "description": "file field" }
        },
        "required": ["uploaded_to"]
      }
    },
    {
      "name": "getAttachment",
      "description": "Get the details & content of a single attachment of the given ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "updateAttachment",
      "description": "Update the details of a single attachment.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" },
          "name": { "type": "string", "description": "name field" },
          "link": { "type": "string", "description": "link field" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "deleteAttachment",
      "description": "Delete an attachment of the given ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "listBooks",
      "description": "Get a listing of books visible to the user.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "count": { "type": "integer", "minimum": 1, "maximum": 500, "description": "Number of records to return" },
          "offset": { "type": "integer", "minimum": 0, "description": "Number of records to skip" },
          "sort": { "type": "string", "description": "Field to sort by with optional +/- prefix" }
        },
        "required": []
      }
    },
    {
      "name": "createBook",
      "description": "Create a new book in the system.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": { "type": "string", "description": "name field" },
          "description": { "type": "string", "description": "description field" },
          "tags": { "type": "array", "description": "tags field" }
        },
        "required": ["name"]
      }
    },
    {
      "name": "getBook",
      "description": "View the details of a single book.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "updateBook",
      "description": "Update the details of a single book.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" },
          "name": { "type": "string", "description": "name field" },
          "description": { "type": "string", "description": "description field" },
          "tags": { "type": "array", "description": "tags field" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "deleteBook",
      "description": "Delete a single book. This will typically send the book to the recycle bin.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "exportBookHtml",
      "description": "Export a book as a contained HTML file.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "exportBookPdf",
      "description": "Export a book as a PDF file.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "exportBookPlaintext",
      "description": "Export a book as a plain text file.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "exportBookMarkdown",
      "description": "Export a book as a markdown file.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "listChapters",
      "description": "Get a listing of chapters visible to the user.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "count": { "type": "integer", "minimum": 1, "maximum": 500, "description": "Number of records to return" },
          "offset": { "type": "integer", "minimum": 0, "description": "Number of records to skip" },
          "sort": { "type": "string", "description": "Field to sort by with optional +/- prefix" }
        },
        "required": []
      }
    },
    {
      "name": "createChapter",
      "description": "Create a new chapter in the system.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": { "type": "string", "description": "name field" },
          "description": { "type": "string", "description": "description field" },
          "book_id": { "type": "integer", "description": "book_id field" },
          "tags": { "type": "array", "description": "tags field" }
        },
        "required": ["name", "book_id"]
      }
    },
    {
      "name": "getChapter",
      "description": "View the details of a single chapter.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "updateChapter",
      "description": "Update the details of a single chapter.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" },
          "name": { "type": "string", "description": "name field" },
          "description": { "type": "string", "description": "description field" },
          "book_id": { "type": "integer", "description": "book_id field" },
          "tags": { "type": "array", "description": "tags field" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "deleteChapter",
      "description": "Delete a chapter. This will typically send the chapter to the recycle bin.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "listPages",
      "description": "Get a listing of pages visible to the user.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "count": { "type": "integer", "minimum": 1, "maximum": 500, "description": "Number of records to return" },
          "offset": { "type": "integer", "minimum": 0, "description": "Number of records to skip" },
          "sort": { "type": "string", "description": "Field to sort by with optional +/- prefix" }
        },
        "required": []
      }
    },
    {
      "name": "createPage",
      "description": "Create a new page in the system. The ID of a parent book or chapter is required.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": { "type": "string", "description": "name field" },
          "html": { "type": "string", "description": "html field" },
          "markdown": { "type": "string", "description": "markdown field" },
          "book_id": { "type": "integer", "description": "book_id field" },
          "chapter_id": { "type": "integer", "description": "chapter_id field" },
          "tags": { "type": "array", "description": "tags field" }
        },
        "required": ["name"]
      }
    },
    {
      "name": "getPage",
      "description": "View the details of a single page.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "updatePage",
      "description": "Update the details of a single page.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" },
          "name": { "type": "string", "description": "name field" },
          "html": { "type": "string", "description": "html field" },
          "markdown": { "type": "string", "description": "markdown field" },
          "book_id": { "type": "integer", "description": "book_id field" },
          "chapter_id": { "type": "integer", "description": "chapter_id field" },
          "tags": { "type": "array", "description": "tags field" }
        },
        "required": ["id"]
      }
    },
    {
      "name": "deletePage",
      "description": "Delete a page. This will typically send the page to the recycle bin.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer", "description": "id parameter" }
        },
        "required": ["id"]
      }
    }
  ]
}
