VOOZH about

URL: https://mcp.so/server/oncehub/OnceHub

⇱ OnceHub MCP Server MCP Server


OnceHub MCP Server

@OnceHub

The OnceHub MCP Server provides a standardized way for AI models and agents to interact directly with your OnceHub scheduling API. Rather than sending users a booking link and asking them to schedule manually, an AI Agent can retrieve availability and schedule meetings on the user’s behalf using MCP tools, through a natural language flow. This solution enables external AI Agents to access OnceHub scheduling APIs within AI-driven workflows using the standardized Model Context Protocol (MCP) remote server.
Overview

OnceHub MCP Server

πŸ‘ Python 3.13+
πŸ‘ License: MIT
πŸ‘ MCP Compatible

The OnceHub MCP Server provides a standardized way for AI models and agents to interact directly with your OnceHub scheduling API. Rather than sending users a booking link and asking them to schedule manually, an AI Agent can retrieve availability and schedule meetings on the user’s behalf using MCP tools, through a natural language flow. This solution enables external AI Agents to access OnceHub scheduling APIs within AI-driven workflows using the standardized Model Context Protocol (MCP) remote server.

Compatible with: VS Code Copilot, Claude Desktop, OpenAI, and any MCP-compatible AI client.

Table of Contents

Features

  • πŸ”Œ MCP Protocol Support - Works with any MCP-compatible AI client
  • πŸ“… Time Slot Retrieval - Fetch available booking slots from OnceHub booking calendars
  • πŸ—“οΈ Meeting Scheduling - Automatically schedule meetings with guest information
  • πŸ” Secure Authentication - API key-based authentication via headers
  • πŸ§ͺ Well Tested - 92% code coverage with comprehensive unit tests
  • 🐳 Docker Ready - Containerized for easy deployment
  • πŸ“ AI-Friendly Prompts - Built-in workflow guidance for AI assistants

Quick Start

Get started with the OnceHub MCP Server in your AI client:

1. Get Your API Key

Obtain your OnceHub API key from the Authentication documentation.

2. Configure Your Client

Create .vscode/mcp.json in your workspace:

{
 "servers": {
 "oncehub": {
 "url": "https://mcp.oncehub.com/sse",
 "type": "http",
 "headers": {
 "authorization": "Bearer YOUR_ONCEHUB_API_KEY"
 }
 }
 }
}

Replace YOUR_ONCEHUB_API_KEY with your actual API key.

3. Start Using

Ask your AI assistant to:

  • "Show me available time slots for calendar BKC-XXXXXXXXXX"
  • "Schedule a meeting for tomorrow at 2 PM with John Doe"

⚠️ Running your own MCP server? See Installation & Running Locally for setup instructions.

βœ… Production Server: Our hosted MCP server is available at https://mcp.oncehub.com/sse.

Architecture

πŸ‘ Architecture

Project Structure

mcp-server/
β”œβ”€β”€ main.py # MCP server with tool definitions
β”œβ”€β”€ models.py # Pydantic data schemas for BookingForm and Location
β”œβ”€β”€ pyproject.toml # Project dependencies and configuration
β”œβ”€β”€ Dockerfile # Docker image configuration
β”œβ”€β”€ .dockerignore # Files to exclude from Docker build
└── README.md # This file

Tools

1. get_booking_time_slots

Retrieves available time slots from a booking calendar.

Parameters:

  • calendar_id (str, required): The booking calendar ID (e.g., 'BKC-XXXXXXXXXX')
  • start_time (str, optional): Filter slots from this datetime in ISO 8601 format (e.g., '2026-02-15T09:00:00Z')
  • end_time (str, optional): Filter slots until this datetime in ISO 8601 format (e.g., '2026-02-28T17:00:00Z')
  • timeout (int, default: 30): Request timeout in seconds

Example Response:

{
 "success": true,
 "status_code": 200,
 "calendar_id": "BKC-XXXXXXXXXX",
 "total_slots": 5,
 "data": [
 {"start_time": "2026-02-10T10:00:00Z", "end_time": "2026-02-10T11:00:00Z"},
 {"start_time": "2026-02-10T14:00:00Z", "end_time": "2026-02-10T15:00:00Z"}
 ]
}

