add-cursor-ambassador

star 4.0k

Adds Cursor Directory ambassador badges by name or email via Supabase. Resolves the person and sets users.is_ambassador. Use when the user asks to add, grant, or promote an ambassador, ambassador badge, or Cursor Ambassador.

cursor By cursor schedule Updated 5/19/2026

name: add-cursor-ambassador description: Adds Cursor Directory ambassador badges by name or email via Supabase. Resolves the person and sets users.is_ambassador. Use when the user asks to add, grant, or promote an ambassador, ambassador badge, or Cursor Ambassador. disable-model-invocation: true

Add Cursor Ambassador

Grant the Cursor Ambassador badge (users.is_ambassador) for cursor.directory. The user provides a name or email (one person per invocation unless they list several).

The person must already have a cursor.directory account.

Prerequisites

  • Supabase MCP connected (user-supabase server).
  • Project ID: knhgkaawjfqqwmsgmxns (Cursor Directory).

Workflow

Copy and track progress:

- [ ] Step 1: Resolve identifier → user row(s)
- [ ] Step 2: Confirm if multiple matches
- [ ] Step 3: Set is_ambassador = true
- [ ] Step 4: Verify and report profile URL

Step 1: Resolve identifier

If input looks like an email (contains @), normalize: trim().toLowerCase().

Lookup by email:

SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE lower(email) = lower('<email>')
LIMIT 5;

If input is a name (or ambiguous), search:

SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE name ILIKE '%<name>%'
ORDER BY name
LIMIT 20;

If input is a UUID, treat as user id:

SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE id = '<uuid>'::uuid;

Use MCP execute_sql with project_id: knhgkaawjfqqwmsgmxns.

Step 2: Disambiguate

Matches Action
0 Stop. Tell the user no matching account was found. They must sign up first; then run this skill again.
1 Use that row
2+ Show a short table (name, slug, email) and ask which person to promote. Do not guess.

Step 3: Promote

If is_ambassador is already true, report they are already an ambassador and link their profile.

Otherwise:

UPDATE public.users
SET is_ambassador = true
WHERE id = '<user_id>'
RETURNING id, name, slug, email, is_ambassador;

Report: promoted with profile URL https://cursor.directory/u/<slug>.

Step 4: Verify

SELECT id, name, slug, email, is_ambassador
FROM public.users
WHERE id = '<user_id>'::uuid;

Response template

## Ambassador: <name or email>

**Status:** promoted | already ambassador | not found

**Profile:** https://cursor.directory/u/<slug>

**Email:** <email>

Removing ambassadors

Only when the user explicitly asks to remove or revoke:

UPDATE public.users
SET is_ambassador = false
WHERE id = '<user_id>'
RETURNING id, name, slug, email;

Notes

  • Badge UI: AmbassadorBadge when is_ambassador is true; listed under /members → Ambassadors tab.
  • If the legacy /api/cron/sync-ambassadors job is still scheduled in Vercel, disable it so it does not fight manual grants.

Batch adds

For multiple people, run Steps 1–3 once per person. Summarize results in a table at the end.

Install via CLI
npx skills add https://github.com/cursor/community-plugins --skill add-cursor-ambassador
Repository Details
star Stars 3,954
call_split Forks 675
navigation Branch main
article Path SKILL.md
More from Creator