Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
作者による説明(英語の原文)
Self-hosted inbox for questions your AI agents couldn't answer. Report knowledge gaps over MCP.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
SECRET_KEY, ENCRYPTION_KEY, ALLOWED_ORIGINS「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"kebivo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SECRET_KEY",
"-e",
"ENCRYPTION_KEY",
"-e",
"ALLOWED_ORIGINS",
"ghcr.io/ocnai/kebivo:0.3.0"
],
"env": {
"SECRET_KEY": "your-value",
"ENCRYPTION_KEY": "your-value",
"ALLOWED_ORIGINS": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add kebivo --env SECRET_KEY=your-value --env ENCRYPTION_KEY=your-value --env ALLOWED_ORIGINS=your-value -- docker run -i --rm -e SECRET_KEY -e ENCRYPTION_KEY -e ALLOWED_ORIGINS ghcr.io/ocnai/kebivo:0.3.0動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"kebivo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SECRET_KEY",
"-e",
"ENCRYPTION_KEY",
"-e",
"ALLOWED_ORIGINS",
"ghcr.io/ocnai/kebivo:0.3.0"
],
"env": {
"SECRET_KEY": "your-value",
"ENCRYPTION_KEY": "your-value",
"ALLOWED_ORIGINS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"kebivo": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SECRET_KEY",
"-e",
"ENCRYPTION_KEY",
"-e",
"ALLOWED_ORIGINS",
"ghcr.io/ocnai/kebivo:0.3.0"
],
"env": {
"SECRET_KEY": "your-value",
"ENCRYPTION_KEY": "your-value",
"ALLOWED_ORIGINS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
ALLOWED_ORIGINS envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント OCNAI で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:SECRET_KEY, ENCRYPTION_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.3.0)がレジストリに届いたのは4 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDockerも必要です。
同じカテゴリには:Vexa, emailmd, MCP WhatsApp Cloud
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Your AI app reports each question it couldn't answer; Kebivo groups the repeats and routes them to whoever can fix the docs.
Status: 0.3.0. Run the published image
ghcr.io/ocnai/kebivo:0.3.0(linux/amd64,linux/arm64) or build it from this repository. Licensed under Apache-2.0.
Try it with Docker, OpenSSL and a free port 8000:
(umask 077; printf 'SECRET_KEY=%s\nENCRYPTION_KEY=%s\nALLOWED_ORIGINS=http://127.0.0.1:8000\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > kebivo.env)
docker run -d --name kebivo --restart unless-stopped -p 127.0.0.1:8000:8000 -v kebivo-data:/data --env-file kebivo.env ghcr.io/ocnai/kebivo:0.3.0 curl -fsS --retry 30 --retry-all-errors --retry-delay 1 http://127.0.0.1:8000/health/ready
Without Kebivo: the bot says it couldn't find the answer, the user gives up, and the question sits in a log nobody reads.\ With Kebivo: the question shows up once in the inbox with a repeat count, and your routing rules can send it to Slack, email or a webhook for whoever owns those docs.
Group inbox from a real Kebivo 0.2.0 container with sample data.
Continue with the Quickstart to report a question. For framework tutorials, see the Kebivo Guides.
When an assistant cannot answer, the documentation owner may never see the question. The same question can fail again, and corrections offered in chat may never reach the people who maintain the content. Kebivo collects those knowledge gaps in one place, where owners can triage and route them to the tools they use.
report_knowledge_gap and submit_knowledge_correction.?, ! or ., are grouped automatically. You can also configure an LLM provider for semantic grouping.All screenshots use synthetic data.
| Dashboard | Inbox |
| Feedback group | Connect a client |
| Routing rules | Failed delivery |
More: destinations, settings, LLM settings, sign-in. Regenerate them with make e2e-ui SCREENSHOTS=1.
The demo's product frames come from a real container with sample data; its chat and end card are drawn. See the demo source.
You need Docker, OpenSSL, Python 3 and a free port 8000. The published image is typically ready in about 12 seconds after download.
1. Start Kebivo from the published image. Skip this step if you ran the three commands above. Keep kebivo.env private and back it up apart from the data volume.
(umask 077; printf 'SECRET_KEY=%s\nENCRYPTION_KEY=%s\nALLOWED_ORIGINS=http://127.0.0.1:8000\n' \
"$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > kebivo.env) docker run -d --name kebivo --restart unless-stopped -p 127.0.0.1:8000:8000 \ -v kebivo-data:/data --env-file kebivo.env ghcr.io/ocnai/kebivo:0.3.0 curl -fsS --retry 30 --retry-all-errors --retry-delay 1 http://127.0.0.1:8000/health/ready
Curl may print a few Connection reset errors while migrations run. Readiness returns {"status":"ok",...}.
2. Create an administrator and project token. The password must have at least 12 characters. The token is issued once into KEBIVO_TOKEN; keep it private.
read -rsp 'Admin password (12+ characters): ' KEBIVO_ADMIN_PASSWORD; printf '\n'
printf '%s\n' "$KEBIVO_ADMIN_PASSWORD" | docker exec -i kebivo python -m kebivo.cli bootstrap --email admin@example.org --password-stdin unset KEBIVO_ADMIN_PASSWORD KEBIVO_PROJECT="$(docker exec kebivo python -m kebivo.cli project create --name 'Shop assistant' --json)" KEBIVO_TOKEN="$(printf '%s' "$KEBIVO_PROJECT" | python3 -c 'import json,sys; print(json.load(sys.stdin)["token"])')"
3. Report the same unanswered question twice. Use a different idempotency key for each occurrence. Reuse a key only when retrying the *same* request.
curl -i http://127.0.0.1:8000/api/v1/feedback \
-H 'Content-Type: application/json' \ -H "Authorization: Bearer $KEBIVO_TOKEN" \ -H 'Idempotency-Key: canada-gap-001' \ --data '{"event_type":"knowledge_gap","question":"Do you ship to Canada?","tags":["shipping"]}' curl -i http://127.0.0.1:8000/api/v1/feedback \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $KEBIVO_TOKEN" \ -H 'Idempotency-Key: canada-gap-002' \ --data '{"event_type":"knowledge_gap","question":"Do you ship to Canada?","tags":["shipping"]}'
Both responses are 202 Accepted with distinct event_id values. Open http://127.0.0.1:8000/, sign in, and find Do you ship to Canada? in the Inbox with 2 occurrences. Use exactly 127.0.0.1: localhost is a different origin, and sign-in names the allowed origin if you use the wrong one. You can also create projects and tokens in the UI.
For a signed webhook delivery, follow step 4 of the Docker guide.
REST or MCP? Call REST from your application's fallback when every miss must be captured. With MCP, the model decides whether to call
report_knowledge_gap, so some misses may go unreported.
Kebivo works alongside Langfuse and Phoenix, which help engineers inspect runs. Kebivo collects and routes misses; it does not diagnose why retrieval failed. It does not answer questions, update a knowledge base, or apply proposed corrections; people review the reports. Use something else if you need a ticketing system, analytics, multi-user accounts, SSO, or high availability. Kebivo is self-hosted with one local administrator, one process and one SQLite file. See the technical documentation for deployment and limits.
Use this path if you want to change the code. After it starts, replace both docker exec -i kebivo and docker exec kebivo with docker compose exec -T app in step 2.
git clone https://github.com/OCNAI/kebivo.git
cd kebivo cp .env.example .env printf 'SECRET_KEY=%s\n' "$(openssl rand -hex 32)" >> .env printf 'ENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" >> .env printf 'ALLOWED_ORIGINS=http://127.0.0.1:8000\n' >> .env docker compose up --build -d curl -fsS --retry 30 --retry-all-errors --retry-delay 1 http://127.0.0.1:8000/health/ready
To stop the published image: docker stop kebivo (data stays in the volume). To stop a Compose build: docker compose down (data is kept). docker compose down --volumes deletes all data. For production (TLS, backups, upgrades, every setting), read the self-hosting guide.
Send POST /api/v1/feedback with a project token. A 202 means the report is stored durably; routing and delivery happen in the background. Send an Idempotency-Key and reuse it on retries. Retry 429 and 5xx responses with backoff; do not retry other 4xx errors.
For Python applications, install the kebivo-client distribution from the standalone Python SDK directly from GitHub with pip install "git+https://github.com/OCNAI/kebivo#subdirectory=sdk/python" (not published to PyPI):
from kebivo_client import Kebivo
client = Kebivo("https://your-kebivo.example", " ") accepted = client.report_gap("How do I reset my VPN?", tags=["it"]) print(accepted["event_id"])
For Node 20+ applications, use the standalone TypeScript SDK from a local path. It has no runtime dependencies and is not published to npm. Keep project tokens on the server; never embed them in browser code.
Runnable clients for cURL, Python (standard library) and TypeScript (Node.js 24, no build step) are in examples/, and the project page in the UI shows the same snippets with your endpoint. The REST integration guide covers fields, authentication, idempotency, errors, retries and rate limits.
Point an MCP client at http://127.0.0.1:8000/mcp with the header Authorization: Bearer . For Claude Code:
claude mcp add --transport http keb冒頭だけを表示しています。続きはリポジトリで読めます