BubblaV MCP Server
The BubblaV MCP (Model Context Protocol) Server enables you to connect your BubblaV data to MCP-compatible clients like ChatGPT, Claude Desktop, Google Antigravity, and OpenClaw. This allows your AI agents to search your knowledge base, access analytics, and manage your chatbot’s settings — all in real-time.Looking for recipes? For ready-to-use prompts to diagnose content gaps, add knowledge, tune your bot’s persona, or set up human handoff, see Use AI Agents to Manage & Improve Your Chatbot.
What Can You Do?
- Search Knowledge Base: Let your AI agents search your indexed website content
- Manage Knowledge Base: Add, delete, and list knowledge entries; upload files; sync support tickets; manage crawl URLs and sitemaps
- Access Analytics: Retrieve full analytics reports programmatically
- Conversation Intelligence: List, search, and inspect conversations and leads
- Content Gap Analysis: Identify unanswered questions and knowledge gaps
- Visitor Insights: Get detailed visitor profiles and activity breakdowns
- Hourly Activity: Analyze peak support times for staffing optimization
- Scrape Web Pages: Convert any public URL into markdown with
bubblav_scrape_url - Configure the Chatbot: Read and update the chatbot persona (
custom_instructions) and website settings - Design the Widget: Edit bot name, greetings, suggestions, colors, position, and the Help Center tab
- Manage the Help Center: Create, update, reorder, and delete Help Center groups and articles
- Human Handoff: Build intent-triggered flows that route visitors to a live agent (Pro+)
- Manage Custom Tools: Create, update, delete, and toggle custom webhook tools for your chatbot (Pro+)
- Manage Forms: Create and update AI-powered lead-collection forms
- Manage Flows: Create, update, and inspect visual multi-step chatbot scenarios (Pro+)
- Manage API Keys: Create, list, and revoke scoped MCP API keys
- Build Automations: Create custom workflows that leverage your BubblaV data
- Real-time Integration: Use Server-Sent Events (SSE) for instant data access
Available Tools
This is a curated reference of the most-used tools. A connected client receives the complete,
always-current set via the standard tools/list method.
bubblav_search_knowledge
Search your indexed knowledge base for relevant content. Parameters:query(string, required): Your search querylimit(number, optional): Maximum results to return (default: 5, max: 20)
bubblav_read_report
Read the full analytics report for your website — the same data shown on the Reports page. Parameters:date_range(object, optional): Date range for the report (defaults to current calendar month)start(string): Start date inyyyy-MM-ddformat. Must not be in the future or afterend.end(string): End date inyyyy-MM-ddformat (defaults to today)
null when the period has no conversations. Estimated cost savings are in USD: $8 for each conversation the AI resolved without a human.
Example:
bubblav_add_knowledge
Add a new text knowledge entry to your knowledge base. The content is automatically split into chunks, queued for embedding, and becomes searchable viabubblav_search_knowledge once processed.
Parameters:
title(string, required): Title for this knowledge entrycontent(string, required): Full text content to index (plain text or Markdown)
RATE_LIMITED error.
bubblav_scrape_url
Scrape a public web page URL and return markdown content optimized for LLM context. Parameters:url(string, required): The page URL to scrape
bubblav_add_crawl_url, bubblav_upload_knowledge_file, or bubblav_add_knowledge to add content instead.
bubblav_list_conversations
List conversations for this website with optional filters. Returns conversation metadata (id, title, state, platform, visitor email/country, rating). Parameters:status(string, optional): Filter by conversation state —"bot","live_support", or"resolved"platform(string, optional): Filter by platform (e.g."widget","messenger","slack","discord","whatsapp","instagram")date_range(object, optional): Date range withstartandendinyyyy-MM-ddformatlimit(number, optional): Maximum results (default: 20, max: 100)offset(number, optional): Results to skip for pagination (default: 0)
bubblav_get_conversation
Get the full details of a single conversation including all messages. Returns conversation metadata plus a chronological list of messages with sender type, content, confidence score, thumbs rating, and response latency. Parameters:conversation_id(string, required): UUID of the conversation to retrieve
bubblav_search_conversations
Full-text search across all conversation messages. Returns matching message excerpts with surrounding context, conversation metadata, and visitor email if available. Parameters:query(string, required): Text to search for in message content (case-insensitive)date_range(object, optional): Date range withstartandendlimit(number, optional): Maximum results (default: 20, max: 100)offset(number, optional): Pagination offset (default: 0)
bubblav_list_leads
List conversations where the visitor provided their email address (captured leads). Returns email, country, platform, conversation state, and timestamp. Note: This tool is not available in the ChatGPT or Muse integrations; it works in Claude, Cursor, OpenClaw, and the dashboard. Parameters:platform(string, optional): Filter by platformdate_range(object, optional): Date rangelimit(number, optional): Maximum results (default: 20, max: 100)offset(number, optional): Pagination offset (default: 0)
bubblav_list_unanswered_questions
Find visitor questions that the AI could not answer well — bot replies with low confidence score, fallback responses, or messages rated thumbs-down by the visitor. Parameters:confidence_threshold(number, optional): Confidence score cutoff (0.0–1.0, default: 0.5). Replies below this are considered low-qualitydate_range(object, optional): Date rangelimit(number, optional): Maximum results (default: 20, max: 100)offset(number, optional): Pagination offset (default: 0)
bubblav_get_most_asked_questions
Return the most frequently asked visitor questions over a date range (default: last 30 days). Questions are aggregated and deduplicated. Parameters:date_range(object, optional): Date rangelimit(number, optional): Maximum questions (default: 10, max: 50)
bubblav_get_content_gaps
Return visitor questions that the AI struggled to answer — bot replies with low confidence score or a thumbs-down rating. Use this to prioritise knowledge base improvements. Parameters:date_range(object, optional): Date rangelimit(number, optional): Maximum questions (default: 10, max: 50)
bubblav_get_answerable_questions
Return AI-generated questions that the chatbot can confidently answer from its knowledge base. Questions are generated and cached automatically when knowledge is indexed. Parameters:limit(number, optional): Maximum questions (default: 30, max: 50)
bubblav_delete_knowledge
Delete a text knowledge entry from the knowledge base. Removes the entry and all associated chunks/embeddings. Requires the knowledge entry ID (frombubblav_list_knowledge_sources).
Parameters:
knowledge_id(string, required): UUID of the text knowledge entry to delete
bubblav_sync_ticket_to_knowledge
Sync a resolved support ticket to the knowledge base. Formats the ticket conversation as a searchable article, splits into chunks, and queues for embedding. Requires Pro plan or higher. Parameters:ticket_id(string, required): UUID of the live support ticket to sync
bubblav_list_knowledge_sources
List all knowledge sources for this website. Returns sources from: text entries, Notion pages, Google Docs, Zendesk articles/tickets, and crawled website pages. Parameters: None Example:bubblav_get_visitor_insights
Get insights for a specific visitor including profile data, conversation count, active support tickets, e-commerce orders (Shopify), and subscription status. Note: This tool is not available in the ChatGPT or Muse integrations; it works in Claude, Cursor, OpenClaw, and the dashboard. Parameters:visitor_id(string, required): Visitor ID (from conversation data or live support session)
bubblav_get_hourly_activity
Get hourly activity breakdown showing conversation and support ticket counts per hour (UTC). Returns 24 data points (one per hour), total counts, and peak hour. Defaults to today. Parameters:date_range(object, optional): Date range
bubblav_list_tool_logs
Read the audit log of tool calls made for this website — built-in tools and custom webhook tools — to troubleshoot failures. Each entry includes the tool name, succeeded/failed outcome, error message, a truncated result preview, result size, and the request args (with secrets masked). Returns the most recent calls first. Parameters:limit(number, required): Maximum number of logs to return (max 200)status(string, optional): Filter by outcome —succeededorfailed. Omit to return both.date_range(object, optional): Date range (defaults to the last 7 days)start(string): Start date inyyyy-MM-ddformatend(string): End date inyyyy-MM-ddformat
offset(number, optional): Number of logs to skip for pagination (default: 0)
Custom Tool Management
These tools let AI agents create and manage custom webhook tools for your chatbot. For example, you can ask Claude to add a tool that searches for products, looks up inventory, or finds nearby events. Custom tools require a Pro plan or higher.bubblav_list_custom_tools
List all custom webhook tools for this website with their activation status. Parameters: None Returns:bubblav_create_custom_tool
Create a new custom webhook tool. The tool is activated for the current website by default. Parameters:tool_name(string, required): Unique identifier (letters, numbers, underscores, hyphens)display_name(string, required): Human-readable name shown in dashboarddescription_for_ai(string, required): Instructions for the AI on when and how to use this tooldescription(string, optional): Short human-readable description shown in dashboard. Auto-generated fromdescription_for_aiif omitted.endpoint_url(string, required): Webhook URL the chatbot will call (HTTPS required)authentication_type(string, required):none,bearer, orhmacargument_schema(object, optional): Flat parameter map defining the parameters the tool accepts. Each top-level key must be the real parameter name, and each value may includetype,description,required,default, andmethod(query,body, orpath). Do not wrap it in JSON Schema keys liketype,properties, andrequired.http_method(string, optional):GET,POST,PUT,PATCH, orDELETE(default: GET)activate_for_website(boolean, optional): Auto-activate for current website (default: true)
secret_key is only shown once at creation time. Save it immediately.
Example:
bubblav_update_custom_tool
Update an existing custom webhook tool. Only the fields you provide will be changed. Parameters:tool_id(string, required): UUID of the tool to update (frombubblav_list_custom_tools)display_name(string, optional): New human-readable namedescription_for_ai(string, optional): New AI instructionsdescription(string, optional): New human-readable descriptionendpoint_url(string, optional): New webhook URLauthentication_type(string, optional):none,bearer, orhmacargument_schema(object, optional): New parameter schemahttp_method(string, optional): New HTTP methodis_active(boolean, optional): Enable or disable the tool globally
bubblav_delete_custom_tool
Permanently delete a custom webhook tool. This removes the tool and deactivates it from all websites. Cannot be undone. Parameters:tool_id(string, required): UUID of the tool to delete
bubblav_toggle_custom_tool
Enable or disable a custom tool for this specific website. Tools must be activated per-website before the chatbot can use them. Parameters:tool_id(string, required): UUID of the tool to toggleenabled(boolean, required):trueto enable,falseto disable
Custom Tool Authentication
When creating a tool, choose anauthentication_type based on your endpoint’s security:
Key details:
- A
secret_keyis auto-generated forbearerandhmactypes and returned only once at creation time. - For HMAC, the signature is computed as
HMAC-SHA256(secret, "<timestamp>.<compact_json_body>"). - Your backend must validate the secret/key on every incoming request.
Website & Chatbot Configuration
These tools let an AI agent read and change how your chatbot behaves and looks — the same controls as the dashboard’s Settings and Design pages, plus knowledge sources, forms, and API keys. They are what make agent-driven chatbot management possible.Chatbot persona & website settings
Widget appearance (Design page)
Hiding the “Powered by” branding (powered_by_visible: false) requires a paid plan.
AI search widget (Search page)
These tools manage the search box (search.js), a separate product from the chat widget.
Each AI search uses one message from the plan quota. Changes apply to the live search box within about a minute.
Human handoff (Pro+)
Handoffs are flows: avisitor_intent trigger describing when to escalate (e.g. “wants to
speak to sales”), followed by a request_human node that opens a live-support ticket.
Build them with the flow tools below — see Human Handoff.
Knowledge files & crawl sources
Forms
Help Center
These tools manage the content of the Help Center tab: groups (one folder level, no nesting) and articles. Only published content shows in the widget. A draft group hides its articles. Turn the tab on withshow_help_center_tab in bubblav_update_widget_appearance. Call bubblav_get_help_center first to get the ids the other tools need.
The two delete tools are destructive. MCP clients that honor tool annotations, and Ask BubblaV, ask for your approval before they run.
Flows (Pro+)
API keys
Setup Guide
BubblaV MCP Server supports these connection methods:- ChatGPT - OAuth 2.0, no API key needed
- Claude (claude.ai, Desktop, Cowork, Claude Code) - OAuth 2.0, no API key needed
- Cursor - OAuth 2.0, no API key needed
- Meta Muse - OAuth 2.0, no API key needed
- Google Antigravity - OAuth 2.0, no API key needed
- API Key - For OpenClaw and other MCP clients
OAuth details
- Discovery:
/.well-known/oauth-protected-resourceand/.well-known/oauth-authorization-server. Dynamic client registration (RFC 7591) and client ID metadata documents are supported. - PKCE: send
code_challengewithcode_challenge_method=S256. When the authorization request has a challenge, the token request must send the matchingcode_verifier. Theplainmethod is rejected. - Access level: on the consent screen the user picks Full access or Read only. Full access grants the
mcp:readandmcp:tools:executescopes. Read only grants onlymcp:read:tools/listreturns only the tools withreadOnlyHint: true, and calling any other tool returns an error. A client that requestsscope=mcp:readgets Read only preselected. - Revoking: each connection is an API key named after the client (for example ChatGPT, Claude, Muse). Revoke it under Settings → API Keys in the dashboard to disconnect.
Option 1: ChatGPT (OAuth 2.0)
Use the same MCP server URL:Option 2: Claude (OAuth 2.0)
No API key needed. Claude handles authentication automatically via OAuth. In Claude, open Customize → Connectors and search the directory for BubblaV, or select + → Add custom connector and enter:/plugin marketplace add bubblav-org/bubblav-claude and /plugin install bubblav@bubblav. Full steps: Claude.
Cursor (OAuth 2.0)
Install the BubblaV plugin from the Cursor Marketplace, or addhttps://www.bubblav.com/mcp as a server in mcp.json. Cursor starts OAuth when the agent first calls a BubblaV tool. Full steps: Cursor.
Meta Muse (OAuth 2.0)
In Muse, open Settings → Connectors and connect BubblaV. Muse opens a BubblaV login page. Sign in, select which website to connect, and choose Full access or Read only. Full steps and the tool list with read/write classes: Muse.Option 3: OpenClaw (API Key)
Step 1: Generate an MCP API Key
- Log in to your BubblaV dashboard at https://www.bubblav.com
- Navigate to your Website Settings page
- Click the API Keys tab
- Click Generate New Key
- Enter a name (e.g., “OpenClaw”) and select → MCP scopes
- Click Generate and copy the key immediately — it won’t be shown again
Step 2: Configure OpenClaw using mcporter
We recommend using mcporter to easily configure OpenClaw with BubblaV.Install mcporter
Configure BubblaV in OpenClaw
Create a configuration filebubblav.json:
Manual Configuration
If you prefer manual configuration, add this to your OpenClaw config:Step 3: Test the Connection
Once connected, your OpenClaw agent will have access to:bubblav_search_knowledge- Search your knowledge basebubblav_read_report- Access full analytics reportsbubblav_add_knowledge- Add new knowledge entriesbubblav_delete_knowledge- Remove outdated entriesbubblav_list_knowledge_sources- List all knowledge sourcesbubblav_list_conversations- List and filter conversationsbubblav_get_conversation- Get full conversation detailsbubblav_search_conversations- Full-text search across conversationsbubblav_list_leads- List captured leads (emails)bubblav_list_unanswered_questions- Find knowledge gapsbubblav_get_most_asked_questions- See trending visitor questionsbubblav_get_content_gaps- Identify content improvement areasbubblav_get_answerable_questions- See what your bot can answerbubblav_get_visitor_insights- Get visitor profilesbubblav_get_hourly_activity- Analyze peak support timesbubblav_sync_ticket_to_knowledge- Turn resolved tickets into knowledgebubblav_scrape_url- Scrape web pages to markdownbubblav_list_custom_tools- List custom webhook toolsbubblav_create_custom_tool- Create a new custom toolbubblav_update_custom_tool- Update an existing custom toolbubblav_delete_custom_tool- Delete a custom toolbubblav_toggle_custom_tool- Enable/disable a tool per-websitebubblav_list_tool_logs- Read tool-call logs (status, date range, limit) to debug your custom tools
Option 4: OpenClaw (Automatic Setup)
Setup Everything Automatically
Tell OpenClaw to install and configure everything for BubblaV automatically. Command:- Opens BubblaV dashboard in your browser
- Generates an API key with proper scopes
- Configures OpenClaw with server URL and API key
- Tests connection
- Search knowledge base: Ask your AI agent to search your website content
- Get analytics: Request a conversation or performance report
- Add knowledge: Test adding a new knowledge entry with title and content
Rate Limits
MCP API calls are tracked separately from your AI message limits. Each subscription plan includes a monthly MCP call allowance:
How it works:
- Rolling 30-day window (resets every month from your first call)
- When exceeded, you’ll receive a
429status with aRetry-Afterheader - Check your usage in the dashboard under Integrations → MCP Settings
Security
Authentication Methods
OAuth 2.0 (Claude):- Claude handles the full OAuth flow — you only enter the server URL
- Uses PKCE (Proof Key for Code Exchange) for enhanced security
- Tokens expire after 1 hour (access) or 30 days (refresh)
- No credentials to store or rotate
- Simple authentication via
X-API-Keyheader - Keys can be rotated and revoked
- Supports scoped permissions
API Key & Token Management
- Keep your API key secret - Treat it like a password
- Rotate keys regularly - Generate new keys and revoke old ones
- Use scopes - Only grant the permissions you need
- Monitor usage - Review audit logs regularly
Scopes
Available scopes for MCP API keys and OAuth tokens:mcp:read- Read-only access to your website datamcp:tools:execute- Execute MCP tools and scrape URLs via API
Audit Logging
All MCP tool calls are logged and available in your dashboard:- Tool name and arguments
- Success/failure status
- API key or OAuth token used
- Timestamp
Troubleshooting
Connection Issues
Problem: “Authentication failed” error Solutions:- Verify your API key is correct
- Check that the key hasn’t been revoked
- Ensure the key has the correct scopes
- Confirm your account is active
- Check your usage in the dashboard
- Wait for the monthly window to reset (check
Retry-Afterheader) - Consider upgrading your plan for higher limits
Tool Errors
Problem: “Unknown tool” error Solutions:- Verify you’re using the correct tool names
- Check that your website has indexed content (for knowledge search)
- Ensure your API key has
mcp:tools:executescope
- Check that all required parameters are provided
- Verify parameter types match the schema
- Ensure dates are in ISO format (YYYY-MM-DD)
Knowledge Base Not Available
Problem:bubblav_search_knowledge tool not available
Solutions:
- Ensure your website has been crawled and content indexed
- Check crawl status in the dashboard under Knowledge Base
- Trigger a new crawl if needed
Example Use Cases
Customer Support Agent
Create an agent that can search your documentation and provide analytics:Reporting Bot
Build a bot that generates monthly performance reports:Knowledge Search API
Create a simple search API for your internal tools:Knowledge Gap Auto-Filler
Build an agent that identifies content gaps and fills them automatically:Custom Tool Manager
Let an AI agent manage custom webhook tools for your chatbot:Lead Pipeline Agent
Monitor leads and feed them into your CRM:Support
Need help? Contact us at:- Email: support@bubblav.com
API Reference
Endpoints
MCP (JSON-RPC 2.0):Error Codes
On the JSON-RPC endpoint (
POST /api/mcp), a tools/call that a plan, usage limit, or admin-only gate blocks returns HTTP 200 with a tool result that has isError: true. The content text tells the user what to do, for example “Flows require a Pro plan or higher”.