mcpField
S
Skills Board

Skills Board

远程服务
skillsboard.shAI 与智能体94 周前更新

关于 Skills Board

Skills Board 是面向团队的 AI 技能库,可集中保存和搜索技能,并提供安装命令或 ZIP 文件。团队成员可将同一条目用于不同 Agent;认证保护的 MCP 工具可搜索、整理技能及集合。

主要功能

  1. 01集中保存团队技能
  2. 02按任务、描述、仓库或标签搜索
  3. 03提供安装命令和 ZIP 下载
  4. 04按组织管理成员访问
  5. 05支持带权限范围的 MCP 工具

适用场景

  1. 01为团队整理共享的 AI 技能
  2. 02为不同 Agent 查找兼容技能
  3. 03让 Agent 搜索并整理技能集合

MCP 相关

Skills Board 在 `/api/mcp` 提供受 OAuth 保护的端点。工具可搜索技能和集合、获取安装命令;具备 `skills:write` 权限时,还可保存技能并整理集合。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://www.skillsboard.sh/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Skills Board:团队技能,一处汇集。

Skills Board 是面向团队的 Agent 原生技能注册库。将团队的 AI 技能集中管理,让每个人都知道去哪里查找和使用它们。

GitHub 星标数 MIT 许可证 CI 状态

试用托管应用 · 在本地运行 · 参与贡献

## 为什么选择 Skills Board

实用的技能往往会散落在聊天记录、书签和个人 Agent 配置中。Skills Board 为团队提供一个可搜索的集中空间来收集技能,并让每位队友选择自己的使用方式。

  • 团队共享库。 只需保存一次实用技能,使用团队专属标签进行整理,方便日后查找。
  • 欢迎使用不同的 Agent。 在 Claude、Codex、Cursor 和其他 Agent 配置中共享同一条目。
  • 多种交接方式。 打开原始来源、复制兼容的安装命令,或将最新技能文件下载为 ZIP。
  • 按组织范围控制访问。 创建团队、邀请成员,并让每个库仅对其成员开放。
  • 可选的 MCP 访问。 将兼容的 Agent 连接到经过身份验证且受范围控制的工具,用于查找和整理团队技能与集合。

重要

保存某项技能代表团队自行选择,并不意味着经过安全审查、兼容性认证或固定版本。Skills Board 会读取最新可用来源;在 Agent 中使用前,请先检查该来源。

工作原理

  1. 创建团队库,并从其 GitHub 仓库添加技能。
  2. Skills Board 会显示原始来源,并为团队记录该条目。
  3. 队友可以按任务、描述、仓库或标签搜索。
  4. 每位队友都可以打开来源、复制兼容的命令,或将最新文件下载为 ZIP。

如果部署环境支持 Vercel OIDC,公共目录可以帮助发现技能。团队库和直接通过 GitHub 添加技能仍是产品的核心功能。

在本地运行

前置条件
  • Node.js 20.9 或更高版本
  • pnpm 10
  • PostgreSQL 15 或更高版本
1. 安装应用
git clone https://github.com/TommyBez/skillsboard.git
cd skillsboard
corepack enable
pnpm install
cp .env.example .env.local

使用 openssl rand -base64 32 生成 Better Auth 密钥,然后将其和 PostgreSQL 连接字符串添加到 .env.local。

2. 准备数据库

将已提交的 Drizzle 迁移应用到新数据库。此操作会根据 drizzle/ 中的版本化 SQL,创建 Better Auth 表和应用专用表。

pnpm db:migrate
3. 开始开发
pnpm dev

打开 http://localhost:3000。更改 DATABASE_URL 后,请重启服务器,因为 PostgreSQL 连接池会在模块加载时创建。

环境变量
变量必填用途
DATABASE_URL是应用使用的 PostgreSQL 连接字符串;Neon 可在此使用连接池 URL。
DATABASE_URL_UNPOOLED在 Neon 上执行迁移时必填Drizzle 迁移使用的直接 PostgreSQL 连接。对于本地的非连接池 Postgres,可与 DATABASE_URL 相同。
BETTER_AUTH_SECRET是用于签名和加密身份验证数据的密钥。
BETTER_AUTH_URL建议应用的公开源地址;在本地使用 http://localhost:3000。
CRON_SECRET托管版本清理时必填专用随机密钥,用于验证 vercel.json 中配置的每日过期合集版本清理任务。
RESEND_API_KEY在开发环境之外必填通过 Resend 发送登录 OTP 和团队邀请邮件。
EMAIL_FROM在开发环境之外必填用于 OTP 和邀请邮件的已验证 Resend 发件人(例如 Skills Board <[email protected]>)。
RESEND_WEBHOOK_SECRET托管邮件投递时必填验证 Resend 的退信、投诉、抑制和取消订阅 Webhook。
EMAIL_PRIVACY_SECRET在 Vercel Production 中必填至少 32 个随机字节,以 base64 或 hex 编码;用于生成邮件哈希和加密取消订阅链接的专用根密钥。本地/可自托管环境可回退到由 BETTER_AUTH_SECRET 派生的域分隔密钥。
EMAIL_PRIVACY_SECRET_PREVIOUS仅在密钥轮换期间需要保留的 base64/hex 根密钥 JSON 数组,用于双哈希抑制查找和取消订阅令牌解密。只要保留的记录仍依赖某个旧根密钥,就不能移除它。
KV_REST_API_URL在开发环境之外必填Upstash Redis 数据库的 REST 端点,用于统计每个客户端地址提交的邮件捕获次数。在 Vercel 上,Marketplace 集成会自动将其写入项目。
KV_REST_API_TOKEN在开发环境之外必填该数据库的 REST 令牌,由同一集成写入。集成同时写入的只读令牌不会使用。
UPSTASH_REDIS_REST_URL可自托管的替代项使用规范 Upstash 名称的同一端点,适用于手动创建的数据库。Upstash 客户端会优先读取此变量,而非 KV_REST_API_URL,因此 Vercel 项目应将其留空。
UPSTASH_REDIS_REST_TOKEN可自托管的替代项使用规范 Upstash 名称的同一令牌,读取优先级高于 KV_REST_API_TOKEN。若两组变量都未完整设置,捕获表单仍可正常工作,但不会进行速率限制。
GITHUB_TOKEN否提高用于元数据和 ZIP 下载的 GitHub API 速率限制。
VERCEL_OIDC_TOKEN否Vercel 会自动提供,用于可选的 skills.sh 目录。

