skillsboard

MCP serverSearch

skillsboard connects your AI to the skill library your team shares, so it can find abilities coworkers have already added and get the install commands to use them. It can also save new skills straight from your agent so the whole team can benefit. Once added, your AI can look up skills on demand during your conversations.

Use skillsboard in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add skillsboard and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use skillsboard

Details

Available today. Use it from your connected AI after setup.

Add skillsboard, then ask your AI to search the shared library for a skill you need. When it finds one, it can pull up the install command or save the skill for the team.

skillsboardStart free

What your AI can do with it

  • Search your team's shared library of AI skills
  • Find skills that match a task without leaving the conversation
  • Get install commands for any skill it finds
  • Save skills from your agent to the shared library
  • Reuse abilities your teammates have already added

Install skillsboard

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user skillsboard 'https://www.skillsboard.sh/api/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://www.skillsboard.sh/api/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=skillsboard&config=eyJ1cmwiOiJodHRwczovL3d3dy5za2lsbHNib2FyZC5zaC9hcGkvbWNwIn0=

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://www.skillsboard.sh/api/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add skillsboard --url 'https://www.skillsboard.sh/api/mcp'

    Run it once, then sign in with codex mcp login skillsboard if the server asks for an account.

From the project's README

As published by tommybez/skillsboard in README.md.

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.

Why Skills Board

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.

  • One team library. Save useful skills once, organize them with team-specific tags, and make them easy to find again.
  • Different agents welcome. Share the same entry across Claude, Codex, Cursor, and other agent setups.
  • A choice of handoff. Open the original source, copy a compatible install command, or download the latest skill files as a ZIP.
  • Organization-scoped access. Create a team, invite members, and keep each library available to its members.
  • Optional MCP access. Connect compatible agents to authenticated, scope-controlled tools for finding and organizing team skills and collections.

[!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.

How it works

  1. Create a team library and add a skill from its GitHub repository.
  2. Skills Board keeps the original source visible and records the entry for the team.
  3. Teammates search by task, description, repository, or tag.
  4. Each teammate opens the source, copies a compatible command, or downloads the latest files as a ZIP.

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.

Run locally

Prerequisites

  • Node.js 20.9 or newer
  • pnpm 10
  • PostgreSQL 15 or newer

1. Install the app

git clone https://github.com/TommyBez/skillsboard.git
cd skillsboard
corepack enable
pnpm install
cp .env.example .env.local

Generate a Better Auth secret with openssl rand -base64 32, then add it and your PostgreSQL connection string to .env.local.

2. Prepare the database

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/.

pnpm db:migrate

3. Start developing

pnpm dev

Open http://localhost:3000. Restart the server after changing DATABASE_URL, because the PostgreSQL pool is created when the module loads.

Environment variables

VariableRequiredPurpose
DATABASE_URLYesPostgreSQL connection string used by the application; Neon may use the pooled URL here.
DATABASE_URL_UNPOOLEDFor migrations on NeonDirect PostgreSQL connection used by Drizzle migrations. It can match DATABASE_URL for local, non-pooled Postgres.
BETTER_AUTH_SECRETYesSecret used to sign and encrypt authentication data.
BETTER_AUTH_URLRecommendedPublic application origin; use http://localhost:3000 locally.
CRON_SECRETYes for hosted release cleanupDedicated random secret used to authenticate the daily expired collection-release cleanup configured in vercel.json.
RESEND_API_KEYYes outside developmentSends sign-in OTP and team invitation emails through Resend.
EMAIL_FROMYes outside developmentVerified Resend sender for OTP and invitation emails (e.g. Skills Board <login@your-verified-domain.com>).
RESEND_WEBHOOK_SECRETYes for hosted email deliveryVerifies Resend bounce, complaint, suppression, and unsubscribe webhooks.
EMAIL_PRIVACY_SECRETYes in Vercel ProductionAt 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_PREVIOUSOnly during key rotationJSON 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_URLYes outside developmentREST 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_TOKENYes outside developmentREST token for that database, written by the same integration. The read-only token it also writes is not used.
UPSTASH_REDIS_REST_URLSelf-hosted alternativeSame 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_TOKENSelf-hosted alternativeSame 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_TOKENNoRaises GitHub API rate limits for metadata and ZIP downloads.
VERCEL_OIDC_TOKENNoSupplied 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.

Product communications are separate from transactional OTP and invitation email. Signup consent is optional and off by default, can be changed under Settings → Email, and is enforced with local consent history, suppression records, signed unsubscribe links, and verified Resend delivery webhooks. See docs/email-compliance.md before configuring a product broadcast.

MCP access

Skills Board exposes an OAuth-protected MCP endpoint at /api/mcp. After signing in, open Settings → MCP to connect it. The tools can search team skills and collections, retrieve install commands, and discover public or repository skills. With skills:write, they can save new skills and organize collections. They cannot edit or delete saved team skills, install them in an agent, or execute them.

The full contract lives at skillsboard.sh/developers (Markdown at /developers.md): the public endpoints, the OAuth flow, every tool and the scope it needs, and the versioning, error, and rate-limit conventions the HTTP surface follows. The machine-readable index of all of it is /llms.txt.

Official plugin

This repository is also the marketplace for the official Skills Board plugin. The plugin ships the MCP server configuration above and one skill that explains how to use a team library from an agent. It is not tied to one client: the directory in plugin/ carries an Agent Plugins 1.0.0 manifest, and a Claude Code manifest alongside it. Installing it is an alternative to the manual MCP setup above rather than a step after it.

In Claude Code:

/plugin marketplace add TommyBez/skillsboard
/plugin install skills-board@skills-board

In any client the plugins CLI supports:

npx plugins add TommyBez/skillsboard

Installing the plugin configures the MCP server. Connecting it still requires signing in to Skills Board and approving the requested scopes in the client.

Tech stack

LayerTechnology
ApplicationNext.js 16 App Router, React 19, TypeScript
UITailwind CSS 4, shadcn/ui, Base UI
AuthenticationBetter Auth (email OTP) with organizations and OAuth provider support
DataPostgreSQL, Drizzle ORM
EmailResend and React Email
Agent accessModel Context Protocol via mcp-handler
HostingVercel and Neon in the hosted deployment; self-hosting is supported

Project commands

CommandWhat it does
pnpm devStart the Turbopack development server.
pnpm typecheckRun the TypeScript compiler without emitting files.
pnpm checkRun the repository's required local checks.
pnpm db:generate --name <description>Generate a versioned migration after changing the schema.
pnpm db:checkCheck that the schema and committed migration snapshots match.
pnpm db:migrateApply pending migrations to the configured database.
pnpm db:pushPush the schema only to a throwaway database used for prototyping.
pnpm buildCreate a production build.
pnpm startStart the production server.
pnpm emailPreview React Email templates on port 3001.

Contributing

Issues and pull requests are welcome. Read CONTRIBUTING.md before making a substantial change, follow the Code of Conduct, and report vulnerabilities through the process in SECURITY.md.

See the people who have helped build Skills Board on the contributors page.

License

Skills Board is available under the MIT License.

Signals

GitHub stars
7
Last commit
Sep 2026
Advanced
Delivery
skillsboard MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-tommybez-skillsboard
Source
github.com/tommybez/skillsboard
Hosted endpoint
https://www.skillsboard.sh/api/mcp