# MarkdownTree - Full LLM Context Version: 1.3.0 Base URL: https://markdown.platphormnews.com ## Role MarkdownTree is a browser-first Markdown editor, visual document graph, parser, outline generator, live preview, export utility, structure analyzer, and Markdown API/MCP tool surface. It is not Trace, Docs, MCP, Claws, Evals, BrowserOps, Sandbox, Webhooks, AgentUI, Base, Monitor, Atlas, Spec, Sheets, SVG, ASCII, Emoji, JSON, XML, or Phorm. Those are integrations or adjacent tools. ## Public-Safe Behavior - Markdown content is parsed locally in the browser for the editor and graph. - Public API requests parse or transform submitted Markdown and return the result; they do not claim to persist documents. - Local non-sensitive drafts are browser-local. - Share URLs are bounded and URL-only. - Markdown, HTML, and JSON export are active. - PDF and PNG export return explicit degraded states. - Model-backed AI endpoints return degraded states because the execution adapter is not connected, even when provider credentials are detected. ## Auth { "enforcementEnabled": false, "acceptedHeaders": [ "Authorization: Bearer $PLATPHORM_API_KEY", "X-PlatPhorm-API-Key: $PLATPHORM_API_KEY" ], "publicSafeByDefault": true, "futureProtectedActions": [ "server-side PDF and PNG exports", "AI enhancement calls", "webhook mutation", "document persistence", "sync jobs", "registry mutation", "trusted-domain mutation", "administrative reporting" ] } ## Route Compliance { "requiredRoutes": [ "/api/health", "/api/v1/health", "/api/docs", "/openapi.yaml", "/openapi.json", "/llms.txt", "/llms-full.txt", "/llms-index.json", "/robots.txt", "/sitemap.xml", "/sitemap-main.xml", "/sitemap-full.xml", "/sitemap-index.xml", "/rss.xml", "/feed.xml", "/humans.txt", "/manifest.webmanifest", "/faq", "/.well-known/mcp.json", "/.well-known/agents.json", "/.well-known/ai-plugin.json", "/.well-known/security.txt", "/.well-known/trust.json", "/api/mcp" ], "implementedRoutes": [ "/api/health", "/api/v1/health", "/api/docs", "/openapi.yaml", "/openapi.json", "/llms.txt", "/llms-full.txt", "/llms-index.json", "/robots.txt", "/sitemap.xml", "/sitemap-main.xml", "/sitemap-full.xml", "/sitemap-index.xml", "/rss.xml", "/feed.xml", "/humans.txt", "/manifest.webmanifest", "/faq", "/.well-known/mcp.json", "/.well-known/agents.json", "/.well-known/ai-plugin.json", "/.well-known/security.txt", "/.well-known/trust.json", "/api/mcp" ], "unsupportedRoutes": [], "score": 1, "status": "healthy" } ## Discovery Compliance { "status": "healthy", "sitemapStatus": "dynamic_canonical_main_full_and_index", "rssStatus": "dynamic_public_safe_feed", "llmsStatus": "dynamic_readable", "openapiStatus": "dynamic_json_and_yaml", "mcpStatus": "json_rpc_public_read_introspection" } ## Public Routes - /: Browser-first Markdown editor and visual document graph. - /editor: Write, paste, preview, analyze, graph, and export Markdown locally. - /docs: MarkdownTree API, MCP, export, and platform documentation. - /api/docs: OpenAPI 3.1 description for public-safe Markdown endpoints. - /faq: Common questions about local drafts, API access, exports, AI state, and sharing. - /privacy: MarkdownTree browser-local privacy policy. - /terms: Terms for using MarkdownTree. - /accessibility: Accessibility notes for MarkdownTree. - /open-source: Open-source status and repository links. - /llms.txt: Readable LLM summary for MarkdownTree. - /llms-index.json: Machine-readable route and capability index. - /openapi.yaml: YAML OpenAPI document. - /openapi.json: JSON OpenAPI document. - /rss.xml: Public MarkdownTree RSS feed. - /feed.xml: Public MarkdownTree XML feed. - /.well-known/mcp.json: Read-only MCP discovery metadata. - /.well-known/trust.json: Public/protected boundary and data exposure policy. ## MCP Tools - parse_markdown - transform_markdown_to_graph - generate_outline - get_markdown_stats - export_markdown - export_html - export_json - generate_share_url - generate_table_of_contents - get_health - get_info - get_route_compliance - get_discovery_compliance ## MCP Resources - markdown://examples - markdown://templates - markdown://exports - markdown://openapi - markdown://llms - markdown://trust-policy ## MCP Prompts - explain_markdown_structure - improve_markdown - generate_markdown_outline - generate_markdown_toc - create_markdown_export_plan - debug_markdown_graph - human_machine_markdown_handoff ## Model State { "configured": false, "status": "degraded", "provider": "none", "model": null, "message": "No backend model provider is configured. AI writing assistance is unavailable; deterministic Markdown tools still work." } ## OpenAPI ```json { "openapi": "3.1.0", "info": { "title": "MarkdownTree API", "description": "Public-safe Markdown parsing, graph transformation, outline, stats, export, share, AI degraded-state, and MCP tooling for MarkdownTree.", "version": "1.3.0", "contact": { "name": "Platphorm News", "url": "https://markdown.platphormnews.com" }, "license": { "name": "MIT", "url": "https://opensource.org/licenses/MIT" } }, "servers": [ { "url": "https://markdown.platphormnews.com", "description": "Production" } ], "tags": [ { "name": "Health", "description": "Health and compliance state" }, { "name": "Markdown", "description": "Markdown parse, outline, stats, and graph operations" }, { "name": "Export", "description": "Markdown, HTML, JSON, and honest degraded export adapters" }, { "name": "AI", "description": "Backend model scaffolding and deterministic fallbacks" }, { "name": "MCP", "description": "JSON-RPC 2.0 MCP endpoint and read-only discovery" }, { "name": "Discovery", "description": "Public platform discovery files" } ], "paths": { "/api/health": { "get": { "tags": [ "Health" ], "summary": "Health check", "description": "Public-safe Phase 1 endpoint. PLATPHORM_API_KEY is not required unless PLATPHORM_REQUIRE_API_KEY is enabled for future protected actions.", "responses": { "200": { "description": "Service health summary", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } } } } }, "/api/v1/health": { "get": { "tags": [ "Health" ], "summary": "Versioned health check", "description": "Public-safe Phase 1 endpoint. PLATPHORM_API_KEY is not required unless PLATPHORM_REQUIRE_API_KEY is enabled for future protected actions.", "responses": { "200": { "description": "Service health summary" } } } }, "/api/v1/parse": { "post": { "tags": [ "Markdown" ], "summary": "Parse Markdown", "description": "Parse Markdown into concrete graph, outline, and stats data.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/transform": { "post": { "tags": [ "Markdown" ], "summary": "Transform Markdown to graph", "description": "Parse Markdown and return graph nodes, edges, outline, and stats.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/outline": { "post": { "tags": [ "Markdown" ], "summary": "Generate outline", "description": "Generate a heading outline from Markdown.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/stats": { "post": { "tags": [ "Markdown" ], "summary": "Get Markdown stats", "description": "Count words, lines, headings, links, images, code blocks, nodes, and edges.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/export": { "post": { "tags": [ "Export" ], "summary": "Export Markdown", "description": "Export Markdown as markdown, html, json, or return honest degraded state for pdf/png.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/export/html": { "post": { "tags": [ "Export" ], "summary": "Export HTML", "description": "Convert Markdown to sanitized standalone HTML.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Sanitized standalone HTML document.", "content": { "text/html": { "schema": { "type": "string" } } } } } } }, "/api/v1/export/json": { "post": { "tags": [ "Export" ], "summary": "Export JSON", "description": "Convert Markdown to structured graph, outline, stats, and source JSON.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/export/pdf": { "post": { "tags": [ "Export" ], "summary": "PDF export degraded state", "description": "Server-side PDF export is scaffolded and returns an honest unavailable state until configured.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/export/png": { "post": { "tags": [ "Export" ], "summary": "PNG export degraded state", "description": "Server-side PNG graph export is scaffolded and returns an honest unavailable state until configured.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/share": { "post": { "tags": [ "Export" ], "summary": "Generate bounded share URL", "description": "Generate a public-safe URL with bounded encoded Markdown content. No server persistence is claimed.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/ai/status": { "get": { "tags": [ "AI" ], "summary": "Model status", "description": "Returns whether backend model integration is configured or degraded.", "responses": { "200": { "description": "Model status" } } } }, "/api/v1/ai/enhance": { "post": { "tags": [ "AI" ], "summary": "Enhance Markdown", "description": "Returns an honest degraded state until a model execution adapter is connected.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AIEnhanceRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/ai/toc": { "post": { "tags": [ "AI" ], "summary": "Generate table of contents", "description": "Generate a deterministic table of contents from real headings; model support may be layered later.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/v1/ai/summarize": { "post": { "tags": [ "AI" ], "summary": "Summarize Markdown", "description": "Returns an honest degraded state until a model execution adapter is connected.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkdownRequest" } } } }, "responses": { "200": { "description": "Operation completed or returned an honest degraded state.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponse" } } } }, "400": { "description": "Invalid request." }, "429": { "description": "Rate limited." }, "501": { "description": "Feature scaffolded but unavailable in Phase 1." }, "503": { "description": "Backend model provider unavailable." } } } }, "/api/mcp": { "get": { "tags": [ "MCP" ], "summary": "MCP endpoint metadata", "description": "Read-only MCP metadata and JSON-RPC usage.", "responses": { "200": { "description": "MCP metadata" } } }, "post": { "tags": [ "MCP" ], "summary": "MCP JSON-RPC 2.0", "description": "Accepts JSON-RPC 2.0 objects or batches for real Markdown tools and introspection.", "responses": { "200": { "description": "JSON-RPC 2.0 response" } } } } }, "components": { "securitySchemes": { "platphormApiKey": { "type": "apiKey", "in": "header", "name": "X-PlatPhorm-API-Key", "description": "Future protected-action key. Public-safe Phase 1 endpoints do not require it by default." }, "platphormBearer": { "type": "http", "scheme": "bearer", "bearerFormat": "PLATPHORM_API_KEY", "description": "Authorization: Bearer $PLATPHORM_API_KEY for future protected actions." } }, "schemas": { "ApiResponse": { "type": "object", "properties": { "ok": { "type": "boolean" }, "success": { "type": "boolean", "deprecated": true }, "data": { "type": "object" }, "error": { "$ref": "#/components/schemas/ApiError" }, "meta": { "$ref": "#/components/schemas/ApiMeta" } }, "required": [ "ok" ] }, "ApiError": { "type": "object", "properties": { "code": { "type": "string" }, "message": { "type": "string" }, "details": { "type": "object" } }, "required": [ "code", "message" ] }, "ApiMeta": { "type": "object", "properties": { "version": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" }, "requestId": { "type": "string" } } }, "MarkdownRequest": { "type": "object", "properties": { "markdown": { "type": "string", "maxLength": 262144 }, "options": { "type": "object" } }, "required": [ "markdown" ] }, "ExportRequest": { "type": "object", "properties": { "markdown": { "type": "string", "maxLength": 262144 }, "format": { "type": "string", "enum": [ "markdown", "json", "html", "pdf", "png" ] } }, "required": [ "markdown", "format" ] }, "AIEnhanceRequest": { "type": "object", "properties": { "markdown": { "type": "string", "maxLength": 262144 }, "action": { "type": "string", "enum": [ "improve", "summarize", "expand", "fix-grammar", "generate-toc" ] }, "context": { "type": "string", "maxLength": 4096 } }, "required": [ "markdown", "action" ] } } } } ``` ## Trust Policy Web dashboard, public-safe discovery, browser-based operations, trusted-domain discovery, standard route compliance, Vercel metadata capture, trace inspection, and agentic workflow discovery are intentionally supported for public read-only debugging and operator workflows. Mutating, administrative, ingestion, replay, fork, remediation, deployment, sync, test-triggering, reporting, and write actions require PLATPHORM_API_KEY. Browser-local Markdown editing, graph visualization, formatting, preview, and non-sensitive draft persistence remain public product capabilities. Server-side exports, AI enhancement calls, webhook mutation, and document persistence are protected actions. Updated: 2026-07-21T17:56:07.285Z