Search your team's shared AI-skill library, get install commands, and save skills from your agent.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Skills Board, the agent-native skills registry for teams. Keep your team's AI skills in one place, so everyone knows where to find and use them.
Try the hosted app Β· Run it locally Β· Contribute
Useful skills tend to disappear into chats, bookmarks, and personal agent setups. Skills Board gives a team one searchable place to collect them and lets every teammate choose how to use them.
[!IMPORTANT] A saved skill is a team's own choice, not a security review, compatibility certification, or pinned release. Skills Board reads the latest available source; inspect that source before using it in an agent.
The public catalog can help with discovery when the deployment has Vercel OIDC available. The team library and direct GitHub flow remain the core product.
Generate a Better Auth secret with openssl rand -base64 32, then add it and your PostgreSQL connection string to .env.local.
Apply the committed Drizzle migrations to a new database. This creates both the Better Auth tables and the application-specific tables from the versioned SQL in drizzle/.
Open http://localhost:3000. Restart the server after changing DATABASE_URL, because the PostgreSQL pool is created when the module loads.
| Variable | Required | Purpose |
|---|---|---|
DATABASE_URL | Yes | PostgreSQL connection string used by the application; Neon may use the pooled URL here. |
DATABASE_URL_UNPOOLED | For migrations on Neon | Direct PostgreSQL connection used by Drizzle migrations. It can match DATABASE_URL for local, non-pooled Postgres. |
BETTER_AUTH_SECRET | Yes | Secret used to sign and encrypt authentication data. |
BETTER_AUTH_URL | Recommended | Public application origin; use http://localhost:3000 locally. |
CRON_SECRET | Yes for hosted release cleanup | Dedicated random secret used to authenticate the daily expired collection-release cleanup configured in vercel.json. |
RESEND_API_KEY | Yes outside development | Sends sign-in OTP and team invitation emails through Resend. |
EMAIL_FROM | Yes outside development | Verified Resend sender for OTP and invitation emails (e.g. Skills Board <login@your-verified-domain.com>). |
RESEND_WEBHOOK_SECRET | Yes for hosted email delivery | Verifies Resend bounce, complaint, suppression, and unsubscribe webhooks. |
EMAIL_PRIVACY_SECRET | Yes in Vercel Production | At least 32 random bytes encoded as base64 or hex; the dedicated root for email hashes and encrypted unsubscribe links. Local/self-hosted environments can fall back to a domain-separated key derived from BETTER_AUTH_SECRET. |
EMAIL_PRIVACY_SECRET_PREVIOUS | Only during key rotation | JSON array of retained base64/hex roots used for dual-hash suppression lookup and unsubscribe-token decryption. A prior root cannot be removed while retained records still depend on it. |
KV_REST_API_URL | Yes outside development | REST endpoint of the Upstash Redis database that counts email capture submissions per client address. On Vercel, the Marketplace integration writes it into the project by itself. |
KV_REST_API_TOKEN | Yes outside development | REST token for that database, written by the same integration. The read-only token it also writes is not used. |
UPSTASH_REDIS_REST_URL | Self-hosted alternative | Same endpoint under the canonical Upstash name, for a database created by hand. The Upstash client reads it before KV_REST_API_URL, so a Vercel project leaves it unset. |
UPSTASH_REDIS_REST_TOKEN | Self-hosted alternative | Same token under the canonical Upstash name, read before KV_REST_API_TOKEN. With neither pair complete, the capture form keeps working and is not rate limited. |
GITHUB_TOKEN | No | Raises GitHub API rate limits for metadata and ZIP downloads. |
VERCEL_OIDC_TOKEN | No | Supplied automatically by Vercel for the optional skills.sh catalog. |
Sign-in and sign-up use email one-time codes (no passwords). Outside development, configure both RESEND_API_KEY and a domain-verified EMAIL_FROM; the fallback Resend test sender only works for Resendβs own test recipients. In development, OTP emails are skipped and any 6-digit code works. Without Vercel OIDC, the Discover catalog degrades gracefully while team libraries continue to work.
Hosted deployments run the collection-release retention cleanup once per day. Set CRON_SECRET in the Vercel Production environment before deploying; the endpoint fails closed when the secret is absent. Self-hosted deployments can invoke /api/cron/collection-release-retention from their scheduler with Authorization: Bearer <CRON_SECRET>.
The public email capture form is rate limited to five submissions an hour per client address, counted in Upstash Redis under hashed addresses. On Vercel, add an Upstash Redis database from the Marketplace in a region close to the deployment and connect it to the project: the integration writes KV_REST_API_URL and KV_REST_API_TOKEN into Production and Preview, and nothing else has to be set. Self-hosted deployments point at a database created in console.upstash.com and set UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN instead. The Upstash client reads the canonical pair first and falls back to the KV_REST_API_ one, so where both are present the canonical pair is what counts. Either way the form fails open: with no credentials, or with Redis unreachable, submissions are accepted uncounted and the gap is logged.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/skills-board)<a href="https://allmcps.com/mcp/skills-board"><img src="https://allmcps.com/api/badge/skills-board?style=directory" alt="Skills Board on AllMCPs" /></a>