登录和注册使用电子邮件一次性验证码(无需密码)。在开发环境之外,请配置 RESEND_API_KEY 和经过域名验证的 EMAIL_FROM;Resend 的备用测试发件人仅适用于 Resend 自己的测试收件人。在开发环境中会跳过 OTP 邮件,且任意 6 位验证码均可使用。没有 Vercel OIDC 时,发现目录会优雅降级,团队库仍可正常使用。

托管部署每天运行一次合集版本保留清理任务。部署前,请在 Vercel Production 环境中设置 CRON_SECRET;未设置该密钥时,端点会拒绝所有请求。可自托管部署可通过调度器调用 /api/cron/collection-release-retention,并附带 Authorization: Bearer <CRON_SECRET>。 公开邮箱收集表单按客户端地址进行速率限制,每小时最多提交 5 次,并在 Upstash Redis 中按哈希地址计数。在 Vercel 上,从 Marketplace 添加一个靠近部署区域的 Upstash Redis 数据库,并将其连接到项目:该集成会将 KV_REST_API_URL 和 KV_REST_API_TOKEN 写入 Production 和 Preview,无需设置其他内容。可自托管的部署需使用在 console.upstash.com 创建的数据库,并改为设置 UPSTASH_REDIS_REST_URL 和 UPSTASH_REDIS_REST_TOKEN。Upstash 客户端会优先读取规范的一对变量,并在缺失时回退到 KV_REST_API_ 变量,因此两者都存在时,以规范的一对为准。无论哪种情况,表单都会采用开放失败策略:没有凭据或 Redis 无法访问时,提交仍会被接受,但不计数,并记录这一情况。

产品通信与事务性 OTP 和邀请邮件相互独立。注册时的同意为可选项,默认关闭,可在 Settings → Email 下更改;系统通过本地同意历史记录、抑制记录、已签名的退订链接和已验证的 Resend 投递 Webhook 来强制执行相关要求。配置产品广播前,请参阅 docs/email-compliance.md。

MCP 接入

Skills Board 在 /api/mcp 提供受 OAuth 保护的 MCP 端点。登录后,打开 Settings → MCP 进行连接。工具可搜索团队技能和集合、获取安装命令,以及发现公开技能或仓库技能。拥有 skills:write 权限时,还可保存新技能并整理集合。它们无法编辑或删除已保存的团队技能、在 Agent 中安装技能,也无法执行技能。

完整规范见 skillsboard.sh/developers(Markdown 版本见 /developers.md):其中包括公开端点、OAuth 流程、每个工具及其所需的权限范围,以及 HTTP 接口遵循的版本、错误和速率限制约定。机器可读的完整索引见 /llms.txt。

官方插件

此仓库同时也是官方 Skills Board 插件的市场。该插件包含上述 MCP 服务配置,以及一项介绍如何通过 Agent 使用团队技能库的技能。它不绑定某个特定客户端:plugin/ 目录中包含符合 Agent Plugins 1.0.0 规范的清单,以及配套的 Claude Code 清单。安装此插件是上述手动配置 MCP 的替代方案,而不是后续步骤。

在 Claude Code 中:

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

在任何支持 plugins CLI 的客户端中:

npx plugins add TommyBez/skillsboard

安装插件会配置 MCP 服务。要连接 MCP 服务,仍需登录 Skills Board,并在客户端中批准所请求的权限范围。

技术栈

层技术
应用Next.js 16 App Router、React 19、TypeScript
UITailwind CSS 4、shadcn/ui、Base UI
身份验证Better Auth(邮箱 OTP),支持组织和 OAuth 提供商
数据PostgreSQL、Drizzle ORM
邮件Resend 和 React Email
Agent 接入通过 mcp-handler 使用 Model Context Protocol
托管托管部署使用 Vercel 和 Neon;支持自托管

项目命令

命令功能
pnpm dev启动 Turbopack 开发服务器。
pnpm typecheck运行 TypeScript 编译器,但不生成文件。
pnpm check运行仓库要求的本地检查。
pnpm db:generate --name <description>更改架构后生成带版本号的迁移。
pnpm db:check检查架构是否与已提交的迁移快照一致。
pnpm db:migrate将待处理的迁移应用到已配置的数据库。
pnpm db:push仅将架构推送到用于原型开发的一次性数据库。
pnpm build创建生产构建。
pnpm start启动生产服务器。
pnpm email在端口 3001 上预览 React Email 模板。

贡献

欢迎提交问题和拉取请求。进行重大更改前,请阅读 CONTRIBUTING.md,遵守行为准则,并按照 SECURITY.md 中的流程报告漏洞。

在贡献者页面查看帮助构建 Skills Board 的贡献者。

许可证

Skills Board 采用 MIT 许可证。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。