{
  "name": "HourProof",
  "description": "Deterministic checker for self-reported service/volunteer hours: flags impossible day totals, bad dates, missing organizations, and long sessions, then collects a one-time supervisor sign-off and prints an A4 certificate. No LLM, no AI - arithmetic and completeness only. It does not decide whether hours satisfy any school or award requirement. This service is a plain REST API and an MCP server over Streamable HTTP - it is NOT an A2A JSON-RPC agent. Docs at the documentationUrl.",
  "supportedInterfaces": [
    {
      "url": "https://hourproof.rowb.app/mcp",
      "protocolBinding": "MCP",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://hourproof.rowb.app",
      "protocolBinding": "REST",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "rowb.app",
    "url": "https://rowb.app"
  },
  "version": "1.0.0",
  "documentationUrl": "https://hourproof.rowb.app/llms.txt",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "check-hours",
      "name": "Check logged service hours",
      "description": "Check a list of logged hours for internal consistency (bad dates, day totals over 24h, missing organization, long-day flags). REST: POST https://hourproof.rowb.app/api/check-hours (bearer key). MCP tool: check_hours.",
      "tags": [
        "service-hours",
        "volunteer",
        "verification",
        "students"
      ]
    },
    {
      "id": "get-rules",
      "name": "Get the rule table",
      "description": "The exact rule table the checker uses, with the reason each rule is checkable, and what it explicitly does not claim. MCP tool: get_rules.",
      "tags": [
        "rules",
        "transparency"
      ]
    }
  ],
  "mcpUrl": "https://hourproof.rowb.app/mcp"
}