关于 Ozvi
Ozvi 面向产品团队,将私密 Bug 报告与公开创意板、路线图和更新日志结合起来。其 MCP 工具支持搜索、分流和发布,且不可逆操作需要确认。
主要功能
- 01附带上下文的私密 Bug 报告
- 02带投票的公开创意板
- 03路线图和更新日志
- 04统一配置看板、组件和邮件主题
- 05可选的 AI 摘要和重复项检测
适用场景
- 01依据浏览器和应用上下文处理报告
- 02收集投票并发布产品更新
- 03让 Agent 搜索和管理反馈
MCP 相关
Ozvi 在 `/mcp` 提供 MCP 服务,供 Agent 搜索、总结、分流和发布反馈。不可逆操作需要确认。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://ozvi.io/mcpclaude mcp add --transport http io-ozvi-ozvi https://ozvi.io/mcp{"mcpServers":{"io-ozvi-ozvi":{"type":"http","url":"https://ozvi.io/mcp"}}}在 Cursor 中打开{"servers":{"io-ozvi-ozvi":{"type":"http","url":"https://ozvi.io/mcp"}}}在 VS Code 中打开{"mcpServers":{"io-ozvi-ozvi":{"type":"http","url":"https://ozvi.io/mcp"}}}{"mcpServers":{"io-ozvi-ozvi":{"serverUrl":"https://ozvi.io/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://ozvi.io/mcp需要授权工具
详细介绍
Ozvi
外观与你的产品一致的源代码可用型 Bug 报告和创意看板。
网站 · 在线演示 · 文档 · 视频 · @ozvi/widget · @ozvi/sdk

- 两个空间。 私密 Bug 流程会自动收集上下文(页面、应用版本、浏览器、控制台错误,以及在浏览器中遮盖表单值、电子邮件、电话号码和卡号的截图);公开创意看板则提供投票、路线图和更新日志。
- 闭环跟进。 “已在 2.15.1 修复——现在可以正常使用了吗?”会发送给报告者;关联的 GitHub 问题和版本发布会自动设置;发布更新日志条目后,会向所有投过票的人发送电子邮件。
- 你的设计。 一个
theme.json(颜色、字体、圆角、密度)即可为看板、工具和电子邮件设置样式。 - 你的登录方式。 用户通过签名令牌或 OIDC 从你的应用保持登录;看板也可以提供通过电子邮件发送验证码的登录方式。
- 你的工具。 内置 MCP 服务(个人令牌或 OAuth 连接器)允许 Claude 和其他 Agent 搜索、总结、分类处理和发布——执行任何不可逆操作前都会要求确认,并始终将用户文本作为数据传递。还支持用于 Slack、Discord 或你的后端的 Webhook。
- 可选 AI。 重复项检测(通过任何兼容 OpenAI 的端点生成嵌入,或使用模糊文本匹配且无需 AI)、讨论串摘要、更新日志草稿,以及由你选择的模型撰写的每周团队摘要:原生支持 Claude,也支持任何兼容 OpenAI 的 API(OpenAI、Mistral、Ollama、vLLM……)。
所有功能均可免费自托管(FSL-1.1-ALv2,参见许可证)。托管云使用相同的镜像运行。
嵌入到你的应用中
<script src="https://feedback.example.com/widget.js" defer></script>
<ozvi-widget project="myapp" token-url="/api/ozvi-token" app-version="1.4.0"></ozvi-widget>
// npm i @ozvi/sdk (MIT, zero deps; Python and PHP without a library: ozvi.io/docs/widget#sign-in)
import { signOzviToken } from "@ozvi/sdk";
app.get("/api/ozvi-token", requireLogin, (req, res) =>
res.json({ token: signOzviToken({ id: req.user.id, email: req.user.email, name: req.user.name }, process.env.OZVI_SSO_SECRET) }));
截图会自动遮盖表单值、电子邮件、电话号码、IBAN、卡号和令牌;对于其他敏感信息(姓名、备注),请使用 data-ozvi-mask 标记,或设置 OzviConfig.mask = "all" 以遮盖所有文本。更多信息:docs/INTEGRACIA.md。
自托管
cd deploy && cp .env.example .env && docker compose up -d
docker compose exec ozvi node ozvi.mjs project:create myapp "My app" --origin https://app.example.com
镜像公开托管于 ghcr.io/xzamiska/ozvi(amd64 和 arm64;标签包括 1.2.8、1.2、1、latest)。可选的更新器容器会备份数据库,按需或在夜间安装新版本,并在运行状态异常时回滚。发行说明:ozvi.io/releases。
参见 docs/SELFHOST.md。从 Fider 迁移:docs/MIGRACIA-Z-FIDERU.md。云模式:docs/CLOUD.md。设计决策:docs/adr。
可选:设置 OZVI_AI_PROVIDER(anthropic 或用于任何兼容 OpenAI 的 API 的 openai)+ OZVI_AI_API_KEY + OZVI_AI_MODEL,即可启用 AI 写作辅助(参见 docs/SELFHOST.md);设置 OZVI_EMBEDDINGS_URL + OZVI_EMBEDDINGS_MODEL,即可启用基于嵌入的重复项检测。
连接 AI 助手
claude mcp add --transport http ozvi https://feedback.example.com/mcp --header "Authorization: Bearer ozvi_pat_…"
或者,在 Claude 中将 https://feedback.example.com/<project>/mcp 添加为自定义连接器——登录和授权将在看板上完成。工具:packages/mcp/README.md。
开发
pnpm install
cp .env.example .env
pnpm dev # Postgres 17 + Mailpit in Docker, migrations, web on :3300
pnpm test
运行 pnpm dev,并在 .env.example 中设置 OZVI_DEV_LOGIN=1:访问 http://localhost:3300/dev/login?project=billiwo&as=team 可作为管理员登录,访问 http://localhost:3300/demo 可在模拟宿主应用中查看小组件,Mailpit 位于 http://localhost:8046。
| 路径 | 内容 |
|---|---|
apps/web | Next.js 看板、路线图、更新日志、管理后台、/app(云端)、小组件 API、MCP、工作进程、Fider 导入器 |
packages/db | Drizzle schema 和迁移(Postgres 17) |
packages/theme | theme.json schema、预设、CSS 变量、对比度检查 |
packages/sdk | 用于宿主应用 SSO 的 signOzviToken(MIT) |
packages/widget | 可嵌入的 <ozvi-widget>(Preact、shadow DOM、gzip 后约 10 kB) |
packages/mcp | 在 /mcp 提供的 MCP 工具 |
许可
FSL-1.1-ALv2(Functional Source License,未来将采用 Apache 2.0 许可):可出于任何目的使用、修改和自托管 Ozvi,但不得将其作为竞争性商业服务提供。每个版本发布两年后将转为 Apache 2.0 许可。
packages/sdk 和 packages/widget 采用 MIT 许可,因此可随闭源宿主应用一同发布。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。