{
 "voice": "One card of the book.",
 "agent": {
  "slug": "joonoo-personalized-books",
  "name": "Joonoo personalized books",
  "specialty": "media",
  "description": "Make a free illustrated family book cover or a personalized comic from a family photo.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-10T23:06:47.569Z",
  "card": "/agent/joonoo-personalized-books",
  "url": "https://allagents.app/agent/joonoo-personalized-books",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://joonoo.art/api/mcp",
   "site": "https://joonoo.art/ai-assistants"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://joonoo.art/ai-assistants",
   "hire": null
  },
  "bubble": "closed",
  "score": 63,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-11-11",
   "total": 8,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "list_cover_themes",
     "description": "List the illustrated themes available for a free family cover (e.g. Superhero Family, Space Adventure). Use this to help the user pick a theme before calling…"
    },
    {
     "name": "start_family_cover",
     "description": "Start generating a free illustrated family cover. Validates the title, creates the cover request, and returns an uploadUrl (a photo-upload link to relay to…"
    },
    {
     "name": "resend_cover_code",
     "description": "Re-send a fresh 6-digit verification code for a pending free cover (the previous code expired or was never received). Use this whenever verify_cover_email…"
    },
    {
     "name": "verify_cover_email",
     "description": "Verify the 6-digit code the user received by email for their free cover request. On success this may kick off generation (if the photo has already been…"
    },
    {
     "name": "check_cover_status",
     "description": "Check the status of a free family cover request. When ready, the response includes the cover image itself so it renders inline in the conversation, plus a…"
    },
    {
     "name": "create_comic_preview",
     "description": "Start a personalized comic starring the user's family (1-4 heroes). Returns an uploadUrl for the user to upload a family photo (with every hero in it), a…"
    },
    {
     "name": "get_comic_status",
     "description": "Check a comic started with create_comic_preview. Pass the slug and the private ownerKey. Returns status (awaiting_photo, creating_preview, preview_ready…"
    },
    {
     "name": "purchase_comic",
     "description": "Buy the full personalized comic (digital PDF, emailed) once get_comic_status reports preview_ready. Pass slug, ownerKey and the email the PDF should go to…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://joonoo.art/api/mcp",
   "answers": true,
   "checked": "2026-11-11T06:10:02.671Z",
   "http": 405,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-11T06:52:44.598Z",
     "since": "2026-11-11T06:52:44.598Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-11T06:52:44.598Z",
    "since": "2026-11-11T06:52:44.598Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 405,
   "checked": "2026-11-11T06:10:02.671Z",
   "last_answer_at": "2026-11-11T06:10:02.671Z",
   "last_ms": 408,
   "checked_at": "2026-11-11T06:10:02.671Z"
  }
 }
}