Supabase Context Retrieval Agent
Summary
Create a Cursor agent prompt that enables retrieval of client context from two Supabase projects:
- Slack messages (
oqtkgsndvitzyfzwcdoz): 97K+ messages across 20+ clients - Zoom transcripts (
viqeppmsqvwpslpvttkk): 63 meetings with transcripts, summaries, and embeddings
This directly addresses Ticket 3 from your internal meeting notes: “Integrate Supabase MCP with Cursor for Transcript Access.”---
Data Architecture
flowchart TB subgraph slack_project [Slack Project - oqtkgsndvitzyfzwcdoz] SlackRaw["client_{name}_messages<br/>Raw Slack messages"] SlackBlocks["_{name}_slack_content_blocks<br/>Aggregated by period/channel"] SlackEmbed["client_{name}_embeddings<br/>Semantic search ready"] end subgraph zoom_project [Zoom Project - viqeppmsqvwpslpvttkk] ZoomFiles["zoom_meeting_recording_files<br/>Transcripts + summaries"] ZoomEmbed["client_{name}_embeddings<br/>Chunked embeddings"] LinearTickets["linear_ticket_generations<br/>Generated tickets"] end subgraph agent [Supabase Context Agent] Router[Request Router] Router --> SlackBlocks Router --> ZoomFiles end subgraph output [Document Generation] Playbook["Playbook Template"] FinalDoc["Generated Document"] end SlackBlocks --> Playbook ZoomFiles --> Playbook Playbook --> FinalDoc
Key Tables by Use Case
For Slack Context (Project: oqtkgsndvitzyfzwcdoz)
| Table Pattern | Purpose | Best For ||--------------|---------|----------|| {client}_slack_content_blocks | Pre-aggregated content by period/channel | Quick context retrieval || client_{client}_messages | Raw messages with timestamps | Detailed conversation analysis || client_{client}_embeddings | Vector embeddings | Semantic search |Available clients: eden, javvy, pp2g, abchome, urbanstems, mattermore, otr, readme, sparkplug, insomniacookies, ellie, interlude, rimo, hypaccess, hedra, honeystinger
For Zoom Context (Project: viqeppmsqvwpslpvttkk)
| Table | Purpose | Key Columns ||-------|---------|-------------|| zoom_meeting_recording_files | Meeting transcripts & summaries | content, summary, meeting_date, participants, team || client_{client}_embeddings | Chunked transcript embeddings | content, embedding, source_record_id || client_{client}_raw | Client-filtered meeting views | Same as zoom_meeting_recording_files |---
Implementation
File 1: Agent Prompt
Location: standards/04-prompts/supabase/supabase-context-agent.md
The agent prompt will:
- Parse user requests to identify client name and data type needed (Slack vs Zoom)
- Route to the correct Supabase project
- Execute appropriate SQL queries via
mcp_supabase_execute_sql - Format results for use with other playbook prompts
Example SQL patterns to include:
-- Get recent Slack context for a client
SELECT period, channel, content, message_count
FROM eden_slack_content_blocks
ORDER BY period DESC LIMIT 5;
-- Get Zoom meeting transcripts for a client
SELECT meeting_date, summary, content, participants
FROM client_eden_raw
WHERE meeting_date >= '2025-01-01'
ORDER BY meeting_date DESC;
-- Search across all meetings by topic
SELECT folder, meeting_date, summary
FROM zoom_meeting_recording_files
WHERE summary ILIKE '%product roadmap%';File 2: Schema Reference
Location: standards/04-prompts/supabase/schema-reference.md
Document the available tables, columns, and project IDs for quick reference.
Example Workflow
User says: “Write a SOW for Eden based on our last 3 meetings”
Agent execution:
- Identifies client:
eden - Identifies data needed: Zoom transcripts
- Executes:
SELECT meeting_date, summary, content FROM client_eden_raw ORDER BY meeting_date DESC LIMIT 3; - Passes context to SOW prompt from
standards/04-prompts/sow/ - Generates SOW using template + meeting context