openapi: 3.2.0 info: title: Bhanzu CMS Public AI API description: Read-only access to Bhanzu's published math learning content. All endpoints are unauthenticated and CORS-enabled. version: 1.0.0 contact: email: tech@bhanzu.com servers: - url: https://bhanzu.com description: Production tags: - name: AI description: AI-readable content files and tools paths: /api/mcp: post: summary: MCP tool server description: 'Model Context Protocol (MCP) endpoint using Streamable HTTP transport. Accepts JSON-RPC 2.0 requests and returns tool results. Supported methods: initialize, tools/list, tools/call. Available tools: search_articles, get_article, list_sections, get_site_info.' operationId: mcpPost tags: - AI requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/JsonRpcRequest' responses: '200': description: JSON-RPC 2.0 response content: application/json: schema: $ref: '#/components/schemas/JsonRpcResponse' /llms.txt: get: summary: LLM-readable site index description: Short index of all published content following the llmstxt.org spec. Suitable for AI assistants that need to know what content exists. operationId: getLlmsTxt tags: - AI responses: '200': description: Plain-text LLM site index content: text/plain: schema: type: string /llms-full.txt: get: summary: LLM-readable full content index description: Expanded per-article summaries for AI crawlers. Contains one block per published article with URL, last-updated date, and excerpt/summary. operationId: getLlmsFullTxt tags: - AI responses: '200': description: Plain-text LLM full content index content: text/plain: schema: type: string components: schemas: JsonRpcRequest: type: object required: - jsonrpc - method properties: jsonrpc: type: string enum: - '2.0' id: oneOf: - type: integer - type: string method: type: string example: tools/call params: type: object JsonRpcResponse: type: object required: - jsonrpc properties: jsonrpc: type: string enum: - '2.0' id: oneOf: - type: integer - type: string - type: 'null' result: type: object error: type: object properties: code: type: integer message: type: string