# How to integrate Bookingmood MCP with Autogen

```json
{
  "title": "How to integrate Bookingmood MCP with Autogen",
  "toolkit": "Bookingmood",
  "toolkit_slug": "bookingmood",
  "framework": "AutoGen",
  "framework_slug": "autogen",
  "url": "https://composio.dev/toolkits/bookingmood/framework/autogen",
  "markdown_url": "https://composio.dev/toolkits/bookingmood/framework/autogen.md",
  "updated_at": "2026-05-12T10:03:36.279Z"
}
```

## Introduction

This guide walks you through connecting Bookingmood to AutoGen using the Composio tool router. By the end, you'll have a working Bookingmood agent that can create a new booking widget for summer rentals, list all booking widgets configured for your organization, update guest information for a specific booking through natural language commands.
This guide will help you understand how to give your AutoGen agent real control over a Bookingmood account through Composio's Bookingmood MCP server.
Before we dive in, let's take a quick look at the key ideas and tools involved.

## Also integrate Bookingmood with

- [OpenAI Agents SDK](https://composio.dev/toolkits/bookingmood/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/bookingmood/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/bookingmood/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/bookingmood/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/bookingmood/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/bookingmood/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/bookingmood/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/bookingmood/framework/cli)
- [Google ADK](https://composio.dev/toolkits/bookingmood/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/bookingmood/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/bookingmood/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/bookingmood/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/bookingmood/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/bookingmood/framework/crew-ai)

## TL;DR

Here's what you'll learn:
- Get and set up your OpenAI and Composio API keys
- Install the required dependencies for Autogen and Composio
- Initialize Composio and create a Tool Router session for Bookingmood
- Wire that MCP URL into Autogen using McpWorkbench and StreamableHttpServerParams
- Configure an Autogen AssistantAgent that can call Bookingmood tools
- Run a live chat loop where you ask the agent to perform Bookingmood operations

## What is AutoGen?

Autogen is a framework for building multi-agent conversational AI systems from Microsoft. It enables you to create agents that can collaborate, use tools, and maintain complex workflows.
Key features include:
- Multi-Agent Systems: Build collaborative agent workflows
- MCP Workbench: Native support for Model Context Protocol tools
- Streaming HTTP: Connect to external services through streamable HTTP
- AssistantAgent: Pre-built agent class for tool-using assistants

## What is the Bookingmood MCP server, and what's possible with it?

The Bookingmood MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Bookingmood account. It provides structured and secure access to your booking management system, so your agent can perform actions like creating widgets, updating bookings, listing organizations, and managing booking records on your behalf.
- Automated booking widget creation: Let your agent generate new, customized booking widgets to embed on your website or share with guests in seconds.
- Efficient booking details management: Update or delete booking details based on guest info, filters, or changing requirements—no manual edits needed.
- Organization and resource overview: List all organizations tied to your Bookingmood account, helping you keep tabs on every property or business unit managed.
- Widget configuration retrieval: Instantly fetch available booking widget configurations, making it easy to review, reuse, or modify existing widgets for different rental scenarios.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `BOOKINGMOOD_CREATE_PRODUCT` | Create Product | Tool to create a new bookable product in the organization. Use this when you need to register a new rental property, accommodation, or bookable item in the system. This action will automatically update your subscription based on the product count. |
| `BOOKINGMOOD_CREATE_SITE_PAGES` | Create Site Pages | Tool to create new site pages. Use when you need to add pages to a site in the organization. |
| `BOOKINGMOOD_BOOKINGMOOD_CREATE_WIDGET` | Create Booking Widget | Tool to create a new booking widget. Use after preparing widget parameters. |
| `BOOKINGMOOD_DELETE_ATTRIBUTES` | Delete Attributes | Tool to delete attributes matching given filters. Use after confirming which attribute records to remove. |
| `BOOKINGMOOD_DELETE_BOOKING_DETAILS` | Delete Booking Details | Tool to delete booking details matching given filters. Use after confirming which booking detail records to remove. |
| `BOOKINGMOOD_DELETE_BOOKINGS` | Delete Bookings | Tool to delete bookings matching given filters. Use when you need to remove bookings from the system. At least one filter parameter is required to prevent accidental deletion of all bookings. |
| `BOOKINGMOOD_DELETE_CALENDAR_EVENT_NOTES` | Delete Calendar Event Notes | Tool to delete calendar event notes matching given filters. Use after confirming which notes to remove. At least one filter parameter is required to prevent accidental bulk deletion. |
| `BOOKINGMOOD_DELETE_CALENDAR_EVENTS` | Delete Calendar Events | Tool to delete calendar events matching given filters. Use after confirming which calendar event records to remove. |
| `BOOKINGMOOD_DELETE_CALENDAR_EVENT_TASKS` | Delete Calendar Event Tasks | Tool to delete calendar event tasks matching given filters. Use after confirming which calendar event task records to remove. |
| `BOOKINGMOOD_DELETE_CAPACITIES` | Delete Capacities | Tool to delete capacities matching given filters. Use when you need to remove capacity records from the system. |
| `BOOKINGMOOD_DELETE_CAPACITY_GROUP_DEPS` | Delete Capacity Group Dependencies | Tool to delete capacity group dependencies matching given filters. Use after confirming which dependency records to remove. |
| `BOOKINGMOOD_DELETE_CAPACITY_GROUPS` | Delete Capacity Groups | Tool to delete capacity groups matching given filters. Use after confirming which capacity group records to remove. |
| `BOOKINGMOOD_DELETE_CONTACT_BOOKINGS` | Delete Contact Bookings | Tool to delete contact bookings matching given filters. Use after confirming which contact booking records to remove. |
| `BOOKINGMOOD_DELETE_CONTACTS` | Delete Contacts | Tool to delete customer contacts from the system. Use after confirming which contacts to remove. Supports filter patterns like email=like.%test.com to delete test contacts. |
| `BOOKINGMOOD_DELETE_COUPON_PRODUCTS` | Delete Coupon Products | Tool to delete coupon product links matching given filters. Use when you need to remove associations between coupons and products. At least one filter parameter is required. |
| `BOOKINGMOOD_DELETE_COUPONS` | Delete Coupons | Tool to delete coupons matching given filters. Use after confirming which coupons to remove. Supports PostgREST-style filtering on all fields. |
| `BOOKINGMOOD_DELETE_COUPON_SERVICES` | Delete Coupon Services | Tool to delete coupon service links matching given filters. Use after confirming which coupon-service associations to remove. Supports PostgREST-style filtering on all fields. |
| `BOOKINGMOOD_DELETE_COUPON_USES` | Delete Coupon Uses | Tool to delete coupon use records matching given filters. Use after confirming which coupon uses to remove. Supports PostgREST-style filtering on all fields. |
| `BOOKINGMOOD_DELETE_EMAIL_TEMPLATES` | Delete Email Templates | Tool to delete email templates matching given filters. Use after confirming which email template records to remove. |
| `BOOKINGMOOD_DELETE_EXTERNAL_CALENDARS` | Delete External Calendars | Tool to delete external calendars by ID. Use when you need to remove an external calendar integration from the system. |
| `BOOKINGMOOD_DELETE_INVOICES` | Delete Invoices | Tool to delete an invoice by its ID. Use when you need to remove an invoice from the system. The API requires a valid UUID and uses PostgREST filter format. |
| `BOOKINGMOOD_DELETE_LINE_ITEMS` | Delete Line Items | Tool to delete line items matching the given filters. Use when you need to remove line items from bookings. Returns the deleted line items. |
| `BOOKINGMOOD_DELETE_LINE_ITEM_TAXES` | Delete Line Item Taxes | Tool to delete line item taxes matching given filters. Use when you need to remove line item tax records from the system. |
| `BOOKINGMOOD_DELETE_PAYMENTS` | Delete Payments | Tool to delete payments matching given filters. Use when you need to remove payments from the system. At least one filter parameter is required to prevent accidental deletion of all payments. Supported filters: id, invoice_id, or booking_id (all in UUID format). |
| `BOOKINGMOOD_DELETE_PERMISSIONS` | Delete Permissions | Tool to delete permissions matching given filters. Use after confirming which permissions to remove. At least one filter parameter is required (DELETE requires WHERE clause). |
| `BOOKINGMOOD_DELETE_PRICING_WIDGETS` | Delete Pricing Widgets | Tool to delete pricing widgets matching given filters. Use after confirming which pricing widgets to remove. Requires ID filter for safety. |
| `BOOKINGMOOD_DELETE_PRODUCT_ATTR_OPTIONS` | Delete Product Attribute Options | Tool to delete product attribute options matching given filters. Use when you need to remove product attribute option records from the system. At least one filter parameter is required. |
| `BOOKINGMOOD_DELETE_PRODUCT_CONFIGURATIONS` | Delete Product Configurations | Tool to delete product configurations matching given filters. Use when you need to remove product configuration records from the system. |
| `BOOKINGMOOD_DELETE_PRODUCT_REPLY_ADDRS` | Delete Product Reply-To Addresses | Tool to delete product reply-to addresses matching given filters. Use after confirming which reply-to address records to remove. |
| `BOOKINGMOOD_DELETE_PRODUCT_SERVICES` | Delete Product Services | Tool to delete product service links matching given filters. Use after confirming which product-service associations to remove. Supports PostgREST-style filtering on all fields. |
| `BOOKINGMOOD_DELETE_REPLY_TO_ADDRESSES` | Delete Reply-To Addresses | Tool to delete reply-to addresses matching given filters. Use after confirming which reply-to addresses to remove. Supports PostgREST-style filtering. |
| `BOOKINGMOOD_DELETE_REVIEW_PRODUCTS` | Delete Review Products | Tool to delete review products matching given filters. Use when you need to remove review product records from the system. At least one filter parameter is required. |
| `BOOKINGMOOD_DELETE_REVIEWS` | Delete Reviews | Tool to delete reviews matching given filters. Use when you need to remove review records from the system. At least one filter parameter is required. |
| `BOOKINGMOOD_DELETE_REVIEW_WIDGET_LISTINGS` | Delete Review Widget Listings | Tool to delete review widget listings matching given filters. Use after confirming which review widget listings to remove. Supports PostgREST-style filtering. |
| `BOOKINGMOOD_DELETE_SERVICES` | Delete Services | Tool to delete services matching given filters. Use after confirming which services to remove. Supports PostgREST-style filtering with operators like eq, in, etc. |
| `BOOKINGMOOD_DELETE_SITE_NAV_ITEMS` | Delete Site Navigation Items | Tool to delete site navigation items matching given filters. Use after confirming which navigation items to remove. DELETE operation requires a WHERE clause (at least one filter parameter). |
| `BOOKINGMOOD_DELETE_SITE_PAGES` | Delete Site Pages | Tool to delete site pages matching given filters. Use after confirming which site pages to remove. DELETE endpoint requires a WHERE clause via filter parameters. |
| `BOOKINGMOOD_DELETE_TAXES` | Delete Taxes | Tool to delete taxes matching given filters. Use after confirming which tax records to remove. |
| `BOOKINGMOOD_DELETE_WEBHOOKS` | Delete Webhooks | Tool to delete webhooks matching given filters. Use after confirming which webhooks to remove. Supports PostgREST-style filtering. |
| `BOOKINGMOOD_DELETE_WIDGET_LISTINGS` | Delete Widget Listings | Tool to delete widget listings matching given filters. Use after confirming which widget listings to remove. Supports PostgREST-style filtering. |
| `BOOKINGMOOD_DELETE_WIDGETS` | Delete Widgets | Tool to delete widgets from the system. Use when you need to remove widget configurations. Supports PostgREST filtering with operators like id=eq.uuid. |
| `BOOKINGMOOD_INVITE_MEMBER` | Invite Member | Tool to invite a member to your organization. The member will receive an email with a link to accept the invitation. Use this when you need to add new team members or grant access to your BookingMood organization. |
| `BOOKINGMOOD_LIST_ATTRIBUTE_OPTIONS` | List Attribute Options | List attribute options with filtering and pagination support. Use this to retrieve selectable options for booking attributes, with support for filtering by attribute ID, name, creation date, and display order. Supports pagination via limit and offset parameters with a maximum of 1000 results per request. |
| `BOOKINGMOOD_LIST_ATTRIBUTES` | List Attributes | Tool to retrieve custom attributes defined for products. Use when you need to list all available attributes with optional field filtering via the select parameter. Attributes are custom fields that can be associated with products in the Bookingmood system. |
| `BOOKINGMOOD_LIST_BOOKING_DETAILS` | List Booking Details | List booking details with filtering and pagination. Booking details contain guest-filled form field data such as names, contact info, and custom field values. Use this to retrieve booking detail records, optionally filtered by booking ID, service ID, timestamps, or customer values. Supports PostgREST query operators for flexible filtering. |
| `BOOKINGMOOD_LIST_BOOKINGS` | List Bookings | Tool to retrieve bookings from the system with optional filtering and pagination. Returns a list of booking records including details like reference codes, organization info, timestamps, and payment information. Use this when you need to list bookings, search by reference or organization, or paginate through booking records. |
| `BOOKINGMOOD_LIST_BOOKING_UPDATES` | List Booking Updates | Tool to list booking updates with filtering and pagination. Use when you need to retrieve booking update history, track changes to bookings, or audit booking modifications. Supports PostgREST query parameters for flexible filtering by ID, booking ID, user ID, and creation timestamp. |
| `BOOKINGMOOD_LIST_CALENDAR_EVENT_NOTES` | List Calendar Event Notes | Tool to list calendar event notes with filtering and pagination. Use when you need to retrieve notes attached to calendar events, optionally filtered by author, event, timestamps, or content. Supports PostgREST filter operators for advanced querying. |
| `BOOKINGMOOD_LIST_CALENDAR_EVENTS` | List Calendar Events | Tool to list calendar events with filtering and pagination. Use this to retrieve events visible on the timeline (bookings, blocked periods, notes), optionally filtering by status, type, date ranges, or other criteria. Supports PostgREST-style filtering and pagination via limit/offset parameters. |
| `BOOKINGMOOD_LIST_CALENDAR_EVENT_TASKS` | List Calendar Event Tasks | Tool to list calendar event tasks with filtering and pagination. Use this to retrieve tasks associated with calendar events, optionally filtering by calendar event ID, completion status, due dates, or schedule type. Supports PostgREST-style filtering and pagination via limit/offset parameters. |
| `BOOKINGMOOD_LIST_CALENDAR_EVENT_UPDATES` | List Calendar Event Updates | List calendar event updates with filtering and pagination. Use when you need to track changes to calendar events, including status updates, product reassignments, and interval modifications. Supports PostgREST-based query parameters for selecting specific columns and ordering results. |
| `BOOKINGMOOD_LIST_CAPACITIES` | List Capacities | List booking capacities with filtering and pagination. Use this to retrieve capacity configurations that define booking limits for products and capacity groups. Supports filtering by ID, capacity group, or product, as well as column selection, pagination, and sorting. |
| `BOOKINGMOOD_LIST_CAPACITY_GROUP_DEPS` | List Capacity Group Dependencies | Tool to list capacity group dependencies with optional field filtering. Use when you need to retrieve relationships between accumulator and element capacity groups in the BookingMood system. |
| `BOOKINGMOOD_LIST_CAPACITY_GROUPS` | List Capacity Groups | Tool to list capacity groups with filtering and pagination. Use when you need to retrieve capacity group configurations, which define how guest capacity is managed and grouped. Supports filtering by various attributes and pagination for large result sets. |
| `BOOKINGMOOD_LIST_CONTACT_BOOKINGS` | List Contact Bookings | List contact bookings with filtering and pagination. Use when you need to retrieve associations between contacts and bookings. Supports filtering by id, booking_id, contact_id, and created_at, as well as column selection and sorting. |
| `BOOKINGMOOD_LIST_CONTACTS` | List Contacts | Tool to list customer contacts with filtering and pagination. Supports PostgREST query parameters for column selection, ordering, and pagination. Use this to retrieve contacts from the system. |
| `BOOKINGMOOD_LIST_COUPON_PRODUCTS` | List Coupon Products | List coupon products that define which products a coupon applies to. Use this when you need to retrieve product-coupon linkages, especially when coupon.scope is 'rent' or 'product'. Supports PostgREST-style filtering on all fields (id, coupon_id, product_id, created_at), selection, sorting, and pagination. |
| `BOOKINGMOOD_LIST_COUPONS` | List Coupons | Tool to list discount coupons with filtering and pagination. Use this when you need to retrieve coupons from the system, search by code or scope, or paginate through coupon records. Supports PostgREST-style filtering on all fields including code, scope, stackable status, quota, and timestamps. |
| `BOOKINGMOOD_LIST_COUPON_SERVICES` | List Coupon Services | List coupon services that define which services a coupon applies to. Use this when you need to retrieve service-coupon linkages, especially when coupon.scope is 'service'. Supports PostgREST-style filtering on all fields (id, coupon_id, service_id, created_at), selection, sorting, and pagination. |
| `BOOKINGMOOD_LIST_COUPON_USES` | List Coupon Uses | List coupon uses that track which coupons have been applied to bookings. Use this when you need to retrieve coupon usage history, audit coupon applications, or track which bookings used specific coupons. Supports PostgREST-style filtering on all fields (id, booking_id, coupon_id, created_at), selection, sorting, and pagination. |
| `BOOKINGMOOD_LIST_EMAIL_EVENTS` | List Email Events | Tool to retrieve email events (bounce, delivery, open) with filtering and pagination. Use this to track email delivery status, monitor bounces, or analyze email engagement. Supports PostgREST-style filtering on event type, email address, timestamps, and other criteria. |
| `BOOKINGMOOD_LIST_EMAILS` | List Emails | Tool to retrieve emails from the system with optional filtering and pagination. Returns a list of email records including details like subject, body, status, scheduled send time, and related booking information. Use this when you need to list emails, search by booking or status, or paginate through email records. |
| `BOOKINGMOOD_LIST_EMAIL_TEMPLATES` | List Email Templates | Tool to list email templates with filtering and pagination. Supports PostgREST query parameters for column selection, ordering, and pagination. Use this to retrieve email template configurations used for booking notifications. |
| `BOOKINGMOOD_LIST_EXTERNAL_CALENDARS` | List External Calendars | Tool to list external calendar sync configurations (e.g., Google Calendar, iCal). Use this to retrieve all external calendars with optional filtering and pagination. Supports PostgREST-style filtering for querying specific calendars by name, type, or organization. |
| `BOOKINGMOOD_LIST_INVOICES` | List Invoices | Tool to retrieve invoices from the system with optional filtering and pagination. Returns a list of invoice records including amounts, statuses, and payment information. Use this when you need to list invoices, search by organization, or paginate through invoice records. |
| `BOOKINGMOOD_LIST_LINE_ITEMS` | List Line Items | Tool to retrieve line items from the system with optional filtering and pagination. Returns a list of line item records including details like quantities, amounts, unit prices, and related booking/product/service information. Use this when you need to list line items, search by booking or product, or paginate through line item records. |
| `BOOKINGMOOD_LIST_LINE_ITEM_TAXES` | List Line Item Taxes | Tool to list line item taxes with filtering and pagination. Returns tax records applied to line items in bookings. Use this to retrieve line item tax data from the system. |
| `BOOKINGMOOD_LIST_MEMBERS` | List Members | Tool to list organization members with filtering and pagination. Supports PostgREST query parameters for column selection, ordering, and pagination. Use this to retrieve team members from the organization. |
| `BOOKINGMOOD_LIST_ORGANIZATIONS` | List Organizations | Tool to list organizations. Use when you need to retrieve all organizations accessible by the current API key. |
| `BOOKINGMOOD_LIST_PADDLE_SUBSCRIPTIONS` | List Paddle Subscriptions | Tool to list Paddle subscriptions with filtering and pagination. Use this when you need to retrieve subscription information from the Paddle payment provider, filter by status or organization, or paginate through subscription records. Supports PostgREST-style filtering on all fields. |
| `BOOKINGMOOD_LIST_PAYMENTS` | List Payments | Tool to retrieve payment transactions from the system with optional filtering and pagination. Returns a list of payment records including amounts, statuses, payment methods, and transaction details. Use this when you need to list payments, search by invoice or organization, or paginate through payment records. |
| `BOOKINGMOOD_LIST_PERMISSIONS` | List Permissions | Tool to list permissions with filtering and pagination. Supports PostgREST query parameters for column selection, ordering, and pagination. Use this to retrieve user permissions for products in the system. |
| `BOOKINGMOOD_LIST_PRICING_WIDGETS` | List Pricing Widgets | Tool to list pricing widgets with filtering and pagination. Use this to retrieve pricing widget configurations from the system. Supports PostgREST-style filtering on fields (id, organization_id, widget_id), column selection, pagination, and sorting. |
| `BOOKINGMOOD_LIST_PRODUCT_ATTR_OPTIONS` | List Product Attribute Options | List product attribute options with filtering and pagination. Use this to retrieve which attribute options are available for specific products, enabling product customization through attribute selection. Supports PostgREST-style filtering on all fields (id, product_id, attribute_option_id, timestamps), column selection, pagination, and sorting. |
| `BOOKINGMOOD_LIST_PRODUCT_CALENDAR_LOGS` | List Product Calendar Logs | Tool to list product calendar logs with filtering and pagination. Use this to retrieve historical snapshots of product calendar changes, track updates to product availability, or audit calendar modifications. Supports PostgREST-style filtering on all fields. |
| `BOOKINGMOOD_LIST_PRODUCT_CONFIGS` | List Product Configurations | List product configurations with filtering and pagination. Use this to retrieve configuration settings for products in the system. Supports PostgREST-style filtering on all fields (id, organization_id, product_id, timestamps), column selection, pagination, and sorting. |
| `BOOKINGMOOD_LIST_PRODUCT_REPLY_ADDRS` | List Product Reply-to Addresses | Tool to list product reply-to addresses with filtering and pagination. Use this to retrieve reply-to email addresses configured for products in the system. Supports PostgREST-style query parameters for column selection, ordering, and pagination. |
| `BOOKINGMOOD_LIST_PRODUCTS` | List Products | List bookable products with filtering and pagination. Use this to retrieve product configurations that define rentals, services, or other bookable items in the system. Supports PostgREST-style filtering on all fields (id, organization_id, name, timestamps), column selection, pagination, and sorting. |
| `BOOKINGMOOD_LIST_PRODUCT_SERVICES` | List Product Services | List product services that define which services are linked to which products. Use this when you need to retrieve product-service associations. Supports PostgREST-style filtering on all fields (id, product_id, service_id, created_at), selection, sorting, and pagination. |
| `BOOKINGMOOD_LIST_PRODUCT_TASKS` | List Product Tasks | Tool to list product tasks with filtering and pagination. Product tasks are task templates associated with products that can be instantiated for specific calendar events or bookings. Use this to retrieve product task configurations from the system. |
| `BOOKINGMOOD_LIST_REPLY_TO_ADDRESSES` | List Reply-To Addresses | Tool to list reply-to addresses with filtering and pagination. Use this to retrieve reply-to email addresses configured for communications. Supports PostgREST-style query parameters for column selection, ordering, and pagination. |
| `BOOKINGMOOD_LIST_REVIEW_PRODUCTS` | List Review Products | List review products with filtering and pagination. Use this to retrieve review product configurations that define products available for customer reviews in the system. Supports PostgREST-style filtering, column selection, pagination, and sorting. |
| `BOOKINGMOOD_LIST_REVIEWS` | List Reviews | Tool to list customer reviews with filtering and pagination. Use this to retrieve review records from the system, including ratings, comments, and associated booking/product information. Supports PostgREST-style filtering, column selection, pagination, and sorting. |
| `BOOKINGMOOD_LIST_REVIEW_WIDGET_LISTINGS` | List Review Widget Listings | Tool to list review widget listings with filtering and pagination. Returns a list of review widget listing associations between review widgets and listings. Use this when you need to retrieve review widget listing mappings, filter by widget or listing IDs, or paginate through results. |
| `BOOKINGMOOD_LIST_REVIEW_WIDGETS` | List Review Widgets | Tool to retrieve review widgets from the system with optional filtering and pagination. Returns a list of review widget configurations including their IDs, names, and organization associations. Use this when you need to list review widgets, search by name or organization, or paginate through review widget records. |
| `BOOKINGMOOD_LIST_SEASONS` | List Seasons | List seasons with filtering and pagination. Use this to retrieve seasonal pricing periods that define price variations for different times of the year. Supports PostgREST-style filtering on all fields (id, organization_id, name, timestamps), column selection, pagination, and sorting. |
| `BOOKINGMOOD_LIST_SERVICES` | List Services | List bookable services with filtering and pagination. Use this to retrieve service configurations that define activities, treatments, or other bookable services in the system. Supports PostgREST-style filtering on all fields (id, organization_id, name, timestamps), column selection, pagination, and sorting. |
| `BOOKINGMOOD_LIST_SITE_LISTINGS` | List Site Listings | Tool to list site listings with filtering and pagination. Use when you need to retrieve site listing records from the system. Supports PostgREST query parameters for field selection, ordering, and pagination. |
| `BOOKINGMOOD_LIST_SITE_NAV_ITEMS` | List Site Navigation Items | Tool to list site navigation items with filtering and pagination. Use when you need to retrieve navigation menu structure or specific navigation entries. Supports PostgREST query parameters for field selection, ordering, and pagination. |
| `BOOKINGMOOD_LIST_SITE_PAGES` | List Site Pages | Tool to retrieve site pages from the system with optional filtering and pagination. Use when you need to list pages, filter by site, or paginate through page records. |
| `BOOKINGMOOD_LIST_SITES` | List Sites | Tool to list sites with filtering and pagination. Supports PostgREST query parameters for column selection, ordering, and pagination. Use this to retrieve physical locations or sites from the system. |
| `BOOKINGMOOD_LIST_SITE_VIEWS` | List Site Views | Tool to list site views with filtering and pagination. Returns analytics data about page views and visitor sessions on your sites. Use this to retrieve site traffic data, analyze visitor behavior, or track page views over time. |
| `BOOKINGMOOD_LIST_TAXES` | List Taxes | List tax configurations with filtering and pagination. Use this to retrieve tax definitions like VAT, Sales Tax, GST that can be applied to bookings and line items. Supports PostgREST-style filtering on all fields (id, organization_id, name, percentage, timestamps), column selection, pagination, and sorting. |
| `BOOKINGMOOD_LIST_USER_PROFILES` | List User Profiles | List all user profiles accessible by the current API key. Returns user profile information including IDs, names, email addresses, and organization associations. Use this to discover users in the system before performing operations or assigning resources. Supports pagination via limit and offset parameters. |
| `BOOKINGMOOD_LIST_WEBHOOK_NOTIFICATIONS` | List Webhook Notifications | Tool to list webhook notifications with filtering and pagination. Returns webhook notification records including their status, event types, and delivery information. Use this to monitor webhook deliveries and troubleshoot webhook issues. |
| `BOOKINGMOOD_LIST_WEBHOOKS` | List Webhooks | Tool to list webhook configurations with filtering and pagination. Returns webhook endpoints including their URLs, subscribed events, and status. Use this to discover configured webhooks before managing or debugging webhook integrations. |
| `BOOKINGMOOD_LIST_WIDGET_ANALYTICS` | List Widget Analytics | Tool to list widget analytics with pagination. Returns metrics and statistics for widgets including views, bookings, conversion rates, and revenue data. Supports pagination via limit and offset parameters. |
| `BOOKINGMOOD_LIST_WIDGET_LISTINGS` | List Widget Listings | Tool to list widget listings with filtering and pagination. Returns a list of widget listing associations between widgets and listings. Use this when you need to retrieve widget listing mappings, filter by widget or listing IDs, or paginate through results. |
| `BOOKINGMOOD_LIST_WIDGETS` | List Booking Widgets | List all booking widgets accessible by the current API key. Returns widget configurations including their IDs, names, types, and organization associations. Use this to discover available widgets before performing operations like searching availability or managing bookings. Supports pagination via limit and offset parameters. |
| `BOOKINGMOOD_QUERY_AVAILABILITY` | Query Availability | Tool to fetch availability of multiple products over a long period of time. Use this to check when products can be booked by querying availability records. Supports PostgREST-style filtering on product ID, date ranges, and availability status, plus pagination via limit/offset parameters. |
| `BOOKINGMOOD_UPDATE_ATTRIBUTE_OPTIONS` | Update Attribute Options | Updates attribute option records that match the specified filters. Attribute options represent possible values for custom attributes (like size options: S, M, L). At least one filter must be provided to target specific records. Use this to modify the localized names, display order, or parent attribute association. |
| `BOOKINGMOOD_UPDATE_ATTRIBUTES` | Update Attributes | Updates attribute records that match the specified filters. Attributes define custom properties for bookings (e.g., room type, amenities). At least one filter must be provided to target specific records. Use this to modify the localized name, display order, or attribute type. Typically used with the 'id' filter to update a specific attribute. |
| `BOOKINGMOOD_UPDATE_BOOKING_DETAILS` | Update Booking Details | Updates booking detail records that match the specified filters. Booking details store guest-filled form field data such as names, contact info, and custom field values. At least one filter must be provided to target specific records. Use this to modify attachment URLs, localized field names, descriptions, or customer-provided values. |
| `BOOKINGMOOD_UPDATE_BOOKINGS` | Update Bookings | Updates booking records that match the specified filters. Bookings represent customer reservations with metadata such as currency, references, confirmation status, and silent mode. At least one filter must be provided to target specific records. Use this to modify booking attributes like confirmation timestamp, currency settings, or booking references. |
| `BOOKINGMOOD_UPDATE_CALENDAR_EVENT_NOTES` | Update Calendar Event Notes | Updates calendar event note records that match the specified filters. Use this to modify notes associated with calendar events. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_CALENDAR_EVENTS` | Update Calendar Events | Update existing calendar events that match the specified filters. Use this to modify event status (CANCELLED, TENTATIVE, CONFIRMED), notes, title, or dates. At least one filter must be provided to target specific events. Commonly used to confirm tentative bookings or add notes to existing events. |
| `BOOKINGMOOD_UPDATE_CALENDAR_EVENT_TASKS` | Update Calendar Event Tasks | Tool to update existing calendar event tasks. Use when you need to modify task details such as labels, completion status, due dates, or schedule information. |
| `BOOKINGMOOD_UPDATE_CAPACITIES` | Update Capacities | Tool to update existing capacity records that match the specified filters. Capacities define occupancy thresholds (min/max) for products or capacity groups. Use this to modify maximum or minimum occupancy limits for booking resources. |
| `BOOKINGMOOD_UPDATE_CAPACITY_GROUP_DEPS` | Update Capacity Group Dependencies | Updates capacity group dependency records that match the specified filters. Capacity group dependencies define relationships between accumulating and accumulated capacity groups. At least one filter must be provided to target specific records. Use this to modify which capacity groups depend on each other. |
| `BOOKINGMOOD_UPDATE_CAPACITY_GROUPS` | Update Capacity Groups | Updates capacity group records that match the specified filters. Capacity groups define guest types (e.g., adults, children) and how their numbers are tracked (manual input or sum of sub-groups). At least one filter must be provided to target specific records. Use this to modify names, descriptions, display order, or capacity calculation settings. |
| `BOOKINGMOOD_UPDATE_CONTACT_BOOKINGS` | Update Contact Bookings | Updates contact booking records that match the specified filters. Contact bookings link contacts to bookings, enabling tracking of which contacts are associated with which reservations. At least one filter must be provided to target specific records. Use this to reassign contact bookings to different contacts or bookings. Typically used with the 'id' filter to update a specific contact booking. |
| `BOOKINGMOOD_UPDATE_CONTACTS` | Update Contacts | Updates contact records that match the specified filters. Use this to modify existing contact information such as name, email, phone, address, company details, or custom metadata. At least one filter must be provided to target specific contacts. |
| `BOOKINGMOOD_UPDATE_COUPON_PRODUCTS` | Update Coupon Products | Updates coupon product link records that match the specified filters. Use this to modify existing coupon-product associations by changing which coupon or product they link to. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_COUPONS` | Update Coupons | Updates coupon records that match the specified filters. Use this to modify existing coupons such as code, description, definition, quota, scope, or stackable status. At least one filter must be provided to target specific coupons. |
| `BOOKINGMOOD_UPDATE_COUPON_SERVICES` | Update Coupon Services | Updates coupon service records that match the specified filters. Use this to modify existing coupon-service associations. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_COUPON_USES` | Update Coupon Uses | Updates coupon use records that match the specified filters. Use this to modify which booking or coupon is associated with a coupon use record. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_EXTERNAL_CALENDARS` | Update External Calendars | Tool to update existing external calendars that match the specified filters. Use this to modify external calendar properties such as the calendar name. At least one filter must be provided to target specific external calendars. |
| `BOOKINGMOOD_UPDATE_LINE_ITEMS` | Update Line Items | Updates line item records that match the specified filters. Line items represent individual charges or products within a booking, including quantity, unit price, amount, and associated service or tax configuration. At least one filter must be provided to target specific records. Use this to modify line item details such as quantity, pricing, or description. |
| `BOOKINGMOOD_UPDATE_LINE_ITEM_TAXES` | Update Line Item Taxes | Updates line item tax records that match the specified filters. Line item taxes represent tax amounts or percentages applied to individual line items in a booking. At least one filter must be provided to target specific records. Use this to modify the tax amount or percentage for existing line item tax entries. |
| `BOOKINGMOOD_UPDATE_PAYMENTS` | Update Payments | Tool to update existing payments in the Bookingmood system. Use when you need to modify payment details such as amount, status, currency, or transaction information. At least one filter must be provided to target specific payment records. |
| `BOOKINGMOOD_UPDATE_PERMISSIONS` | Update Permissions | Updates permission records that match the specified filters. Use this to modify product associations for existing permissions. At least one filter must be provided to target specific permissions. |
| `BOOKINGMOOD_UPDATE_PRICING_WIDGETS` | Update Pricing Widgets | Tool to update existing pricing widget records that match the specified filters. Pricing widgets represent pricing configuration widgets in the system. Use this to modify pricing widget names or localized translations. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_PRODUCT_ATTRIBUTE_OPTIONS` | Update Product Attribute Options | Updates product attribute option records that match the specified filters. Product attribute options link products to their available attribute values (e.g., linking a specific product to size options). Use this to modify the associations between products and attribute options. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_PRODUCT_CONFIGS` | Update Product Configurations | Tool to update existing product configuration records that match the specified filters. Use when you need to modify product configuration attributes such as updated timestamps. |
| `BOOKINGMOOD_UPDATE_PRODUCT_REPLY_TO_ADDRESSES` | Update Product Reply-To Addresses | Tool to update existing product reply-to address associations. Use when you need to modify the relationship between products and their reply-to email addresses. This action follows PostgREST patterns and requires at least one filter to target specific records. |
| `BOOKINGMOOD_UPDATE_PRODUCTS` | Update Products | Updates product records that match the specified filters. Use this to modify existing product configurations such as name, description, type, status, pricing, or guest capacity. At least one filter must be provided to target specific products. Typically used with the 'id' filter to update a specific product. |
| `BOOKINGMOOD_UPDATE_PRODUCT_SERVICES` | Update Product Services | Tool to update existing product_services records that match the specified filters. Use when you need to modify the product-service associations. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_PRODUCT_TASKS` | Update Product Tasks | Update existing product tasks that match the specified filters. Product tasks define activities or checklist items associated with products. Use this to modify task labels for the matched product tasks. |
| `BOOKINGMOOD_UPDATE_REVIEW_PRODUCTS` | Update Review Products | Updates review product link records that match the specified filters. Use this to modify existing review-product associations by changing which review is linked to a product. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_REVIEWS` | Update Reviews | Updates review records that match the specified filters. Use this to modify existing customer reviews such as ratings, comments, responses, status, or associated entities. At least one filter must be provided to target specific reviews. |
| `BOOKINGMOOD_UPDATE_REVIEW_WIDGET_LISTINGS` | Update Review Widget Listings | Updates review widget listing records that match the specified filters. Use this to modify existing review widget-product associations by changing which products are associated with review widgets. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_REVIEW_WIDGETS` | Update Review Widgets | Updates review widget records that match the specified filters. Use this to modify existing review widget configurations by changing associations between reviews and widgets. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_SERVICES` | Update Services | Updates service records that match the specified filters. Use this to modify existing service information such as description, name, price, duration, or active status. At least one filter must be provided to target specific services. |
| `BOOKINGMOOD_UPDATE_SITE_LISTINGS` | Update Site Listings | Tool to update site listing records matching specified filters. Use when you need to modify listing details such as name, status, URLs, or metadata. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_SITE_NAV_ITEMS` | Update Site Navigation Items | Updates site navigation item records that match the specified filters. Use this to modify navigation menu items such as labels, URLs, types, or hierarchical parent relationships. At least one filter must be provided to target specific navigation items. |
| `BOOKINGMOOD_UPDATE_SITE_PAGES` | Update Site Pages | Updates site page records that match the specified filters. Use this to modify existing site page information such as title. At least one filter must be provided to target specific site pages. |
| `BOOKINGMOOD_UPDATE_SITES` | Update Sites | Tool to update existing site records that match the specified filters. Use when you need to modify the site name. At least one filter must be provided to target specific sites. |
| `BOOKINGMOOD_UPDATE_TAXES` | Update Taxes | Updates tax configuration records that match the specified filters. Use this to modify existing tax definitions such as the tax name or percentage rate. At least one filter must be provided to target specific tax records. |
| `BOOKINGMOOD_UPDATE_USER_PROFILES` | Update User Profiles | Tool to update existing user profile records that match the specified filters. Use this to modify user preferences such as name, language, avatar, or calendar settings. At least one filter must be provided to target specific user profiles. |
| `BOOKINGMOOD_UPDATE_WEBHOOKS` | Update Webhooks | Tool to update existing webhook subscriptions that match the specified filters. Use this to modify webhook URLs, event type subscriptions, enabled status, or descriptions. At least one filter must be provided to target specific webhooks. |
| `BOOKINGMOOD_UPDATE_WIDGET_LISTINGS` | Update Widget Listings | Updates existing widget listing records that match the specified filters. Use this to modify widget-product associations such as display order or change which widget or product is associated. At least one filter must be provided to target specific records. |
| `BOOKINGMOOD_UPDATE_WIDGETS` | Update Booking Widgets | Update existing booking widgets that match the specified filters. Use this to modify widget configurations such as name, type, locale, currency, interaction settings, display options, and customization parameters. At least one filter must be provided to target specific widgets. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Bookingmood MCP server is an implementation of the Model Context Protocol that connects your AI agents and assistants directly to Bookingmood. Instead of manually wiring Bookingmood APIs, OAuth, and scopes yourself, you get a structured, tool-based interface that an LLM can call safely.
With Composio's managed implementation, you don't have to create your own developer app. For production, if you're building an end product, we recommend using your own credentials. The managed server helps you prototype fast and go from 0-1 faster.

## Step-by-step Guide

### 1. Prerequisites

You will need:
- A Composio API key
- An OpenAI API key (used by Autogen's OpenAIChatCompletionClient)
- A Bookingmood account you can connect to Composio
- Some basic familiarity with Autogen and Python async

### 1. Getting API Keys for OpenAI and Composio

OpenAI API Key
- Go to the [OpenAI dashboard](https://platform.openai.com/settings/organization/api-keys) and create an API key. You'll need credits to use the models, or you can connect to another model provider.
- Keep the API key safe.
Composio API Key
- Log in to the [Composio dashboard](https://dashboard.composio.dev?utm_source=toolkits&utm_medium=framework_docs).
- Navigate to your API settings and generate a new API key.
- Store this key securely as you'll need it for authentication.

### 2. Install dependencies

Install Composio, Autogen extensions, and dotenv.
What's happening:
- composio connects your agent to Bookingmood via MCP
- autogen-agentchat provides the AssistantAgent class
- autogen-ext-openai provides the OpenAI model client
- autogen-ext-tools provides MCP workbench support
```bash
pip install composio python-dotenv
pip install autogen-agentchat autogen-ext-openai autogen-ext-tools
```

### 3. Set up environment variables

Create a .env file in your project folder.
What's happening:
- COMPOSIO_API_KEY is required to talk to Composio
- OPENAI_API_KEY is used by Autogen's OpenAI client
- USER_ID is how Composio identifies which user's Bookingmood connections to use
```bash
COMPOSIO_API_KEY=your-composio-api-key
OPENAI_API_KEY=your-openai-api-key
USER_ID=your-user-identifier@example.com
```

### 4. Import dependencies and create Tool Router session

What's happening:
- load_dotenv() reads your .env file
- Composio(api_key=...) initializes the SDK
- create(...) creates a Tool Router session that exposes Bookingmood tools
- session.mcp.url is the MCP endpoint that Autogen will connect to
```python
import asyncio
import os
from dotenv import load_dotenv
from composio import Composio

from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpWorkbench, StreamableHttpServerParams

load_dotenv()

async def main():
    # Initialize Composio and create a Bookingmood session
    composio = Composio(api_key=os.getenv("COMPOSIO_API_KEY"))
    session = composio.create(
        user_id=os.getenv("USER_ID"),
        toolkits=["bookingmood"]
    )
    url = session.mcp.url
```

### 5. Configure MCP parameters for Autogen

Autogen expects parameters describing how to talk to the MCP server. That is what StreamableHttpServerParams is for.
What's happening:
- url points to the Tool Router MCP endpoint from Composio
- timeout is the HTTP timeout for requests
- sse_read_timeout controls how long to wait when streaming responses
- terminate_on_close=True cleans up the MCP server process when the workbench is closed
```python
# Configure MCP server parameters for Streamable HTTP
server_params = StreamableHttpServerParams(
    url=url,
    timeout=30.0,
    sse_read_timeout=300.0,
    terminate_on_close=True,
    headers={"x-api-key": os.getenv("COMPOSIO_API_KEY")}
)
```

### 6. Create the model client and agent

What's happening:
- OpenAIChatCompletionClient wraps the OpenAI model for Autogen
- McpWorkbench connects the agent to the MCP tools
- AssistantAgent is configured with the Bookingmood tools from the workbench
```python
# Create model client
model_client = OpenAIChatCompletionClient(
    model="gpt-5",
    api_key=os.getenv("OPENAI_API_KEY")
)

# Use McpWorkbench as context manager
async with McpWorkbench(server_params) as workbench:
    # Create Bookingmood assistant agent with MCP tools
    agent = AssistantAgent(
        name="bookingmood_assistant",
        description="An AI assistant that helps with Bookingmood operations.",
        model_client=model_client,
        workbench=workbench,
        model_client_stream=True,
        max_tool_iterations=10
    )
```

### 7. Run the interactive chat loop

What's happening:
- The script prompts you in a loop with You:
- Autogen passes your input to the model, which decides which Bookingmood tools to call via MCP
- agent.run_stream(...) yields streaming messages as the agent thinks and calls tools
- Typing exit, quit, or bye ends the loop
```python
print("Chat started! Type 'exit' or 'quit' to end the conversation.\n")
print("Ask any Bookingmood related question or task to the agent.\n")

# Conversation loop
while True:
    user_input = input("You: ").strip()

    if user_input.lower() in ["exit", "quit", "bye"]:
        print("\nGoodbye!")
        break

    if not user_input:
        continue

    print("\nAgent is thinking...\n")

    # Run the agent with streaming
    try:
        response_text = ""
        async for message in agent.run_stream(task=user_input):
            if hasattr(message, "content") and message.content:
                response_text = message.content

        # Print the final response
        if response_text:
            print(f"Agent: {response_text}\n")
        else:
            print("Agent: I encountered an issue processing your request.\n")

    except Exception as e:
        print(f"Agent: Sorry, I encountered an error: {str(e)}\n")
```

## Complete Code

```python
import asyncio
import os
from dotenv import load_dotenv
from composio import Composio

from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpWorkbench, StreamableHttpServerParams

load_dotenv()

async def main():
    # Initialize Composio and create a Bookingmood session
    composio = Composio(api_key=os.getenv("COMPOSIO_API_KEY"))
    session = composio.create(
        user_id=os.getenv("USER_ID"),
        toolkits=["bookingmood"]
    )
    url = session.mcp.url

    # Configure MCP server parameters for Streamable HTTP
    server_params = StreamableHttpServerParams(
        url=url,
        timeout=30.0,
        sse_read_timeout=300.0,
        terminate_on_close=True,
        headers={"x-api-key": os.getenv("COMPOSIO_API_KEY")}
    )

    # Create model client
    model_client = OpenAIChatCompletionClient(
        model="gpt-5",
        api_key=os.getenv("OPENAI_API_KEY")
    )

    # Use McpWorkbench as context manager
    async with McpWorkbench(server_params) as workbench:
        # Create Bookingmood assistant agent with MCP tools
        agent = AssistantAgent(
            name="bookingmood_assistant",
            description="An AI assistant that helps with Bookingmood operations.",
            model_client=model_client,
            workbench=workbench,
            model_client_stream=True,
            max_tool_iterations=10
        )

        print("Chat started! Type 'exit' or 'quit' to end the conversation.\n")
        print("Ask any Bookingmood related question or task to the agent.\n")

        # Conversation loop
        while True:
            user_input = input("You: ").strip()

            if user_input.lower() in ['exit', 'quit', 'bye']:
                print("\nGoodbye!")
                break

            if not user_input:
                continue

            print("\nAgent is thinking...\n")

            # Run the agent with streaming
            try:
                response_text = ""
                async for message in agent.run_stream(task=user_input):
                    if hasattr(message, 'content') and message.content:
                        response_text = message.content

                # Print the final response
                if response_text:
                    print(f"Agent: {response_text}\n")
                else:
                    print("Agent: I encountered an issue processing your request.\n")

            except Exception as e:
                print(f"Agent: Sorry, I encountered an error: {str(e)}\n")

if __name__ == "__main__":
    asyncio.run(main())
```

## Conclusion

You now have an Autogen assistant wired into Bookingmood through Composio's Tool Router and MCP. From here you can:
- Add more toolkits to the toolkits list, for example notion or hubspot
- Refine the agent description to point it at specific workflows
- Wrap this script behind a UI, Slack bot, or internal tool
Once the pattern is clear for Bookingmood, you can reuse the same structure for other MCP-enabled apps with minimal code changes.

## How to build Bookingmood MCP Agent with another framework

- [OpenAI Agents SDK](https://composio.dev/toolkits/bookingmood/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/bookingmood/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/bookingmood/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/bookingmood/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/bookingmood/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/bookingmood/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/bookingmood/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/bookingmood/framework/cli)
- [Google ADK](https://composio.dev/toolkits/bookingmood/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/bookingmood/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/bookingmood/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/bookingmood/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/bookingmood/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/bookingmood/framework/crew-ai)

## Related Toolkits

- [Google Calendar](https://composio.dev/toolkits/googlecalendar) - Google Calendar is a time management service for scheduling meetings, events, and reminders. It streamlines personal and team organization with integrated notifications and sharing options.
- [Apaleo](https://composio.dev/toolkits/apaleo) - Apaleo is a cloud-based property management platform for hospitality businesses. It centralizes reservations, billing, and daily operations for smoother hotel management.
- [Appointo](https://composio.dev/toolkits/appointo) - Appointo is an appointment booking platform for Shopify stores. It lets businesses add online scheduling to their websites with zero coding.
- [Bart](https://composio.dev/toolkits/bart) - Bart is the Bay Area Rapid Transit system, providing fast public transportation across the San Francisco Bay Area. It helps commuters and travelers get real-time schedule info, plan routes, and stay updated on service changes.
- [Booqable](https://composio.dev/toolkits/booqable) - Booqable is a rental software platform for managing inventory, bookings, and reservations. It helps businesses streamline rentals and keep track of every item with ease.
- [Cal](https://composio.dev/toolkits/cal) - Cal is a meeting scheduling platform that offers shareable booking links and real-time calendar syncing. It streamlines the process of finding mutual availability to make scheduling effortless.
- [Calendarhero](https://composio.dev/toolkits/calendarhero) - Calendarhero is a powerful scheduling platform that streamlines your calendar management across multiple services. It helps you efficiently schedule, reschedule, and organize meetings without the back-and-forth.
- [Calendly](https://composio.dev/toolkits/calendly) - Calendly is an appointment scheduling tool that automates meeting invitations, availability checks, and reminders. It helps individuals and teams avoid endless email back-and-forth when booking meetings.
- [Etermin](https://composio.dev/toolkits/etermin) - eTermin is an online appointment scheduling platform for businesses to manage bookings. It streamlines client appointments, saving time and reducing scheduling conflicts.
- [Evenium](https://composio.dev/toolkits/evenium) - Evenium is an all-in-one platform for managing professional events, from planning to analysis. It helps teams simplify event logistics, boost engagement, and track every detail in one place.
- [Eventee](https://composio.dev/toolkits/eventee) - Eventee is a user-friendly event management platform for mobile and web. It boosts attendee engagement for in-person, virtual, and hybrid events.
- [Eventzilla](https://composio.dev/toolkits/eventzilla) - Eventzilla is an event management platform for creating, promoting, and running events. It streamlines ticketing, registration, and attendee coordination for organizers.
- [Humanitix](https://composio.dev/toolkits/humanitix) - Humanitix is a not-for-profit ticketing platform that donates 100% of profits to charity. It empowers event organizers to make social impact with every ticket sold.
- [Lodgify](https://composio.dev/toolkits/lodgify) - Lodgify is an all-in-one vacation rental software for property managers and owners. It centralizes bookings, guest messaging, and channel synchronization in one dashboard.
- [Planyo Online Booking](https://composio.dev/toolkits/planyo_online_booking) - Planyo Online Booking is a flexible reservation system for managing bookings by day, hour, or event. It streamlines scheduling for any business needing reservations.
- [Scheduleonce](https://composio.dev/toolkits/scheduleonce) - Scheduleonce is a scheduling platform for capturing, qualifying, and engaging with inbound leads. It streamlines appointment booking and follow-ups for faster lead conversion.
- [Supersaas](https://composio.dev/toolkits/supersaas) - Supersaas is a flexible appointment scheduling platform for businesses and individuals. It streamlines bookings, reminders, and calendar management in one place.
- [Sympla](https://composio.dev/toolkits/sympla) - Sympla is a platform for managing in-person and online events, ticket sales, and registrations. It streamlines event setup, attendee tracking, and digital content delivery.
- [Gmail](https://composio.dev/toolkits/gmail) - Gmail is Google's email service with powerful spam protection, search, and G Suite integration. It keeps your inbox organized and makes communication fast and reliable.
- [Google Drive](https://composio.dev/toolkits/googledrive) - Google Drive is a cloud storage platform for uploading, sharing, and collaborating on files. It's perfect for keeping your documents accessible and organized across devices.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Bookingmood MCP?

With a standalone Bookingmood MCP server, the agents and LLMs can only access a fixed set of Bookingmood tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Bookingmood and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Autogen?

Yes, you can. Autogen fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Bookingmood tools.

### Can I manage the permissions and scopes for Bookingmood while using Tool Router?

Yes, absolutely. You can configure which Bookingmood scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Bookingmood data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
