{"publisher": "Fresh Ink", "site": "https://freshink.art/", "skills": [{"authentication": "none", "description": "Studio name, address, hours, session times, and how booking works. Call this first before anything else.", "endpoint": "https://freshink.art/api/public/mcp", "id": "get-studio-info", "name": "Get studio info", "protocol": "mcp"}, {"authentication": "none", "description": "List open appointment times between two dates (YYYY-MM-DD, max 31 days, America/Chicago). Use to find a session time for the user.", "endpoint": "https://freshink.art/api/public/mcp", "id": "list-open-times", "name": "List open times", "protocol": "mcp"}, {"authentication": "none", "description": "Hold an open time for 15 minutes on behalf of the user. Returns a checkout_url the USER must open to lock the session in (free while in proof of concept). Confirm details with the user before calling.", "endpoint": "https://freshink.art/api/public/mcp", "id": "hold-slot", "name": "Hold a slot", "protocol": "mcp"}, {"authentication": "none", "description": "Check a held booking: pending, confirmed, expired, or cancelled. Use to follow up after handing the user the checkout_url.", "endpoint": "https://freshink.art/api/public/mcp", "id": "get-booking-status", "name": "Get booking status", "protocol": "mcp"}, {"authentication": "none", "description": "Same capabilities as the MCP tools over REST: GET /api/public/studio, /api/public/availability, POST /api/public/holds (idempotent via Idempotency-Key), GET /api/public/bookings/{id}.", "endpoint": "https://freshink.art/api/public/openapi.json", "id": "rest-booking-api", "name": "Booking API (REST)", "protocol": "rest"}], "version": "0.2.0", "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json"}