{
  "schemaVersion": "1.0",
  "name": "ToolFable Agent Tools",
  "description": "Stateless, browser-tool-compatible utilities exposed for direct agent calls.",
  "baseUrl": "https://toolfable.com/api/agent-tools",
  "openapi": "https://toolfable.com/agent-tools-openapi.json",
  "staticManifest": "https://toolfable.com/agent-tools.json",
  "llms": "https://toolfable.com/llms.txt",
  "privacy": {
    "processing": "ephemeral",
    "persistence": false,
    "description": "Requests are processed in memory for the duration of the call and are not intentionally persisted by this API."
  },
  "limits": {
    "maxJsonBodyBytes": 131072
  },
  "request": {
    "contentType": "application/json",
    "schema": {
      "type": "object",
      "required": [
        "input"
      ],
      "properties": {
        "input": {
          "type": "string"
        },
        "options": {
          "type": "object",
          "additionalProperties": {
            "type": [
              "string",
              "number",
              "boolean"
            ]
          }
        }
      },
      "additionalProperties": false
    }
  },
  "response": {
    "description": "Successful calls return result.output as parsed JSON when possible and result.outputText as the exact text representation."
  },
  "tools": [
    {
      "id": "agent-tool-schema-builder",
      "name": "Agent Tool Schema Builder",
      "description": "Normalize a JSON tool definition for OpenAI Responses function tools or MCP tools.",
      "method": "POST",
      "path": "/api/agent-tools/agent-tool-schema-builder",
      "input": "A JSON object containing name, optional description, and parameters, inputSchema, or schema.",
      "options": {
        "target": "\"openai-responses\" (default) or \"mcp\".",
        "strict": "Whether to normalize object schemas for strict tool calling. Defaults to true.",
        "indent": "JSON indentation: \"2\" (default) or \"4\"."
      }
    },
    {
      "id": "json-schema-generator",
      "name": "JSON Schema Generator",
      "description": "Generate a JSON Schema from representative JSON data without storing the supplied data.",
      "method": "POST",
      "path": "/api/agent-tools/json-schema-generator",
      "input": "A JSON document encoded as a string.",
      "options": {
        "includeRequired": "Mark observed object properties as required. Defaults to true.",
        "additionalProperties": "Allow undeclared object properties. Defaults to false.",
        "detectFormats": "Detect common string formats such as date-time, email, URI, and UUID. Defaults to true.",
        "title": "Optional schema title.",
        "indent": "JSON indentation: \"2\" (default) or \"4\"."
      }
    },
    {
      "id": "jsonl-validator",
      "name": "JSONL Validator",
      "description": "Validate newline-delimited JSON and return line-oriented validation feedback.",
      "method": "POST",
      "path": "/api/agent-tools/jsonl-validator",
      "input": "One JSON value per line.",
      "options": {
        "mode": "\"format\" (default) or \"validate\".",
        "allowBlankLines": "Allow and skip blank lines. Defaults to false.",
        "objectOnly": "Require every line to contain a JSON object. Defaults to false.",
        "sortKeys": "Sort object keys recursively in formatted output. Defaults to false."
      }
    },
    {
      "id": "prompt-template-renderer",
      "name": "Prompt Template Renderer",
      "description": "Render a prompt template with tool-specific variables supplied through options.",
      "method": "POST",
      "path": "/api/agent-tools/prompt-template-renderer",
      "input": "A prompt template string.",
      "options": {
        "variables": "A JSON object encoded as a string and used to replace {{path}} placeholders.",
        "missingVariable": "Missing-variable behavior: \"error\" (default), \"keep\", or \"empty\".",
        "prettyValues": "Pretty-print object and array replacements. Defaults to false."
      }
    }
  ]
}
