/ Directory / Playground / convexskills
● Community waynesutton ⚡ Instant

convexskills

by waynesutton · waynesutton/convexskills

12 Convex-specific skills covering functions, schema, realtime, cron, HTTP actions, file storage, agents, security audits, and migrations.

A focused skill collection for building on Convex. Each SKILL.md (valid Agent Skill frontmatter + examples + best practices) teaches Claude idiomatic Convex patterns: queries vs mutations vs actions, reactive realtime, cron jobs, HTTP webhooks, schema validators, migrations, and security auditing. Claude stops inventing Convex APIs.

Why use it

Key features

Live Demo

What it looks like in practice

convexskills-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "convexskills-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/waynesutton/convexskills",
        "~/.claude/skills/convexskills"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "convexskills-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/waynesutton/convexskills",
        "~/.claude/skills/convexskills"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "convexskills-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/waynesutton/convexskills",
        "~/.claude/skills/convexskills"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "convexskills-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/waynesutton/convexskills",
        "~/.claude/skills/convexskills"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "convexskills-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/waynesutton/convexskills",
        "~/.claude/skills/convexskills"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "convexskills-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/waynesutton/convexskills",
          "~/.claude/skills/convexskills"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add convexskills-skill -- git clone https://github.com/waynesutton/convexskills ~/.claude/skills/convexskills

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use convexskills

Scaffold a new Convex app with realtime + auth + file uploads

👤 Full-stack devs starting a new Convex project ⏱ ~90 min intermediate

When to use: You're starting fresh and want correct Convex patterns from file one.

Prerequisites
  • Convex CLI — npm create convex
Flow
  1. Design the schema
    Use the convex-schema-validator skill. Design tables for users, projects, and files with proper indices.✓ Copied
    → Schema uses v.id(), indices declared, relationships correct
  2. Wire queries and mutations
    Use the convex-functions skill. Implement CRUD for projects.✓ Copied
    → Query for reads, mutation for writes, no action misuse
  3. Add realtime + file uploads
    Use convex-realtime and convex-file-storage to make projects live-update with file attachments.✓ Copied
    → React subscribes via useQuery, files stored via storage.generateUploadUrl

Outcome: A correctly-structured Convex app you can build on.

Pitfalls
  • Using actions where mutations suffice — Skill enforces: mutations for DB writes, actions for external I/O

Add a daily cron job that cleans up stale rows

👤 Convex devs adding background maintenance ⏱ ~20 min beginner

When to use: You need a scheduled task without spinning up a worker.

Flow
  1. Use the cron skill
    Use convex-cron-jobs. Add a daily job that deletes rows older than 30 days from table sessions.✓ Copied
    → crons.ts entry + internal mutation for the cleanup
  2. Test
    Give me a way to trigger this manually for testing.✓ Copied
    → Dev-only HTTP action or CLI recipe

Outcome: A cron running on Convex's managed scheduler.

Pitfalls
  • Cron runs a query instead of internal mutation — Skill enforces internal mutation for deletes

Audit a Convex app for authorization holes

👤 Devs before a production launch ⏱ ~45 min advanced

When to use: Your app is ready but you haven't pressure-tested auth.

Flow
  1. Run the audit
    Use convex-security-audit on this repo. Check every public mutation for proper auth.✓ Copied
    → Per-function auth posture with severity
  2. Fix
    Apply the fixes with identity checks and fallback to return null for unauthorized reads.✓ Copied
    → Functions updated with ctx.auth checks

Outcome: Auth tightened before production.

Pitfalls
  • Relying on 'public=unauthenticated' mental model — Convex public functions are INTERNET-reachable; skill insists on auth checks
Combine with: github

Combinations

Pair with other MCPs for X10 leverage

convexskills-skill + github

Skill designs + implements; GitHub MCP opens the PR

Use convexskills to build the feature, then open a PR with the changes.✓ Copied
convexskills-skill + playwright-skill

Build Convex backend, then Playwright tests the UI end-to-end

Implement the Convex backend, then write a playwright-skill test that hits the UI and verifies realtime updates.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
convex-functions function need Any function work 0
convex-schema-validator data model Designing or changing tables 0
convex-realtime UI use case Adding reactive UI 0
convex-cron-jobs scheduled task Periodic background work 0
convex-migrations schema change Evolving an existing schema 0
convex-security-audit repo Pre-production review 0

Cost & Limits

What this costs to run

API quota
None for the skill; Convex has its own free + paid tiers
Tokens per call
2-6k per skill loaded
Monetary
Free — skill is local. Convex has a generous free tier.
Tip
Name the specific skill (e.g. convex-cron-jobs) to avoid loading the full set.

Security

Permissions, secrets, blast radius

Credential storage: No credentials in the skill. Convex deploy keys stay in your .env.
Data egress: None from the skill itself

Troubleshooting

Common errors and fixes

Claude writes an action when a mutation suffices

Rule of thumb the skill enforces: DB-only → mutation; external I/O → action.

Schema change breaks existing data

Use convex-migrations skill — it plans safe transitions with backfill.

useQuery doesn't update in realtime

Check reactivity: the query must read the data that changed, not a stale index.

Alternatives

convexskills vs others

AlternativeWhen to use it insteadTradeoff
Manual Convex docs + examplesYou're already an experienced Convex devSlower onboarding without the skill
Framework-specific fullstack skillsYou're not on ConvexDifferent stack

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills