{
  "schemaVersion": "2026-11-04",
  "name": "Tape & Thesis",
  "description": "Original illustrated trading study editions. Each ebook opens in a signed reader after device activation. Optional study companions are priced separately and require their associated ebook. Standalone software previews have no ebook prerequisite.",
  "url": "https://tapeandthesis.com/",
  "documentation": "https://tapeandthesis.com/llms.txt",
  "contact": "https://tapeandthesis.com/#profile",
  "legal": {
    "disclosure": [
      "Purchasing is not available yet. No new orders can be placed."
    ],
    "educationalOnly": true,
    "financialAdvice": false
  },
  "commerce": {
    "mode": "disabled",
    "orderable": false,
    "paymentRequired": false,
    "currency": "USD",
    "digitalGoodsOnly": true,
    "shipping": "none",
    "delivery": {
      "method": "unavailable",
      "summary": "Purchasing and new purchase claims are not available yet."
    },
    "limits": {
      "maxLinesPerOrder": 25,
      "maxOrderAmount": 2000,
      "quoteTtlSeconds": 900,
      "requestsPerMinute": 60,
      "idempotencyKeyLength": {
        "min": 8,
        "max": 128
      }
    },
    "payments": null
  },
  "authentication": {
    "discovery": "none",
    "purchase": "none",
    "headers": [],
    "note": "Discovery and purchase endpoints are unauthenticated and cookie-free. Content delivery is separate and always requires a human Customer profile session, so an agent cannot read purchased material."
  },
  "capabilities": [
    {
      "name": "search_catalog",
      "description": "Search the published catalog by keyword and product kind.",
      "method": "GET",
      "path": "/api/catalog",
      "parameters": [
        "q",
        "kind",
        "limit"
      ]
    },
    {
      "name": "get_product",
      "description": "Fetch one product with price, prerequisites and availability.",
      "method": "GET",
      "path": "/api/catalog/{productId}"
    },
    {
      "name": "recommend_study_path",
      "description": "Deterministically map a learning goal to an ordered study path.",
      "method": "GET",
      "path": "/api/recommend",
      "parameters": [
        "goal",
        "limit"
      ]
    },
    {
      "name": "quote_order",
      "description": "Price a basket and report missing prerequisite ebooks.",
      "method": "POST",
      "path": "/api/agent/quotes"
    },
    {
      "name": "place_order",
      "description": "Create a pending order for a human buyer email. Requires an idempotency key and explicit terms acceptance. When live billing is on, the order stays unpaid until /api/agent/payments confirms it.",
      "method": "POST",
      "path": "/api/agent/orders"
    },
    {
      "name": "order_status",
      "description": "Check whether the buyer has redeemed the access link.",
      "method": "GET",
      "path": "/api/agent/orders/{orderId}",
      "parameters": [
        "statusToken"
      ]
    },
    {
      "name": "confirm_payment",
      "description": "Processor webhook that marks an agent order paid and issues the buyer claim link. Unpaid orders grant nothing.",
      "method": "POST",
      "path": "/api/agent/payments"
    },
    {
      "name": "purchase_policy",
      "description": "Read delivery, limit and disclosure policy.",
      "method": "GET",
      "path": "/api/agent/policies"
    }
  ],
  "mcp": {
    "transport": "stdio",
    "command": "node",
    "args": [
      "scripts/mcp-server.mjs"
    ],
    "env": {
      "STORE_BASE_URL": "https://tapeandthesis.com/"
    },
    "tools": [
      "search_catalog",
      "get_product",
      "recommend_study_path",
      "quote_order",
      "place_order",
      "order_status",
      "purchase_policy"
    ]
  },
  "openapi": "https://tapeandthesis.com/openapi.json",
  "catalog": "https://tapeandthesis.com/api/catalog"
}