blb-support (Agent Plugin)
Read/triage BigLaw Bear public.support_issues for Clerk ops via a stdio MCP server.
- Supabase project:
lsjftwebzivyxgszozom(common-counsel-v2) - API base:
https://lsjftwebzivyxgszozom.supabase.co - Triage UI:
https://www.biglawbear.com/admin/support?issue=<id>
Layout
plugin.json # Agent Plugins 1.0.0 manifest
mcp.json # stdio MCP server wiring
server.mjs # zero-dep Node ESM JSON-RPC MCP + PostgREST
skills/blb-support/SKILL.md
README.md
PROVE.md
.env.example
Note: Agent Plugins
plugin.schema.json1.0.0 has novariablesfield (additionalProperties: false). Env vars are declared inmcp.jsonenvand documented here.
Environment
| Variable | Required | Default | Notes |
|---|---|---|---|
SUPABASE_URL | no | https://lsjftwebzivyxgszozom.supabase.co | PostgREST base |
SUPABASE_SERVICE_ROLE_KEY | yes | — | Service role; server exits if missing |
Set these in the Cursor plugin / MCP env UI (or shell when smoke-testing). Never commit real keys.
MCP tools
list_support_issues— optionalstatus,category,limit(default 20). ReturnsSupportIssue[]withoutbody.get_support_issue—{ id }→ fullSupportIssueincludingbody/adminNotes.mark_support_resolved—{ id, response?, adminNotes? }→ setsstatus=resolved,responded_at=now(),last_admin_action_at=now().escalate_bug_to_builder—{ id }→ ifstatus=new→in_progress; appendsESCALATED_TO_BUILDER <iso>toadmin_notes; returns{ issue, builderSignal }.
Column map
| DB | Domain |
|---|---|
reporter_email | reporter |
created_at | createdAt |
updated_at | updatedAt |
page_url | pageUrl |
owner_email | ownerEmail |
admin_notes | adminNotes |
| (constructed) | triageUrl |
How Clerk calls tools
- List open work:
list_support_issueswithstatus: "new"(or omit filter). - Open one ticket:
get_support_issuewith UUID. - Close after reply:
mark_support_resolvedwith optionalresponse/adminNotes. - Hand a bug to Builder:
escalate_bug_to_builder, then SendToAgent Builder with thebuilderSignalpayload.
Escalate → Builder signal shape
{
"type": "blb_support_bug",
"issueId": "<uuid>",
"subject": "...",
"reporter": "user@example.com",
"category": "bug",
"triageUrl": "https://www.biglawbear.com/admin/support?issue=<uuid>",
"summary": "first ~500 chars of body (or subject)"
}
If category ≠ bug, the tool warns but still escalates (warnings array on the result).
Local run / smoke
export SUPABASE_URL=https://lsjftwebzivyxgszozom.supabase.co
export SUPABASE_SERVICE_ROLE_KEY=test # dummy enough for initialize + tools/list
node server.mjs # then JSON-RPC lines on stdin; see scripts/smoke-mcp.mjs
Live tools/call against PostgREST requires a real service role key.
Cursor IDE install
Copy this directory to ~/.cursor/plugins/local/blb-support (real directory, not a symlink outside). Grok Bot does not load ~/.cursor/plugins/local — marketplace/dashboard plugins only.