2. schedule_meeting

Schedules a meeting in a specified time slot. Always call get_booking_time_slots first to ensure the time slot is available.

Parameters:

  • calendar_id (str, required): ID of the booking calendar (e.g., 'BKC-XXXXXXXXXX')
  • start_time (str, required): The exact start time from an available slot in ISO 8601 format
  • guest_time_zone (str, required): Guest's timezone in IANA format (e.g., 'America/New_York', 'Europe/London')
  • guest_name (str, required): Guest's full name
  • guest_email (str, required): Guest's email address for confirmation
  • guest_phone (str, optional): Guest's phone number in E.164 format (e.g., '+15551234567')
  • location_type (str, optional): Meeting mode - 'virtual', 'virtual_static', 'physical', or 'guest_phone'
  • location_value (str, optional): Location details based on type:
    • virtual: Provider name (e.g., 'zoom', 'google_meet', 'microsoft_teams')
    • virtual_static: Use null
    • physical: Address ID (e.g., 'ADD-XXXXXXXXXX')
    • guest_phone: Phone number in E.164 format
  • custom_fields (dict, optional): Custom form fields as key-value pairs (e.g., {"company": "Acme", "interests": ["Demo"]})
  • timeout (int, default: 30): Request timeout in seconds

Example Response:

{
 "success": true,
 "status_code": 200,
 "booking_id": "BKG-123456789",
 "confirmation": {
 "guest_name": "John Doe",
 "guest_email": "john@example.com",
 "scheduled_time": "2026-02-10T10:00:00Z",
 "timezone": "America/New_York"
 }
}

Prerequisites

  • Python 3.13 or higher
  • uv package manager (recommended)
  • OnceHub API key - See Authentication documentation to obtain your API key
  • OnceHub API endpoint URL (usually https://api.oncehub.com)

Environment Variables

Create a .env file or set these environment variables:

# Required: Your OnceHub API endpoint
ONCEHUB_API_URL=https://api.oncehub.com
# Note: API key is passed via Authorization header from MCP clients
# Do NOT commit API keys to version control

Client Configuration

This MCP server is compatible with VS Code Copilot, Claude Desktop, OpenAI, and other MCP-compatible clients.

VS Code / GitHub Copilot

Step 1: Create Configuration Directory

Windows (PowerShell):

New-Item -Path ".vscode" -ItemType Directory -Force
New-Item -Path ".vscode\mcp.json" -ItemType File -Force

macOS/Linux:

mkdir -p .vscode
touch .vscode/mcp.json

Step 2: Configure the Server

Edit .vscode/mcp.json:

{
 "servers": {
 "oncehub": {
 "url": "http://0.0.0.0:8000/sse",
 "type": "http",
 "headers": {
 "authorization": "Bearer YOUR_ONCEHUB_API_KEY"
 }
 }
 }
}

Configuration Options:

  • url: The MCP server endpoint (change to your server URL if self-hosting)
  • authorization: Your OnceHub API key with Bearer prefix
  • Server name (oncehub): Can be customized to any identifier

Step 3: Reload VS Code

After saving the configuration, reload VS Code to activate the MCP server connection.

Claude Desktop

Edit your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
 "mcpServers": {
 "oncehub": {
 "url": "http://0.0.0.0:8000/sse",
 "headers": {
 "authorization": "Bearer YOUR_ONCEHUB_API_KEY"
 }
 }
 }
}

Restart Claude Desktop after saving.

Other MCP Clients

For other MCP-compatible clients, configure them to connect to:

  • Endpoint: http://0.0.0.0:8000/sse
  • Protocol: HTTP with Server-Sent Events (SSE)
  • Authentication: Bearer token in Authorization header

Security Note: Never commit API keys to version control. Use environment variables or secure secret management for production deployments.

Server Config

{
 "servers": {
 "oncehub": {
 "url": "http://0.0.0.0:8000/sse",
 "type": "http",
 "headers": {
 "authorization": "Bearer YOUR_ONCEHUB_API_KEY"
 }
 }
 }
}
Β© 2025 MCP.so. All rights reserved.

Build with ShipAny.