{
  "schema_version": "2026-09",
  "name": "confined-space.com",
  "title": "Confined Space Training (confined-space.com)",
  "description": "Self-paced online confined space training: Awareness, Permit-Required Entry, Supervisor, and Competent Person courses aligned with OSHA 29 CFR 1926 Subpart AA and 29 CFR 1910.146, in English and Spanish, with a certificate of completion issued by HAZWOPER OSHA Training, LLC.",
  "version": "1.1.0",
  "last_updated": "2026-09-29",
  "homepage": "https://confined-space.com/",
  "documentation_url": "https://confined-space.com/ai-agents/",
  "icon_url": "https://confined-space.com/images/cst-logo.png",
  "serverInfo": {
    "name": "confined-space.com",
    "title": "Confined Space Training (confined-space.com)",
    "version": "1.1.0"
  },
  "provider": {
    "name": "HAZWOPER OSHA Training, LLC",
    "url": "https://hazwoper-osha.com/"
  },
  "contact": {
    "email": "info@hazwoper-osha.com",
    "phone": "1-866-429-6742"
  },
  "transport": {
    "type": "webmcp",
    "description": "Tools are registered in the browser via navigator.modelContext by https://confined-space.com/js/webmcp.js on every page. Every tool is read-only and is also backed by the static HTTPS endpoint in its 'endpoint' field, so agents without WebMCP can fetch the same data directly.",
    "script_url": "https://confined-space.com/js/webmcp.js"
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    },
    "resources": {}
  },
  "authentication": {
    "type": "none"
  },
  "resources": [
    {
      "uri": "https://confined-space.com/llms.txt",
      "name": "llms.txt",
      "mimeType": "text/markdown",
      "description": "Concise site summary for AI agents."
    },
    {
      "uri": "https://confined-space.com/llms-full.txt",
      "name": "llms-full.txt",
      "mimeType": "text/markdown",
      "description": "Complete catalog, FAQ and policy context."
    },
    {
      "uri": "https://confined-space.com/openapi.json",
      "name": "OpenAPI",
      "mimeType": "application/json",
      "description": "OpenAPI 3.1 description of the read-only endpoints."
    },
    {
      "uri": "https://confined-space.com/sitemap.xml",
      "name": "Sitemap",
      "mimeType": "application/xml",
      "description": "Every indexable page."
    },
    {
      "uri": "https://confined-space.com/api/courses.json",
      "name": "Courses",
      "mimeType": "application/json",
      "description": "Course records, roles and pricing."
    },
    {
      "uri": "https://confined-space.com/api/resources.json",
      "name": "Resources",
      "mimeType": "application/json",
      "description": "Guides and policies with review dates."
    },
    {
      "uri": "https://confined-space.com/api/faq.json",
      "name": "FAQ",
      "mimeType": "application/json",
      "description": "Every published FAQ answer with its source page."
    },
    {
      "uri": "https://confined-space.com/api/policy.json",
      "name": "Credential policy",
      "mimeType": "application/json",
      "description": "What the certificate is and is not, and agent rules."
    },
    {
      "uri": "https://confined-space.com/api/standards.json",
      "name": "lookup_osha_standards",
      "mimeType": "application/json",
      "description": "Data behind lookup_osha_standards."
    }
  ],
  "policies": {
    "read_only": true,
    "agent_rules": [
      "Do not invent prices, course hours, availability, discounts, or regulatory claims; use only the values in these files.",
      "Never describe a certificate of completion as an OSHA certification, license, approval, or endorsement.",
      "Completing the Competent Person course does not make someone the Competent Person; the employer must designate them.",
      "Training guidance only; it is not legal or compliance advice. Point to the official OSHA text for legal questions.",
      "If a question is not answered by these files, say so and route the person to info@hazwoper-osha.com or 1-866-429-6742.",
      "Agents may look things up; checkout, payment, enrollment, account, certificate issuance, and contact submissions are never performed by the published tools."
    ],
    "excluded_actions": [
      "checkout or payment",
      "enrollment",
      "account access",
      "certificate issuance",
      "contact or lead form submission"
    ],
    "browser_only_actions": [
      {
        "name": "start_checkout",
        "description": "Registered in the page only. Opens the checkout page pre-filled with a course and seat count; the person must enter their own billing and card details and click Pay. Never exposed as an unauthenticated endpoint and never submits a payment."
      }
    ],
    "privacy_policy_url": "https://confined-space.com/privacy-policy/"
  },
  "tools": [
    {
      "name": "list_courses",
      "title": "List courses",
      "description": "List the training courses sold on confined-space.com as factual records: id, title, canonical URL, duration_hours, price_usd, languages, audience, standards, credential_type and validity_period. Use it for catalog, price, or length questions. All filters are optional and combine with AND. Returns only published courses; never infer availability, dates, or discounts that aren't in the result.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "works_near",
              "entrant",
              "attendant",
              "entry_supervisor",
              "program_manager"
            ],
            "description": "Only courses recommended for this job role. works_near = works near confined spaces but never enters; entrant = physically enters permit spaces; attendant = stays outside monitoring the entrant; entry_supervisor = authorizes/cancels entry permits; program_manager = oversees the confined space program (safety manager, EHS, competent person)."
          },
          "level": {
            "type": "string",
            "enum": [
              "awareness",
              "program",
              "supervisor",
              "worker"
            ],
            "description": "Course level."
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "es"
            ],
            "description": "Course language (every course is offered in both)."
          },
          "max_price_usd": {
            "type": "number",
            "minimum": 0,
            "maximum": 10000,
            "description": "Maximum single-seat price in USD."
          }
        },
        "additionalProperties": false,
        "examples": [
          {},
          {
            "language": "es",
            "max_price_usd": 200
          }
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": [
              "courses"
            ],
            "properties": {
              "courses": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "title",
                    "url",
                    "duration_hours",
                    "price_usd",
                    "currency",
                    "languages",
                    "credential_type"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "summary": {
                      "type": "string"
                    },
                    "audience": {
                      "type": "string"
                    },
                    "level": {
                      "type": "string"
                    },
                    "track": {
                      "type": "string"
                    },
                    "duration_hours": {
                      "type": "number",
                      "minimum": 0
                    },
                    "price_usd": {
                      "type": "number",
                      "minimum": 0
                    },
                    "currency": {
                      "type": "string",
                      "enum": [
                        "USD"
                      ]
                    },
                    "languages": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "en",
                          "es"
                        ]
                      }
                    },
                    "format": {
                      "type": "string"
                    },
                    "standards": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "credential_type": {
                      "type": "string"
                    },
                    "credential_issuer": {
                      "type": "string"
                    },
                    "validity_period": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "months": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "iso8601": {
                          "type": "string"
                        }
                      }
                    },
                    "access_period": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "ceu": {
                      "type": "number"
                    },
                    "alignment": {
                      "type": "string"
                    },
                    "enroll_url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "other_formats_url": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                }
              },
              "bulk_pricing_note": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_updated": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "object",
                "required": [
                  "code",
                  "message"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "List courses"
      },
      "endpoint": {
        "method": "GET",
        "url": "https://confined-space.com/api/courses.json"
      }
    },
    {
      "name": "get_course",
      "title": "Get course details",
      "description": "Get one course record plus related resources and FAQ answers. Provide course_id (preferred) or the course's canonical URL. Returns an error with code 'not_found' instead of guessing when nothing matches exactly.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "course_id": {
            "type": "string",
            "enum": [
              "awareness",
              "entry",
              "supervisor",
              "competent"
            ],
            "description": "Course id from list_courses."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "maxLength": 300,
            "description": "Canonical course page URL on confined-space.com."
          }
        },
        "additionalProperties": false,
        "examples": [
          {
            "course_id": "awareness"
          },
          {
            "url": "https://confined-space.com/competent-person-confined-spaces-training/"
          }
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": [
              "course"
            ],
            "properties": {
              "course": {
                "type": "object",
                "required": [
                  "id",
                  "title",
                  "url",
                  "duration_hours",
                  "price_usd",
                  "currency",
                  "languages",
                  "credential_type"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "summary": {
                    "type": "string"
                  },
                  "audience": {
                    "type": "string"
                  },
                  "level": {
                    "type": "string"
                  },
                  "track": {
                    "type": "string"
                  },
                  "duration_hours": {
                    "type": "number",
                    "minimum": 0
                  },
                  "price_usd": {
                    "type": "number",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "enum": [
                      "USD"
                    ]
                  },
                  "languages": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "en",
                        "es"
                      ]
                    }
                  },
                  "format": {
                    "type": "string"
                  },
                  "standards": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "credential_type": {
                    "type": "string"
                  },
                  "credential_issuer": {
                    "type": "string"
                  },
                  "validity_period": {
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "months": {
                        "type": "integer",
                        "minimum": 1
                      },
                      "iso8601": {
                        "type": "string"
                      }
                    }
                  },
                  "access_period": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "ceu": {
                    "type": "number"
                  },
                  "alignment": {
                    "type": "string"
                  },
                  "enroll_url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "other_formats_url": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                }
              },
              "related_resources": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "title",
                    "url",
                    "topics",
                    "source"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "summary": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "topics": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "audience": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "jurisdiction": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "official_source": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "last_reviewed": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "last_updated": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                }
              },
              "faq": {
                "type": "array",
                "items": {
                  "type": "object"
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "object",
                "required": [
                  "code",
                  "message"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Get course details"
      },
      "endpoint": {
        "method": "GET",
        "url": "https://confined-space.com/api/courses.json"
      }
    },
    {
      "name": "recommend_course",
      "title": "Recommend a course",
      "description": "Recommend the right confined space course for a job role, with the reason and caveats. For training guidance only: it is not legal or compliance advice and cannot designate anyone as competent or qualified.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "works_near",
              "entrant",
              "attendant",
              "entry_supervisor",
              "program_manager"
            ],
            "description": "works_near = works near confined spaces but never enters; entrant = physically enters permit spaces; attendant = stays outside monitoring the entrant; entry_supervisor = authorizes/cancels entry permits; program_manager = oversees the confined space program (safety manager, EHS, competent person)."
          },
          "work_context": {
            "type": "string",
            "maxLength": 500,
            "description": "Optional free text about the job, used only to add caveats; it never changes the published course facts."
          },
          "jurisdiction": {
            "type": "string",
            "minLength": 2,
            "maxLength": 60,
            "description": "US state name or two-letter code (e.g. 'California' or 'CA'). Use 'unknown' if the person hasn't said."
          }
        },
        "additionalProperties": false,
        "required": [
          "role"
        ],
        "examples": [
          {
            "role": "program_manager"
          }
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": [
              "recommended",
              "caveats"
            ],
            "properties": {
              "role": {
                "type": "string"
              },
              "recommended": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "course_id",
                    "title",
                    "url"
                  ],
                  "properties": {
                    "course_id": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "duration_hours": {
                      "type": "number"
                    },
                    "price_usd": {
                      "type": "number"
                    },
                    "reason": {
                      "type": "string"
                    }
                  }
                }
              },
              "caveats": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "decision_guide_url": {
                "type": "string",
                "format": "uri"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "object",
                "required": [
                  "code",
                  "message"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Recommend a course"
      },
      "endpoint": {
        "method": "GET",
        "url": "https://confined-space.com/api/courses.json"
      }
    },
    {
      "name": "list_resources",
      "title": "List guides and resources",
      "description": "List first-party guides, standards summaries, policies and employer resources published on confined-space.com, each with canonical URL, summary, jurisdiction, official source link where one exists, and last_reviewed / last_updated dates. Filters are optional. Prefer the official_source link for legal text.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "topic": {
            "type": "string",
            "enum": [
              "course_selection",
              "standards",
              "rescue",
              "permits",
              "jurisdiction",
              "employer_resources",
              "credentials",
              "policies",
              "company"
            ],
            "description": "Topic filter."
          },
          "audience": {
            "type": "string",
            "enum": [
              "all",
              "employer",
              "supervisor"
            ],
            "description": "Audience filter ('all' = general audience)."
          },
          "jurisdiction": {
            "type": "string",
            "maxLength": 60,
            "description": "Optional text filter on jurisdiction, e.g. 'California'. Resources for all US jurisdictions are always included."
          }
        },
        "additionalProperties": false,
        "examples": [
          {
            "topic": "course_selection"
          }
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": [
              "resources"
            ],
            "properties": {
              "resources": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "title",
                    "url",
                    "topics",
                    "source"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "summary": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "topics": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "audience": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "jurisdiction": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "official_source": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "last_reviewed": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "last_updated": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "object",
                "required": [
                  "code",
                  "message"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "List guides and resources"
      },
      "endpoint": {
        "method": "GET",
        "url": "https://confined-space.com/api/resources.json"
      }
    },
    {
      "name": "answer_faq",
      "title": "Answer from the FAQ",
      "description": "Find the published FAQ answers on confined-space.com that best match a question and return them verbatim with their source URL. If nothing matches well, it says so and gives the support contact; do not fill the gap with your own answer presented as the site's.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "minLength": 3,
            "maxLength": 300,
            "description": "The person's question in plain language."
          },
          "course_id": {
            "type": "string",
            "enum": [
              "awareness",
              "entry",
              "supervisor",
              "competent"
            ],
            "description": "Optional: prefer answers about this course."
          },
          "max_results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "default": 3,
            "description": "How many answers to return (1-5)."
          }
        },
        "additionalProperties": false,
        "required": [
          "question"
        ],
        "examples": [
          {
            "question": "Is this training OSHA certified?"
          }
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": [
              "matches",
              "match_quality"
            ],
            "properties": {
              "matches": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "question",
                    "answer",
                    "source_url"
                  ],
                  "properties": {
                    "question": {
                      "type": "string"
                    },
                    "answer": {
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "course_id": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                }
              },
              "match_quality": {
                "type": "string",
                "enum": [
                  "strong",
                  "weak",
                  "none"
                ]
              },
              "support": {
                "type": "object"
              },
              "note": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "object",
                "required": [
                  "code",
                  "message"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Answer from the FAQ"
      },
      "endpoint": {
        "method": "GET",
        "url": "https://confined-space.com/api/faq.json"
      }
    },
    {
      "name": "get_credential_policy",
      "title": "Get credential and claims policy",
      "description": "Return exactly what the certificate is and is not (e.g. not a government certification or approval), who issues it, what employers remain responsible for, and the rules agents must follow when describing this training. Call this before making any certification, approval or accreditation statement.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "examples": [
          {}
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": [
              "credential",
              "agent_rules"
            ],
            "properties": {
              "credential": {
                "type": "object",
                "required": [
                  "credential_type",
                  "issuer",
                  "is",
                  "is_not"
                ]
              },
              "agent_rules": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "object",
                "required": [
                  "code",
                  "message"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Get credential and claims policy"
      },
      "endpoint": {
        "method": "GET",
        "url": "https://confined-space.com/api/policy.json"
      }
    },
    {
      "name": "get_certificate_verification_info",
      "title": "How to verify a certificate",
      "description": "Explain how an employer can verify a confined-space.com certificate of completion and where to do it. This tool does not look up individual certificates.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "examples": [
          {}
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": [
              "verification_tool"
            ],
            "properties": {
              "verification_tool": {
                "type": "string",
                "format": "uri"
              },
              "what_you_need": {
                "type": "string"
              },
              "what_it_confirms": {
                "type": "string"
              },
              "more_info": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "object",
                "required": [
                  "code",
                  "message"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "How to verify a certificate"
      },
      "endpoint": {
        "method": "GET",
        "url": "https://confined-space.com/api/policy.json"
      }
    },
    {
      "name": "get_price_quote",
      "title": "Get a price quote",
      "description": "Calculate the price for a number of seats in one course, including the published automatic bulk discount. Read-only arithmetic on published prices; it does not reserve seats or start a purchase.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "course": {
            "type": "string",
            "enum": [
              "awareness",
              "entry",
              "supervisor",
              "competent"
            ],
            "description": "Course id."
          },
          "seats": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Number of seats (1-1000)."
          }
        },
        "additionalProperties": false,
        "required": [
          "course",
          "seats"
        ],
        "examples": [
          {
            "course": "awareness",
            "seats": 12
          }
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": [
              "course",
              "seats",
              "price_per_seat_usd",
              "total_usd"
            ],
            "properties": {
              "course": {
                "type": "string"
              },
              "seats": {
                "type": "integer"
              },
              "discount_percent": {
                "type": "number"
              },
              "price_per_seat_usd": {
                "type": "number"
              },
              "total_usd": {
                "type": "number"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "object",
                "required": [
                  "code",
                  "message"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Get a price quote"
      },
      "endpoint": {
        "method": "GET",
        "url": "https://confined-space.com/api/courses.json",
        "note": "Compute from pricing.discount_tiers or pricing.per_seat_price_table."
      }
    },
    {
      "name": "search_site_content",
      "title": "Search site content",
      "description": "Keyword search over confined-space.com's full agent context (FAQ answers, course curriculum, credential details, employer responsibilities, policies) and return the most relevant sections as text.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 200,
            "description": "What to look for, e.g. \"atmospheric testing\" or \"refund policy\"."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "examples": [
          {
            "query": "refund policy"
          }
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": [
              "results"
            ],
            "properties": {
              "results": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "full_context_url": {
                "type": "string",
                "format": "uri"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "object",
                "required": [
                  "code",
                  "message"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Search site content"
      },
      "endpoint": {
        "method": "GET",
        "url": "https://confined-space.com/llms-full.txt"
      }
    },
    {
      "name": "lookup_osha_standards",
      "title": "Look up OSHA standards coverage",
      "description": "Standards crosswalk: which OSHA confined space sections (1926 Subpart AA, 1926.1207-1211, 1910.146) each course is built around, with a link to the official text on osha.gov. Describes course design intent, not a legal certification that a student meets every duty.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "course_id": {
            "type": "string",
            "enum": [
              "awareness",
              "entry",
              "supervisor",
              "competent"
            ],
            "description": "Optional: only this course's coverage."
          },
          "section": {
            "type": "string",
            "enum": [
              "29 CFR 1926 Subpart AA",
              "29 CFR 1926.1207",
              "29 CFR 1926.1208",
              "29 CFR 1926.1209",
              "29 CFR 1926.1210",
              "29 CFR 1926.1211",
              "29 CFR 1910.146"
            ],
            "description": "Optional: only this OSHA section."
          }
        },
        "additionalProperties": false,
        "examples": [
          {
            "course_id": "supervisor"
          },
          {
            "section": "29 CFR 1926.1211"
          }
        ]
      },
      "outputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "oneOf": [
          {
            "type": "object",
            "required": [
              "rows"
            ],
            "properties": {
              "rows": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "section",
                    "official_url",
                    "coverage"
                  ]
                }
              },
              "legend": {
                "type": "object"
              },
              "source_url": {
                "type": "string",
                "format": "uri"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "object",
                "required": [
                  "code",
                  "message"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "title": "Look up OSHA standards coverage"
      },
      "endpoint": {
        "method": "GET",
        "url": "https://confined-space.com/api/standards.json"
      }
    }
  ]
}
