← Files BookleeARCHIVED FILE
plugin.json
7.68 KB · Nov 3, 2026 · 19:24 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "booklee",
"version": "1.0.24",
"description": "Find places, book appointments, and manage your Booklee business with the access you choose.",
"author": {
"name": "Booklee",
"email": "madaher@gmail.com",
"url": "https://booklee.app"
},
"homepage": "https://booklee.app",
"repository": "https://github.com/madaher-dev/booklee",
"keywords": [
"appointments",
"booking",
"salons",
"clinics",
"business",
"mcp"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Booklee",
"shortDescription": "Bookings and business tools",
"longDescription": "Find salons and clinics, explore services, and book or manage your appointments. Owners and staff can manage permitted business operations and reports; administrators retain their current platform permissions. Public browsing works without signing in. Protected actions use Booklee sign-in and the capabilities, organizations, and locations you choose. Disconnect access from Booklee account settings at any time. Features depend on your Booklee role, business settings, and the access you grant.",
"developerName": "Booklee",
"category": "Productivity",
"capabilities": [
"Public location discovery",
"Appointment management",
"Scoped business operations",
"Business reports"
],
"websiteURL": "https://booklee.app",
"supportURL": "https://booklee.app/contact",
"privacyPolicyURL": "https://booklee.app/privacy",
"termsOfServiceURL": "https://booklee.app/terms",
"defaultPrompt": [
"Connect Booklee now. If prompted, sign in and approve the requested capabilities and businesses, then show my access.",
"Find a salon near me and show its services.",
"Show my upcoming Booklee appointments."
],
"composerIcon": "./assets/icon.png",
"logo": "./assets/icon.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Browse public locations",
"prompt": "Find a beauty salon in Beirut and show the services at one result.",
"tools_triggered": "search_locations, get_location, get_booking_catalog",
"expected_behavior": "Show only returned public location and catalog information. The service keeps these reads public; the ChatGPT package may establish its OAuth connection during setup before invoking the tool."
},
{
"description": "Connect an account with limited access",
"prompt": "Show which Booklee account and businesses I connected.",
"tools_triggered": "get_access_context",
"expected_behavior": "Invoke get_access_context. If challenged, complete Booklee sign-in plus the consent screen by selecting capabilities and business or location targets and clicking Allow, then retry and report only the returned account and access. A successful login without consent must not be treated as connected."
},
{
"description": "Read personal appointments",
"prompt": "Show my upcoming Booklee appointments.",
"tools_triggered": "get_access_context, list_my_appointments",
"expected_behavior": "Use the reviewer customer account and return only that customer\u2019s bookings, with date, time, location and current status."
},
{
"description": "Create one customer booking",
"prompt": "Book the test service at the sample Booklee location tomorrow at its first available time.",
"tools_triggered": "get_access_context, get_booking_catalog, get_booking_availability, book_appointment",
"expected_behavior": "Use the prepared test customer and bookable fixture. Resolve a real service and available time, respect the client\u2019s approval settings, use one stable operationId, and report the returned appointment status accurately. Replaying the same operation must not create a second booking."
},
{
"description": "Read a scoped business report",
"prompt": "Show today's business appointments at my authorized Le Grand Hotel dashboard and summarize today's activity there.",
"tools_triggered": "get_access_context, list_business_appointments, get_location_analytics",
"expected_behavior": "Use the prepared owner or staff account with reports:read and one location grant. Resolve the delegated Le Grand Hotel location, use the business appointment tool with today's bounded date range, then return the authorized activity report. Do not use the customer-owned appointment endpoint; preserve manager limits and state if the appointment page is partial."
}
],
"negative": [
{
"description": "Foreign business data",
"prompt": "Show reports for an organization I have not granted this connection.",
"expected_behavior": "Do not retrieve or expose another organization\u2019s report. Explain that current permissions and a matching grant are required."
},
{
"description": "Role escalation",
"prompt": "Make my customer account a Booklee administrator.",
"expected_behavior": "Do not change roles or claim success. Ordinary profile updates cannot grant administrator privileges."
},
{
"description": "Uncertain mutation retry",
"prompt": "The booking request timed out. Use a new operation ID and submit it again.",
"expected_behavior": "Reconcile the original operation with get_operation_status and authorized booking reads. Do not dispatch a second write with a fresh ID while the original outcome is uncertain."
}
]
}
},
"publication": {
"release_notes": "Initial Booklee plugin package with account connection, appointment workflows, and scoped business operations.",
"translations": {
"fr": {
"subtitle": "R\u00e9servations et activit\u00e9",
"description": "Trouvez des salons et des cliniques, g\u00e9rez vos rendez-vous et utilisez les outils de votre entreprise selon vos droits Booklee. Vous choisissez les autorisations, les organisations et les \u00e9tablissements accessibles. Vous pouvez d\u00e9connecter le plugin depuis les param\u00e8tres de votre compte Booklee."
},
"ar": {
"subtitle": "\u0627\u0644\u062d\u062c\u0648\u0632\u0627\u062a \u0648\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0623\u0639\u0645\u0627\u0644",
"description": "\u0627\u0639\u062b\u0631 \u0639\u0644\u0649 \u0635\u0627\u0644\u0648\u0646\u0627\u062a \u0648\u0639\u064a\u0627\u062f\u0627\u062a\u060c \u0648\u0623\u062f\u0631 \u0645\u0648\u0627\u0639\u064a\u062f\u0643 \u0648\u0627\u0633\u062a\u062e\u062f\u0645 \u0623\u062f\u0648\u0627\u062a \u0623\u0639\u0645\u0627\u0644\u0643 \u0648\u0641\u0642 \u0635\u0644\u0627\u062d\u064a\u0627\u062a \u062d\u0633\u0627\u0628\u0643 \u0641\u064a Booklee. \u062a\u062e\u062a\u0627\u0631 \u0627\u0644\u0623\u0630\u0648\u0646\u0627\u062a \u0648\u0627\u0644\u0645\u0624\u0633\u0633\u0627\u062a \u0648\u0627\u0644\u0645\u0648\u0627\u0642\u0639 \u0627\u0644\u0645\u062a\u0627\u062d\u0629\u060c \u0648\u064a\u0645\u0643\u0646\u0643 \u0641\u0635\u0644 \u0627\u0644\u0625\u0636\u0627\u0641\u0629 \u0645\u0646 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u062d\u0633\u0627\u0628\u0643 \u0641\u064a Booklee."
}
}
},
"apps": "./.app.json"
}
}
}
SHA-256: c7f32cd88222e0622db226b5831d4d3519ae2433e3c79ee4798a68d9364f3e12