Quick Start
Base URL: https://<PROJECT_REF>.supabase.co
Example Request
curl -X POST "https://<PROJECT_REF>.supabase.co/functions/v1/mcp-readonly" \
-H "Authorization: Bearer $SUPABASE_ANON_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "kb_search",
"arguments": {
"query": "charging error codes",
"match_count": 5
}
}
}'
Available Tools
Search & Discovery
kb_search
Primary semantic search across all sources (documents, tickets, Slack, WoD)
search
OpenAI Deep Research compatible search (flat results)
fetch
Get full content by ID after search
Data Browsing
query_table
SQL-like queries with filters (up to 500 rows)
count_rows
Aggregations, statistics, group by
list_tables
Discover all 14 tables and schemas
db_table_stats
Quick row counts for all tables
Relationship Traversal
fetch_thread_messages
Complete Slack thread (up to 200 messages)
fetch_conversation_messages
Complete HubSpot ticket thread
fetch_document_full
Full document content (up to 200K chars)
fetch_wod_deal_full
Complete WoD deal with circuits, costs, offers
fetch_notion_children
Navigate Notion page hierarchy
Analytics & Insights
analyze_slack_thread_network
Identify experts by participation
analyze_training_resolution_patterns
Common issues and resolutions
find_similar_documents
Find docs by metadata similarity
compare_wod_deals
Side-by-side deal comparison (2-5 deals)
aggregate_costs_by_category
WoD cost analytics
get_data_freshness_report
Check sync status for all sources
Embedding Tools
get_embeddings
Raw 1536-dimensional vectors
generate_embedding
Convert text to vector
compute_similarity
Compare text against records
Database Schema
| Table | Records | Description |
|---|---|---|
documents |
9,588 | PDFs, Word docs, FAQs, specifications, guides |
training_conversations |
15,095 | HubSpot support tickets with embeddings |
training_messages |
~50K | Individual messages within conversations |
slack_threads |
450+ | Slack thread root messages |
slack_messages |
893 | Slack messages with embeddings |
wod_deals |
57 | Wheel of Deal pricing (42 columns) |
notion_pages |
127 | Platform documentation |
Data Freshness
| Source | Sync Schedule |
|---|---|
| Slack messages | Daily at 06:00 UTC |
| HubSpot tickets | Daily at 06:00 UTC |
| Notion pages | Daily at 05:00 UTC |
| Documents | Manual ingestion |
Response Format
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"results\": [...], \"total\": 5}"
}
]
}
}