内容
# VibeBasket

将受信任的 MCP 服务器、代理技能和项目规则捆绑到一个可共享的安装命令中。适用于 24 种 AI IDE 和 CLI 工具,只需一个链接。
[](package.json)
[](https://www.npmjs.com/package/vibebasket)
[](tsconfig.base.json)
[](https://github.com/mhmtayberk/VibeBasket/actions/workflows/ci.yml)
[](https://github.com/mhmtayberk/VibeBasket/security)
[](LICENSE)
---
## 目录
- [什么是 VibeBasket?](#什么是vibebasket)
- [它的定位](#它的定位)
- [它不是什么](#它不是什么)
- [支持的 IDE(24 个目标)](#支持的ide24-个目标)
- [核心功能](#核心功能)
- [快速开始](#快速开始)
- [自我托管](#自我托管)
- [CLI 使用](#cli-使用)
- [配置](#配置)
- [架构](#架构)
- [仓库文档](#仓库文档)
- [安全](#安全)
- [许可证](#许可证)
## 什么是 VibeBasket?
停止为每个 IDE 手动配置 MCP 服务器。浏览一个受信任的目录,同步数万个社区和官方集成,挑选所需内容,生成一个单独的 `npx` 命令,安装所有内容 - 不可逆转,具有自动备份,适用于您使用的所有工具。
```
npx vibebasket apply https://vibebasket.dev/api/bundle/cj2k9x
```
CLI 也发布在 npm 上,名为 [`vibebasket`](https://www.npmjs.com/package/vibebasket)。
对于维护者:仅在需要手动本地发布或私有注册表访问时,将本地 npm 凭证保留在用户级 `~/.npmrc` 中。仓库故意不依赖于跟踪的项目 `.npmrc`。
仓库现在已启用 GitHub Actions 的 npm 发布功能,位于 [`.github/workflows/publish.yml`](.github/workflows/publish.yml)。在 npm Trusted Publisher 设置中链接软件包后,已发布的 GitHub 版本可以使用 npm 来源发布,无需长期有效的发布令牌。工作流还为故意需要手动发布运行的维护者保留了手动 `workflow_dispatch` 路径。
## 它的定位
- 跨多个 AI IDE 和终端工具标准化 MCP 密集型设置
- 将一个精选的堆栈转变为团队或项目的可重复安装流程
- 保持安装行为不可逆转,以便安全地重新应用捆绑包
- 允许自我托管者在单个 VPS 上运行整个堆栈,无需添加 Redis、Postgres 或额外基础设施
## 它不是什么
- 用于端用户运行时凭证的托管机密管理器
- 默认情况下具有共享缓存/状态基础设施的多节点控制平面
- 用于 MCP、技能和规则之外的任意 IDE 扩展的通用包管理器
## 支持的 IDE(24 个目标)
| IDE | MCP | 技能 | 规则 |
|-----|:---:|:------:|:-----:|
| Cursor | ✅ | ✅ | ✅ |
| Windsurf | ✅ | ✅ | ✅ |
| VS Code / Cline | ✅ | — | — |
| Claude Code | ✅ | ✅ | — |
| GitHub Copilot | — | ✅ | ✅ |
| Continue | ✅ | ✅ | — |
| Roo Code | ✅ | ✅ | ✅ |
| Codex CLI | ✅ | — | — |
| Gemini CLI | ✅ | ✅ | — |
| Antigravity | ✅ | — | — |
| JetBrains Junie | ✅ | — | — |
| Kiro | ✅ | ✅ | — |
| Cline CLI | ✅ | — | — |
| Zed | ✅ | ✅ | — |
| Hermes | ✅ | ✅ | — |
| OpenClaw | ✅ | ✅ | — |
| Void Editor | ✅ | — | — |
| Aider | — | ✅ | ✅ |
| DeepSeek-TUI | ✅ | — | — |
| Cortex Code | ✅ | ✅ | — |
| Goose | ✅ | — | — |
| IBM Bob | ✅ | ✅ | — |
| CodeBuddy | ✅ | ✅ | — |
| OpenCode | ✅ | ✅ | ✅ |
16 个适配器自动安装技能。6 个自动安装规则。所有支持 MCP 的适配器都自动安装 MCP 服务器。
## 核心功能
### 目录
- 数万个项目,当从官方 MCP 注册表、公共 skills.sh 目录和精选来源同步时
- 信任级别:已验证(精选)、官方(上游)、社区 - 无误导性分数
- 跨显示名称、描述和源 URL 的前缀匹配,支持 FTS5 全文搜索
- 按类型、信任级别、源新鲜度和排序顺序过滤
- 每个项目的详细信息:安装命令、GitHub 仓库、同步新鲜度
重要范围说明:
- MCP 覆盖范围故意仅限于官方 MCP 注册表和精选的已验证覆盖范围
- 技能覆盖范围来自公共 `skills.sh` 语料库和精选的已验证覆盖范围
- 如果流行的 MCP 未在官方注册表中发布,它将不会自动出现,直到它被精选或上游注册表添加
目录新鲜度说明:
- 普通目录读取可以触发后台刷新,当本地快照过期时
- 该刷新路径是请求驱动的,而不是内置的始终在线调度器
- 如果您希望在生产环境中确定新鲜度窗口,请自行调度 `pnpm catalog:sync`
### CLI
- `apply` - 从 URL 或本地文件安装捆绑包( `--force`、`--scope`、`--dry-run`、`--no-verify` )
- `list` - 扫描所有 24 个 IDE 以查找已安装的 MCP、技能和规则
- `search` - 从终端搜索目录
- `doctor` - 诊断所有目标的 IDE 配置
- `init` - 搭建 VibeBasket 项目
- `rollback` - 从时间戳备份中恢复(在目标项目根目录中运行以配置项目范围的配置)
### 安全
- 终端用户运行时机密从未出现在捆绑包清单中,而是由 CLI 在本地提示;大多数目标然后仅在该机器的本地 IDE 配置界面中存储它们
- AES-256-GCM 加密存储凭证
- 8 个 API 端点的滑动窗口速率限制,带有 Retry-After 头
- 生产环境中强制执行 CSP 和安全头
- 所有文件操作上的路径净化
- 4 个可选 OAuth 提供商:GitHub、Google、Apple、Microsoft Entra ID
- GitHub Actions CI、CodeQL 扫描、存储库机密扫描和 Dependabot 更新自动化
- 显式 `NEXT_PUBLIC_*` 允许列表强制执行,以便新的公共环境变量需要有意的审查
### 管理
- 目录同步触发器、备份管理(6 个后端)、存储配置
- FTS5 健康监测 + 重建、DB 完整性检查、强制清理
- 用户概览、管理电子邮件
### 备份和存储
- 6 个后端:本地、AWS S3、Cloudflare R2、DigitalOcean Spaces、Azure Blob、GCS
- 配置间隔的计划备份
- 加密凭证存储在 SQLite 中,从不存储在环境文件中
- 备份恢复适用于本地和支持的云存储后端
## 快速开始
选择与您要执行的操作相匹配的路径:
- 只使用托管产品:打开 [vibebasket.dev](https://vibebasket.dev),构建一个篮子,复制 `npx vibebasket apply ...` 命令,并在本地运行它
- 更喜欢已发布的 CLI 包表面:使用 `npx vibebasket ...` 或在 [npmjs.com/package/vibebasket](https://www.npmjs.com/package/vibebasket) 上检查包页面
- 在一台机器上自我托管:首先使用 Docker
- 修改仓库:使用手动工作区设置
如果您使用 Coolify 部署,请优先使用 Dockerfile 模式。Build Pack 模式也通过存储库级别的 `nixpacks.toml` 支持。
### Docker
```bash
git clone https://github.com/mhmtayberk/VibeBasket.git
cd VibeBasket
cp .env.example .env
# 在启动生产模式之前,至少填充 AUTH_SECRET 和 NEXTAUTH_URL
docker compose up -d
```
首次启动后,等待后台目录启动或运行 `docker compose exec web node scripts/catalog-sync.mjs`,然后在 `/api/catalog/status` 处验证新鲜度。
预期首次运行行为:
- 应用程序在整个目录不一定预热的情况下启动
- 首次实时同步可能比普通的页面加载明显更长
- `/api/catalog/status` 是确认计数、新鲜度和最新同步结果的最快方法
### 手动
```bash
git clone https://github.com/mhmtayberk/VibeBasket.git
cd VibeBasket
cp .env.example .env
pnpm install
pnpm dev
```
首次启动后,等待后台目录启动或运行 `pnpm catalog:sync`,然后在 `/api/catalog/status` 处验证新鲜度。
打开 [http://localhost:3000](http://localhost:3000)。
## 自我托管
VibeBasket 目前针对 **单节点部署** 进行了优化:一个应用程序实例,一个 SQLite 数据库,默认情况下没有额外的状态基础设施。
从这里开始:
- [SELF_HOSTING.md](SELF_HOSTING.md)
- [docs/SETUP.md](docs/SETUP.md)
- [docs/PRODUCTION_READINESS_CHECKLIST.md](docs/PRODUCTION_READINESS_CHECKLIST.md)
对于自我托管实例上的第一个管理员帐户,请从 [SELF_HOSTING.md#bootstrap-the-first-admin](SELF_HOSTING.md#bootstrap-the-first-admin) 开始。
操作说明:
- `/api/health` 对于容器和编排健康检查是安全的
- `/api/catalog/status` 公开目录新鲜度和最新同步状态
- `pnpm catalog:sync:strict` 可作为预启动验证命令
- 主要 CI 门控是 `pnpm verify:ci`
## CLI 使用
官方软件包名称为 [`vibebasket`](https://www.npmjs.com/package/vibebasket)。
```bash
# 从捆绑包 URL 安装
npx vibebasket apply https://vibebasket.dev/api/bundle/cj2k9x
# 选项
npx vibebasket apply <url> --scope project --dry-run --force
# 列出已安装的配置
npx vibebasket list
# 搜索目录
npx vibebasket search postgresql
# 环境检查
npx vibebasket doctor
# 搭建项目
npx vibebasket init
# 从备份恢复
npx vibebasket rollback
```
## 配置
| 变量 | 必需 | 描述 |
|----------|:--------:|-------------|
| `AUTH_SECRET` | 是 | 会话加密密钥。生成:`openssl rand -base64 32` |
| `NEXTAUTH_URL` | 是 | OAuth 回调的公共部署 URL |
| `AUTH_TRUST_HOST` | 否 | 在信任的代理或 CDN 后面运行时设置为 `true` |
| `AUTH_<PROVIDER>_ENABLED` | 否 | 必须为真(`true`、`1`、`yes`、`on`),才能在登录界面中显示提供商 |
| `AUTH_GITHUB_ID/SECRET` | 否 | GitHub OAuth 凭证 |
| `AUTH_GOOGLE_ID/SECRET` | 否 | Google OAuth 凭证 |
| `AUTH_APPLE_ID/SECRET` | 否 | Apple 登录凭证 |
| `AUTH_MICROSOFT_ENTRA_ID_ID/SECRET` | 否 | Microsoft Entra ID 凭证 |
| `CATALOG_REFRESH_TOKEN` | 否 | 仅当您希望身份验证的生产调用者使用 `/api/catalog?refresh=1` 时需要 |
| `CATALOG_FETCH_RETRIES` | 否 | 信任的上游获取的注册表同步重试次数。默认值:`2` |
| `CATALOG_MCP_REGISTRY_TIMEOUT_MS` | 否 | 官方 MCP 注册表获取的每个请求超时。默认值:`60000` |
| `CATALOG_SKILLS_TIMEOUT_MS` | 否 | `skills.sh` 获取的每个请求超时。默认值:`20000` |
| `BACKUP_STORAGE_BACKEND` | 否 | 本地、s3、r2、spaces、azure 或 gcs |
| `ADMIN_OAUTH_EMAILS` | 否 | 以逗号分隔的管理员电子邮件;仅当登录帐户的电子邮件同时被列入白名单和验证时,才授予管理员访问权限 |
| `TRUST_PROXY` | 否 | 仅当应用程序实际上位于信任的反向代理后面时设置 `true`;否则,代理 IP 头将被忽略 |
参见 [`.env.example`](.env.example) 以获取完整列表。
OAuth 注释:仅当提供商同时启用和完全配置时,提供商按钮才会出现。
## 架构
存储库的主要部分:
- `packages/core`
共享模式、SQLite 引导和数据库访问
- `packages/adapters`
24 个 IDE 和 CLI 适配器,具有目标特定的安装逻辑
- `packages/registry`
从官方 MCP 注册表、`skills.sh` 和精选的已验证数据同步目录
- `apps/web`
Next.js 网页应用、API、身份验证流程、保存的堆栈和管理员界面
- `apps/cli`
本地安装 CLI,用于应用、列表、搜索、医生、初始化和回滚
- `charts/vibebasket`
用于单副本自我托管部署的 Helm 图表
关键模式:
- 不可逆转的配置写入
- 不变的捆绑包 URL
- 用于管理员管理设置的基于 DB 的配置
- 适配器能力检查,而不是假装每个目标都支持相同的表面
- 具有持久同步元数据的 FTS5 支持的目录搜索
更多详情:
- [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)
- [docs/PROJECT_OVERVIEW.md](docs/PROJECT_OVERVIEW.md)
- [docs/SETUP.md](docs/SETUP.md)
## 仓库文档
- [CONTRIBUTING.md](CONTRIBUTING.md)
- [SECURITY.md](SECURITY.md)
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
- [SELF_HOSTING.md](SELF_HOSTING.md)
## 安全
存储库防护:
- CI 运行存储库级别的机密扫描,带有 `gitleaks`。
- 检查可执行文件和配置文件中的 `NEXT_PUBLIC_*` 使用情况,仅接受审查的允许列表名称。
- 本地 npm 凭证(如果您使用它们进行手动发布或私有注册表访问)应保留在用户级 `~/.npmrc` 中,而不是存储库中。
通过 [GitHub 安全顾问](https://github.com/mhmtayberk/VibeBasket/security/advisories/new) 报告漏洞。有关完整的威胁模型,请参见 [SECURITY.md](SECURITY.md)。
## 许可证
MIT
连接信息
猜你喜欢
暂无推荐服务器