{"apiVersion":"v1","directorySlug":"vibodj-mcp-9681eff030","title":"The Planning App for Wedding and Event DJs","description":null,"pageUrl":"https://www.mcpbundles.com/skills/vibodj-mcp-9681eff030","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.vibodj.com/mcp","hostedMcpUrl":null,"toolCount":184,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.vibodj/vibodj-mcp-9681eff030","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"complete_login","description":"Wait for the user to finish browser approval started by start_login. Pass BOTH the state and completionCode returned by start_login. Resolves when the browser POSTs tokens, or fails on timeout (120s).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["state","completionCode"],"properties":{"state":{"type":"string"},"completionCode":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"complete_login","displayName":"complete_login","title":"complete_login"},{"name":"cancel_login","description":"Cancel a pending browser-based login started by start_login.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["state","completionCode"],"properties":{"state":{"type":"string"},"completionCode":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"cancel_login","displayName":"cancel_login","title":"cancel_login"},{"name":"logout","description":"Sign out and clear the current session.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"logout","displayName":"logout","title":"logout"},{"name":"auth_status","description":"Check whether the MCP server is currently authenticated and which environment it targets.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"auth_status","displayName":"auth_status","title":"auth_status"},{"name":"get_current_user","description":"Get the currently authenticated user's profile (name, email, role, settings)","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_current_user","displayName":"get_current_user","title":"get_current_user"},{"name":"get_event","description":"Get detailed information about a specific event by its ID.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"eventId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event","displayName":"get_event","title":"get_event"},{"name":"get_event_sections","description":"Get all timeline sections for an event (name, time, song count, progress).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"eventId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event_sections","displayName":"get_event_sections","title":"get_event_sections"},{"name":"get_section_songs","description":"Get songs in a specific event section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId"],"properties":{"skip":{"type":"number","default":0},"limit":{"type":"number","default":50},"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_section_songs","displayName":"get_section_songs","title":"get_section_songs"},{"name":"delete_event","description":"Soft-delete an event (moves it to history). The event can be restored with restore_event, or permanently removed with delete_event_forever.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"eventId":{"type":"string"}},"additionalProperties":false},"logicalName":"delete_event","displayName":"delete_event","title":"delete_event","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_event_forever","description":"Permanently delete an event. The event must be soft-deleted first (in history). This cannot be undone.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"eventId":{"type":"string"}},"additionalProperties":false},"logicalName":"delete_event_forever","displayName":"delete_event_forever","title":"delete_event_forever","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_notifications_count","description":"Get the number of unread notifications. Optionally filter by event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"eventId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_notifications_count","displayName":"get_notifications_count","title":"get_notifications_count"},{"name":"get_notifications","description":"Get recent notifications. Optionally filter by event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"skip":{"type":"number","default":0},"limit":{"type":"number","default":20},"eventId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_notifications","displayName":"get_notifications","title":"get_notifications"},{"name":"mark_notifications_read","description":"Mark notifications as read. Pass specific notification IDs, or omit to mark all as read.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"eventId":{"type":"string"},"notificationIds":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}],"default":[]}},"additionalProperties":false},"logicalName":"mark_notifications_read","displayName":"mark_notifications_read","title":"mark_notifications_read","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_event_custom_notifications","description":"Get all custom notifications for an event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"eventId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event_custom_notifications","displayName":"get_event_custom_notifications","title":"get_event_custom_notifications"},{"name":"get_template_custom_notifications","description":"Get all custom notifications for a template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId"],"properties":{"templateId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_template_custom_notifications","displayName":"get_template_custom_notifications","title":"get_template_custom_notifications"},{"name":"remove_event_custom_notification","description":"Remove a custom notification from an event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","customNotificationId"],"properties":{"eventId":{"type":"string"},"customNotificationId":{"type":"string"}},"additionalProperties":false},"logicalName":"remove_event_custom_notification","displayName":"remove_event_custom_notification","title":"remove_event_custom_notification","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"remove_template_custom_notification","description":"Remove a custom notification from a template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId","customNotificationId"],"properties":{"templateId":{"type":"string"},"customNotificationId":{"type":"string"}},"additionalProperties":false},"logicalName":"remove_template_custom_notification","displayName":"remove_template_custom_notification","title":"remove_template_custom_notification","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"search_songs","description":"Search for songs by query. Returns matching songs with title, artist, thumbnails, and streaming links.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId","query"],"properties":{"limit":{"type":"number","default":20},"query":{"type":"string"},"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_songs","displayName":"search_songs","title":"search_songs"},{"name":"remove_song","description":"Remove one or more songs from an event section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId","songIds"],"properties":{"eventId":{"type":"string"},"songIds":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"sectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"remove_song","displayName":"remove_song","title":"remove_song","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_section","description":"Create a new timeline section in an event. Section types: 'simple' (regular) or 'headline' (group header).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","name"],"properties":{"name":{"type":"string"},"time":{"type":"string"},"type":{"enum":["simple","headline"],"type":"string","default":"simple"},"eventId":{"type":"string"}},"additionalProperties":false},"logicalName":"create_section","displayName":"create_section","title":"create_section","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_section","description":"Update an existing timeline section (name, time, description, note).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId"],"properties":{"name":{"type":"string"},"note":{"type":"string"},"time":{"type":"string"},"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"update_section","displayName":"update_section","title":"update_section","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_section","description":"Delete a timeline section from an event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId"],"properties":{"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"delete_section","displayName":"delete_section","title":"delete_section","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"reorder_sections","description":"Move a section to a new position in the event timeline. Source is placed AFTER target. Omit targetSectionId to move to 1st position (top).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sourceSectionId"],"properties":{"eventId":{"type":"string"},"sourceSectionId":{"type":"string"},"targetSectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"reorder_sections","displayName":"reorder_sections","title":"reorder_sections","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_section_questions","description":"Get Q&A questions for an event section. Filter by status: 'all', 'answered', or 'notAnswered'.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId"],"properties":{"status":{"enum":["all","answered","notAnswered"],"type":"string","default":"all"},"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_section_questions","displayName":"get_section_questions","title":"get_section_questions"},{"name":"get_invite_link","description":"Generate a shareable invite link for an event. Use 'guest' type for guest invites and 'host' type for host invites.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","linkType"],"properties":{"eventId":{"type":"string"},"linkType":{"enum":["guest","host"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_invite_link","displayName":"get_invite_link","title":"get_invite_link"},{"name":"get_user","description":"Get another user's profile by their ID.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["userId"],"properties":{"userId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_user","displayName":"get_user","title":"get_user"},{"name":"get_available_event_djs","description":"Get DJs available to assign to an event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"query":{"type":"string"},"eventId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_available_event_djs","displayName":"get_available_event_djs","title":"get_available_event_djs"},{"name":"invite_user_via_email","description":"Invite users to an event via email.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","type","text","emails"],"properties":{"text":{"type":"string"},"type":{"enum":["host","guest","dj"],"type":"string"},"emails":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"eventId":{"type":"string"}},"additionalProperties":false},"logicalName":"invite_user_via_email","displayName":"invite_user_via_email","title":"invite_user_via_email","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"invite_dj","description":"Invite a new DJ to the platform.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["djName","email"],"properties":{"email":{"type":"string"},"djName":{"type":"string"}},"additionalProperties":false},"logicalName":"invite_dj","displayName":"invite_dj","title":"invite_dj","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"remove_user_from_event","description":"Remove a user from an event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","userId"],"properties":{"userId":{"type":"string"},"eventId":{"type":"string"}},"additionalProperties":false},"logicalName":"remove_user_from_event","displayName":"remove_user_from_event","title":"remove_user_from_event","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"change_user_type_in_event","description":"Change a user's role in an event (e.g., promote guest to host).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","userId","type"],"properties":{"type":{"enum":["host","guest","dj"],"type":"string"},"userId":{"type":"string"},"eventId":{"type":"string"}},"additionalProperties":false},"logicalName":"change_user_type_in_event","displayName":"change_user_type_in_event","title":"change_user_type_in_event","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"leave_event","description":"Leave an event (current user removes themselves).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"eventId":{"type":"string"}},"additionalProperties":false},"logicalName":"leave_event","displayName":"leave_event","title":"leave_event","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"join_event_via_deep_link","description":"Join an event using a full deep link URL (e.g., from get_invite_link).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["deepLink"],"properties":{"deepLink":{"type":"string"}},"additionalProperties":false},"logicalName":"join_event_via_deep_link","displayName":"join_event_via_deep_link","title":"join_event_via_deep_link","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"toggle_assign_dj_to_event","description":"Assign or unassign a DJ to/from an event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","djId"],"properties":{"djId":{"type":"string"},"eventId":{"type":"string"}},"additionalProperties":false},"logicalName":"toggle_assign_dj_to_event","displayName":"toggle_assign_dj_to_event","title":"toggle_assign_dj_to_event","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_application_color","description":"Update the branding/application color for the current user or company.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["applicationColor"],"properties":{"applicationColor":{"type":"string"}},"additionalProperties":false},"logicalName":"update_application_color","displayName":"update_application_color","title":"update_application_color","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_child_dj","description":"Get a child DJ's profile by their user ID. Available for company DJ accounts.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["userId"],"properties":{"userId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_child_dj","displayName":"get_child_dj","title":"get_child_dj"},{"name":"upload_user_photo","description":"Upload a profile photo for the current user. Provide exactly one of: file path, URL, or base64. If the user has a file on their device, use upload_via_browser instead.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"photoUrl":{"type":"string"},"photoPath":{"type":"string"},"photoBase64":{"type":"string"}},"additionalProperties":false},"logicalName":"upload_user_photo","displayName":"upload_user_photo","title":"upload_user_photo","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"upload_user_logo","description":"Upload a logo for the current DJ user. Logo should be square (1:1 aspect ratio). Provide exactly one of: file path, URL, or base64. If the user has a file on their device, use upload_via_browser instead.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"logoUrl":{"type":"string"},"logoPath":{"type":"string"},"logoBase64":{"type":"string"}},"additionalProperties":false},"logicalName":"upload_user_logo","displayName":"upload_user_logo","title":"upload_user_logo","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_default_templates","description":"List all default templates (isDefault = true).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"skip":{"type":"number","default":0},"limit":{"type":"number","default":20},"query":{"type":"string"},"typeId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_default_templates","displayName":"get_default_templates","title":"get_default_templates"},{"name":"get_templates_for_events","description":"List templates available for creating events. Optionally filter by event type.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"typeId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_templates_for_events","displayName":"get_templates_for_events","title":"get_templates_for_events"},{"name":"get_template_deep_link","description":"Get a shareable deep link for a template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId"],"properties":{"templateId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_template_deep_link","displayName":"get_template_deep_link","title":"get_template_deep_link"},{"name":"create_template","description":"Create a new user template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["title","typeId"],"properties":{"typeId":{"type":"string"}},"additionalProperties":false},"logicalName":"create_template","displayName":"create_template","title":"create_template","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"clone_template","description":"Clone (duplicate) a template with a new title. IMPORTANT: This is NOT idempotent — calling it twice creates two separate clones. Never retry on timeout; instead check get_all_templates to verify.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId","title"],"properties":{"templateId":{"type":"string"}},"additionalProperties":false},"logicalName":"clone_template","displayName":"clone_template","title":"clone_template","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_template","description":"Delete a template. This action cannot be undone.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId"],"properties":{"templateId":{"type":"string"}},"additionalProperties":false},"logicalName":"delete_template","displayName":"delete_template","title":"delete_template","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"save_event_as_template","description":"Save an existing event as a reusable template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","title"],"properties":{"eventId":{"type":"string"}},"additionalProperties":false},"logicalName":"save_event_as_template","displayName":"save_event_as_template","title":"save_event_as_template","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"change_event_template","description":"Change the template used by an event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","templateId"],"properties":{"eventId":{"type":"string"},"templateId":{"type":"string"}},"additionalProperties":false},"logicalName":"change_event_template","displayName":"change_event_template","title":"change_event_template","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"toggle_public_template","description":"Share or unshare a template with the Vibo platform.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId"],"properties":{"templateId":{"type":"string"}},"additionalProperties":false},"logicalName":"toggle_public_template","displayName":"toggle_public_template","title":"toggle_public_template","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_template_section","description":"Create a new timeline section in a template. Types: 'simple' (regular) or 'headline' (group header).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId","name"],"properties":{"name":{"type":"string"},"time":{"type":"string"},"type":{"enum":["simple","headline"],"type":"string"},"templateId":{"type":"string"}},"additionalProperties":false},"logicalName":"create_template_section","displayName":"create_template_section","title":"create_template_section","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"remove_template_section","description":"Remove a section from a template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId","sectionId"],"properties":{"sectionId":{"type":"string"},"templateId":{"type":"string"}},"additionalProperties":false},"logicalName":"remove_template_section","displayName":"remove_template_section","title":"remove_template_section","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"clone_template_section","description":"Clone (duplicate) a section within a template. Optionally give the clone a new name.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId","sectionId"],"properties":{"name":{"type":"string"},"sectionId":{"type":"string"},"templateId":{"type":"string"}},"additionalProperties":false},"logicalName":"clone_template_section","displayName":"clone_template_section","title":"clone_template_section","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"clone_template_section_question","description":"Clone (duplicate) a question within a template section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId","sectionId","questionId"],"properties":{"sectionId":{"type":"string"},"questionId":{"type":"string"},"templateId":{"type":"string"}},"additionalProperties":false},"logicalName":"clone_template_section_question","displayName":"clone_template_section_question","title":"clone_template_section_question","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_template_section_question","description":"Delete a question from a template section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId","sectionId","questionId"],"properties":{"sectionId":{"type":"string"},"questionId":{"type":"string"},"templateId":{"type":"string"}},"additionalProperties":false},"logicalName":"delete_template_section_question","displayName":"delete_template_section_question","title":"delete_template_section_question","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_favorite_sections","description":"Get your favorite (reusable) sections. Supports search and pagination.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"skip":{"type":"number","default":0},"limit":{"type":"number","default":20},"query":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_favorite_sections","displayName":"get_favorite_sections","title":"get_favorite_sections"},{"name":"create_favorite_section","description":"Create a new favorite (reusable) section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name"],"properties":{"name":{"type":"string"},"type":{"enum":["simple","headline"],"type":"string","default":"simple"}},"additionalProperties":false},"logicalName":"create_favorite_section","displayName":"create_favorite_section","title":"create_favorite_section","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_favorite_section","description":"Update an existing favorite section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["favoriteSectionId"],"properties":{"name":{"type":"string"},"note":{"type":"string"},"type":{"enum":["simple","headline"],"type":"string"},"favoriteSectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"update_favorite_section","displayName":"update_favorite_section","title":"update_favorite_section","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"clone_favorite_section","description":"Clone (duplicate) a favorite section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["favoriteSectionId","name"],"properties":{"name":{"type":"string"},"favoriteSectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"clone_favorite_section","displayName":"clone_favorite_section","title":"clone_favorite_section","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"add_section_to_favorites_from_template","description":"Save a template section as a favorite/reusable section template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["templateId","sectionId"],"properties":{"name":{"type":"string"},"sectionId":{"type":"string"},"templateId":{"type":"string"}},"additionalProperties":false},"logicalName":"add_section_to_favorites_from_template","displayName":"add_section_to_favorites_from_template","title":"add_section_to_favorites_from_template","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"add_section_from_favorites_to_template","description":"Add a favorite section template into a template's timeline.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["favoriteSectionId","templateId"],"properties":{"templateId":{"type":"string"},"favoriteSectionId":{"type":"string"},"insertBeforeSectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"add_section_from_favorites_to_template","displayName":"add_section_from_favorites_to_template","title":"add_section_from_favorites_to_template","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_favorite_section_questions","description":"Get all questions in a favorite (reusable) section template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["favoriteSectionId"],"properties":{"favoriteSectionId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_favorite_section_questions","displayName":"get_favorite_section_questions","title":"get_favorite_section_questions"},{"name":"clone_favorite_section_question","description":"Clone (duplicate) a question in a favorite section template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["favoriteSectionId","questionId"],"properties":{"questionId":{"type":"string"},"favoriteSectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"clone_favorite_section_question","displayName":"clone_favorite_section_question","title":"clone_favorite_section_question","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_favorite_section_question","description":"Delete a question from a favorite section template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["favoriteSectionId","questionId"],"properties":{"questionId":{"type":"string"},"favoriteSectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"delete_favorite_section_question","displayName":"delete_favorite_section_question","title":"delete_favorite_section_question","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_event_section_questions_stats","description":"Get question/answer statistics for a specific event section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId"],"properties":{"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event_section_questions_stats","displayName":"get_event_section_questions_stats","title":"get_event_section_questions_stats"},{"name":"clone_event_section_question","description":"Clone (duplicate) a question within an event section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId","questionId"],"properties":{"eventId":{"type":"string"},"sectionId":{"type":"string"},"questionId":{"type":"string"}},"additionalProperties":false},"logicalName":"clone_event_section_question","displayName":"clone_event_section_question","title":"clone_event_section_question","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_event_section_question","description":"Delete a question from an event section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId","questionId"],"properties":{"eventId":{"type":"string"},"sectionId":{"type":"string"},"questionId":{"type":"string"}},"additionalProperties":false},"logicalName":"delete_event_section_question","displayName":"delete_event_section_question","title":"delete_event_section_question","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_event_section_song_ideas","description":"Get all song ideas attached to an event section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId"],"properties":{"skip":{"type":"number","default":0},"limit":{"type":"number","default":20},"query":{"type":"string"},"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event_section_song_ideas","displayName":"get_event_section_song_ideas","title":"get_event_section_song_ideas"},{"name":"get_song_ideas","description":"Get song ideas playlists by source: 'user' (your own), 'vibo' (platform), or 'company' (company DJ).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source"],"properties":{"skip":{"type":"number","default":0},"limit":{"type":"number","default":20},"query":{"type":"string"},"source":{"enum":["user","vibo","company"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_song_ideas","displayName":"get_song_ideas","title":"get_song_ideas"},{"name":"get_song_ideas_by_id","description":"Get a single song ideas playlist by ID.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId"],"properties":{"songIdeasId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_song_ideas_by_id","displayName":"get_song_ideas_by_id","title":"get_song_ideas_by_id"},{"name":"get_song_ideas_songs","description":"Get individual songs within a song ideas playlist.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId"],"properties":{"skip":{"type":"number","default":0},"limit":{"type":"number","default":50},"query":{"type":"string"},"songIdeasId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_song_ideas_songs","displayName":"get_song_ideas_songs","title":"get_song_ideas_songs"},{"name":"get_song_ideas_deep_link","description":"Get a shareable deep link for a song ideas playlist.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId"],"properties":{"songIdeasId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_song_ideas_deep_link","displayName":"get_song_ideas_deep_link","title":"get_song_ideas_deep_link"},{"name":"create_song_ideas","description":"Create a new song ideas playlist.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["title"],"properties":{},"additionalProperties":false},"logicalName":"create_song_ideas","displayName":"create_song_ideas","title":"create_song_ideas","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_song_ideas","description":"Update an existing song ideas playlist. For cover photos, use upload_song_ideas_cover instead. Use spotifyAutoSync to enable/disable automatic Spotify playlist synchronization.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId"],"properties":{"songIdeasId":{"type":"string"},"spotifyAutoSync":{"type":"boolean"}},"additionalProperties":false},"logicalName":"update_song_ideas","displayName":"update_song_ideas","title":"update_song_ideas","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"clone_song_ideas","description":"Clone (duplicate) a song ideas playlist.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId","title"],"properties":{"songIdeasId":{"type":"string"}},"additionalProperties":false},"logicalName":"clone_song_ideas","displayName":"clone_song_ideas","title":"clone_song_ideas","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_song_ideas","description":"Delete a song ideas playlist.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId"],"properties":{"songIdeasId":{"type":"string"}},"additionalProperties":false},"logicalName":"delete_song_ideas","displayName":"delete_song_ideas","title":"delete_song_ideas","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"toggle_public_song_ideas","description":"Toggle a song ideas playlist between public and private.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId"],"properties":{"songIdeasId":{"type":"string"}},"additionalProperties":false},"logicalName":"toggle_public_song_ideas","displayName":"toggle_public_song_ideas","title":"toggle_public_song_ideas","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"add_song_to_song_ideas","description":"Add a song to a song ideas playlist.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId","title","artist","songUrl"],"properties":{"artist":{"type":"string"},"songUrl":{"type":"string"},"viboSongId":{"type":"string"},"songIdeasId":{"type":"string"},"thumbnailUrl":{"type":"string"}},"additionalProperties":false},"logicalName":"add_song_to_song_ideas","displayName":"add_song_to_song_ideas","title":"add_song_to_song_ideas","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"remove_song_from_song_ideas","description":"Remove a song from a song ideas playlist.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId","viboSongId"],"properties":{"viboSongId":{"type":"string"},"songIdeasId":{"type":"string"}},"additionalProperties":false},"logicalName":"remove_song_from_song_ideas","displayName":"remove_song_from_song_ideas","title":"remove_song_from_song_ideas","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"reorder_song_ideas_songs","description":"Reorder songs within a song ideas playlist. Moves source before target. Omit target to move to end.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId","sourceSongId"],"properties":{"songIdeasId":{"type":"string"},"sourceSongId":{"type":"string"},"targetSongId":{"type":"string"}},"additionalProperties":false},"logicalName":"reorder_song_ideas_songs","displayName":"reorder_song_ideas_songs","title":"reorder_song_ideas_songs","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_event_contacts","description":"Get contacts (invited people) for an event with their status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"role":{"enum":["host","guest","dj"],"type":"string"},"skip":{"type":"number","default":0},"limit":{"type":"number","default":50},"status":{"enum":["pending","accepted","declined"],"type":"string"},"eventId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event_contacts","displayName":"get_event_contacts","title":"get_event_contacts"},{"name":"update_event_contact","description":"Update an existing event contact.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["contactId"],"properties":{"role":{"enum":["host","guest","dj"],"type":"string"},"email":{"type":"string"},"lastName":{"type":"string"},"contactId":{"type":"string"},"firstName":{"type":"string"},"phoneCode":{"type":"string"},"phoneNumber":{"type":"string"}},"additionalProperties":false},"logicalName":"update_event_contact","displayName":"update_event_contact","title":"update_event_contact","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"remove_event_contact","description":"Remove a contact from an event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["contactId"],"properties":{"contactId":{"type":"string"}},"additionalProperties":false},"logicalName":"remove_event_contact","displayName":"remove_event_contact","title":"remove_event_contact","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"export_event_contacts_csv","description":"Export event contacts as CSV. Fetches all contacts and returns CSV-formatted data.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"role":{"enum":["host","guest","dj"],"type":"string"},"status":{"enum":["pending","accepted","declined"],"type":"string"},"eventId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"export_event_contacts_csv","displayName":"export_event_contacts_csv","title":"export_event_contacts_csv"},{"name":"resend_invitation_to_contact","description":"Resend an invitation email to a contact.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["contactId","text"],"properties":{"text":{"type":"string"},"contactId":{"type":"string"}},"additionalProperties":false},"logicalName":"resend_invitation_to_contact","displayName":"resend_invitation_to_contact","title":"resend_invitation_to_contact","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_section_comments","description":"Get comments on an event section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId"],"properties":{"skip":{"type":"number","default":0},"sort":{"enum":["asc","desc"],"type":"string","default":"desc"},"limit":{"type":"number","default":50},"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_section_comments","displayName":"get_section_comments","title":"get_section_comments"},{"name":"create_song_comment","description":"Add a comment to a specific song in an event section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId","songId","message"],"properties":{"songId":{"type":"string"},"eventId":{"type":"string"},"message":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"create_song_comment","displayName":"create_song_comment","title":"create_song_comment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_song_comment","description":"Delete a comment from a song.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId","songId","commentId"],"properties":{"songId":{"type":"string"},"eventId":{"type":"string"},"commentId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"delete_song_comment","displayName":"delete_song_comment","title":"delete_song_comment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"clone_event_section","description":"Clone (duplicate) a section within an event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId"],"properties":{"name":{"type":"string"},"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"clone_event_section","displayName":"clone_event_section","title":"clone_event_section","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"add_section_from_favorites_to_event","description":"Add a favorite section template into an event's timeline.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["favoriteSectionId","eventId"],"properties":{"eventId":{"type":"string"},"favoriteSectionId":{"type":"string"},"insertBeforeSectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"add_section_from_favorites_to_event","displayName":"add_section_from_favorites_to_event","title":"add_section_from_favorites_to_event","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"add_section_to_favorites_from_event","description":"Save an event section as a favorite/reusable section template.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId"],"properties":{"name":{"type":"string"},"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"add_section_to_favorites_from_event","displayName":"add_section_to_favorites_from_event","title":"add_section_to_favorites_from_event","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"move_section_songs","description":"Move songs from one event section to another.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sourceSectionId","targetSectionId","songIds"],"properties":{"eventId":{"type":"string"},"songIds":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"sourceSectionId":{"type":"string"},"targetSectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"move_section_songs","displayName":"move_section_songs","title":"move_section_songs","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"reorder_songs","description":"Reorder a song within an event section. Moves source AFTER target. Omit target to move to position 1 (first).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId","sourceSongId"],"properties":{"eventId":{"type":"string"},"sectionId":{"type":"string"},"sourceSongId":{"type":"string"},"targetSongId":{"type":"string"}},"additionalProperties":false},"logicalName":"reorder_songs","displayName":"reorder_songs","title":"reorder_songs","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"toggle_song_like","description":"Like or unlike a song in an event section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId","songId","liked"],"properties":{"liked":{"type":"boolean"},"songId":{"type":"string"},"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"logicalName":"toggle_song_like","displayName":"toggle_song_like","title":"toggle_song_like","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"restore_event","description":"Restore a deleted event.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"eventId":{"type":"string"}},"additionalProperties":false},"logicalName":"restore_event","displayName":"restore_event","title":"restore_event","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_event_types","description":"Get all available event types (wedding, birthday, corporate, etc.).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event_types","displayName":"get_event_types","title":"get_event_types"},{"name":"get_event_statuses","description":"Get all possible event statuses.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event_statuses","displayName":"get_event_statuses","title":"get_event_statuses"},{"name":"get_upcoming_events_where_dj","description":"Get upcoming events where the current user is the assigned DJ.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"skip":{"type":"number","default":0},"limit":{"type":"number","default":20}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_upcoming_events_where_dj","displayName":"get_upcoming_events_where_dj","title":"get_upcoming_events_where_dj"},{"name":"get_planning_sections","description":"Get planning sections for an event (sections with questions/setup).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"eventId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_planning_sections","displayName":"get_planning_sections","title":"get_planning_sections"},{"name":"get_section_songs_stats","description":"Get song statistics for an event section.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionId"],"properties":{"eventId":{"type":"string"},"sectionId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_section_songs_stats","displayName":"get_section_songs_stats","title":"get_section_songs_stats"},{"name":"get_event_file_options","description":"Get PDF/DOCX export options for an event for a specific role preset. Returns section/playlist selections and display settings.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId"],"properties":{"preset":{"enum":["dj","mc","intro","host","vendor"],"type":"string","default":"dj"},"eventId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_event_file_options","displayName":"get_event_file_options","title":"get_event_file_options"},{"name":"get_playlists","description":"Get playlists from a music source (Spotify or Apple Music).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source"],"properties":{"skip":{"type":"number","default":0},"limit":{"type":"number","default":20},"query":{"type":"string"},"source":{"enum":["spotify","appleMusic"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_playlists","displayName":"get_playlists","title":"get_playlists"},{"name":"get_playlist_songs","description":"Get songs from a specific playlist (Spotify or Apple Music).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["playlistId","source"],"properties":{"skip":{"type":"number","default":0},"limit":{"type":"number","default":50},"source":{"enum":["spotify","appleMusic"],"type":"string"},"playlistId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_playlist_songs","displayName":"get_playlist_songs","title":"get_playlist_songs"},{"name":"export_event_to_spotify","description":"Export event section songs to Spotify playlists. Requires Spotify to be connected. Each section becomes a separate playlist.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["eventId","sectionIds"],"properties":{"eventId":{"type":"string"},"sectionIds":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]}},"additionalProperties":false},"logicalName":"export_event_to_spotify","displayName":"export_event_to_spotify","title":"export_event_to_spotify","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"export_song_ideas_to_spotify","description":"Export a song ideas playlist to Spotify.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId"],"properties":{"songIdeasId":{"type":"string"}},"additionalProperties":false},"logicalName":"export_song_ideas_to_spotify","displayName":"export_song_ideas_to_spotify","title":"export_song_ideas_to_spotify","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"export_song_ideas_to_apple_music","description":"Export a song ideas playlist to Apple Music.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["songIdeasId"],"properties":{"songIdeasId":{"type":"string"}},"additionalProperties":false},"logicalName":"export_song_ideas_to_apple_music","displayName":"export_song_ideas_to_apple_music","title":"export_song_ideas_to_apple_music","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"import_spotify_playlist","description":"Import a Spotify playlist directly as a new song ideas collection. Requires Spotify to be connected.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["playlistId"],"properties":{"playlistId":{"type":"string"}},"additionalProperties":false},"logicalName":"import_spotify_playlist","displayName":"import_spotify_playlist","title":"import_spotify_playlist","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_provider_rate_limits","description":"Returns current Spotify/Apple Music provider quota usage. Call before batch exports or imports to avoid throttling. Each provider is limited to 20 calls/minute (sliding window), protecting against upstream API quotas.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_provider_rate_limits","displayName":"get_provider_rate_limits","title":"get_provider_rate_limits"},{"name":"get_actions_detail","description":"Drill into a specific batch to see individual actions. Use a batchId from list_recent_actions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["batchId"],"properties":{"batchId":{"type":"integer","minimum":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_actions_detail","displayName":"get_actions_detail","title":"get_actions_detail"},{"name":"search_stock_images","description":"Search for royalty-free stock images on Unsplash. Returns image URLs and metadata. Requires UNSPLASH_ACCESS_KEY env var.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"query":{"type":"string"},"perPage":{"type":"number","default":5},"orientation":{"enum":["landscape","portrait","squarish"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_stock_images","displayName":"search_stock_images","title":"search_stock_images"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=The-Planning-App-for-Wedding-and-Event-DJs&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3Audmlib2RqLmNvbS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22The-Planning-App-for-Wedding-and-Event-DJs%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.vibodj.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22The-Planning-App-for-Wedding-and-Event-DJs%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.vibodj.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=The+Planning+App+for+Wedding+and+Event+DJs&connectorUrl=https%3A%2F%2Fmcp.vibodj.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"The-Planning-App-for-Wedding-and-Event-DJs\" --url \"https://mcp.vibodj.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/vibodj-mcp-9681eff030","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/vibodj-mcp-9681eff030/tools/{tool}","mcpServerUrl":"https://mcp.vibodj.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/vibodj-mcp-9681eff030?live=1"}