MCP Tools
Reference documentation for all available Dock AI MCP tools.
Overview
Dock AI exposes platform capabilities as MCP tools. These tools are available to any AI assistant that connects to our MCP server.
Info
available_actions field in search results indicates what actions each business supports.Automatic User Context
When a user authenticates with Dock AI, their profile information (name, email, phone) is automatically available to tools that need it. This means:
- The AI assistant doesn't need to ask users for their contact info
make_bookingandcontacttools use the authenticated user's profile- Reduced friction for end users - just say "book it" and it's done
Tip
Supported Categories
The category parameter in search helps route queries to the right adapters:
restauranthealthbeautyreal_estateautomotiveeventsfitnessprofessional_servicesMore categories are added as new adapters are developed.
Available Tools
search
Search for businesses, services, or listings across all connected platforms
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Natural language search text (e.g., "italian restaurant", "haircut") |
category | string | Yes | Category for routing: restaurant, health, beauty, real_estate, etc. |
location | string | No | City, postal code, or area |
limit | number | No | Max results (default: 10) |
Returns
Object with count, results array (id, name, category, description, rating, location, available_actions), and query metadata
get_details
Get detailed information about a specific business or listing
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
business_id | string | Yes | Unique business identifier (e.g., "demo_resto_001") |
Returns
Full business details: name, category, description, rating, location, opening_hours, phone, website, amenities, specialties, and category-specific fields
check_availability
Get available time slots for booking at a business
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
business_id | string | Yes | Business identifier |
date | string | Yes | Date to check (format: YYYY-MM-DD) |
party_size | number | No | Number of people (for restaurants) |
visit_type | string | No | Type of visit (for health: "consultation", "teleconsultation") |
Returns
Object with available_times array, slots with time/available/duration_minutes, and availability count
make_booking
Make a reservation or appointment at a business. Customer details (name, email, phone) are automatically injected from the authenticated user's profile.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
business_id | string | Yes | Business identifier |
date | string | Yes | Date of booking (format: YYYY-MM-DD) |
time | string | Yes | Time of booking (format: HH:MM) |
party_size | number | No | Number of people (for restaurants) |
visit_type | string | No | Type of visit (for health appointments) |
special_requests | string | No | Special requests or notes |
Returns
Booking confirmation with confirmation_number, booking_details, and cancellation_policy
contact
Send a message or inquiry to a business. Sender details (name, email, phone) are automatically injected from the authenticated user's profile.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
business_id | string | Yes | Business identifier |
message | string | Yes | Message content |
subject | string | No | Subject line (optional) |
Returns
Message delivery status with success boolean and confirmation
cancel
Cancel an existing booking
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
confirmation_number | string | Yes | The confirmation number from the original booking |
reason | string | No | Reason for cancellation (optional) |
Returns
Cancellation confirmation
Example Usage
Here's how an AI assistant might use these tools in a conversation:
User: "Find me a nice Italian restaurant in Paris for tomorrow evening"
AI: [calls search]
→ query: "italian restaurant"
→ category: "restaurant"
→ location: "Paris"
AI: "I found 5 Italian restaurants in Paris. La Bella Italia has 4.8 stars
and is known for their homemade pasta. Would you like me to check
availability for tomorrow?"
User: "Yes, for 2 people around 8pm"
AI: [calls check_availability]
→ business_id: "demo_resto_001"
→ date: "2025-01-15"
→ party_size: 2
AI: "They have tables available at 19:30, 20:00, and 20:30.
Which time works best?"
User: "8pm please"
AI: [calls make_booking]
→ business_id: "demo_resto_001"
→ date: "2025-01-15"
→ time: "20:00"
→ party_size: 2
(user info injected automatically from profile)
AI: "Done! I've booked a table for 2 at La Bella Italia tomorrow at 8pm.
Confirmation number: #BOOK-12345. You'll receive an email at jean@example.com."Info
Error Handling
Tools return structured error responses that AI assistants can understand and communicate to users.
{
"error": {
"code": "NO_AVAILABILITY",
"message": "No tables available for the requested time",
"suggestions": [
"Try a different date",
"Check availability for a smaller party",
"Consider nearby restaurants"
]
}
}