mcpField
W
withvibe-voter

withvibe-voter

ローカル
github.com/withvibeAI・エージェント020 週間前に更新

withvibe-voter について

withvibe-voterは、Agentによる変更適用前にチームの承認を求めるWithVibeプラグインです。提案への投票を行い、承認済みの変更や失敗を記録します。

主な機能

  1. 01変更提案の作成
  2. 02チーム決定の確認
  3. 03適用済み変更の記録
  4. 04変更失敗の報告
  5. 05提案ボードの表示

活用シーン

  1. 01ワークスペース編集前のチーム承認
  2. 02承認済み変更とビルド失敗の追跡

MCP 対応

提案、決定のポーリング、結果記録、失敗報告、提案状況の確認を行う5つのMCPツールを提供します。承認ゲートはAgentがツールの指示に従うことを前提とします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Voter — WithVibe プラグイン

あらゆる WithVibe 環境をチーム投票制のワークスペースに変えます。このプラグインを有効にすると、AI はプロンプトをすぐに適用するのではなく、チームが投票する提案を作成し、承認された提案だけが実装されます。どの環境でも有効にすれば、その環境は投票制のサンドボックスになります。

You (in chat):  "add a dark-mode toggle"
        │
        ▼
   voter_propose_change ──────►  Proposal #7 opens (10-min vote)
        │                           👍 👎  team votes in the panel
   voter_await_decision  ◄───────  APPROVED ✅  /  REJECTED ✗
        │
        ▼  (only if approved)
   agent makes the change  ──►  voter_record_change  ──►  shows up in History

環境の内容に依存しません。環境に何が含まれているかは問いません。 環境がアプリ、ドキュメント、3D シーン、設定のいずれであっても、Voter を有効にすると、あらゆる変更がまずチームの確認を経るようになります。複数の環境があれば、独立したボードも複数作成されます。

ゲートの仕組み(そして、なぜ単なるプラグインなのか)

WithVibe は、有効なプラグインの MCP ツールをエージェントのターンに自動で組み込みます。 Voter はこれを利用して、WithVibe のコアを変更することなくプロンプトを制御します。

  1. voter_propose_change(prompt) — 提案を作成し、エージェントにまだ何も変更しないよう伝えます。
  2. voter_await_decision(proposal_id) — 投票結果をロングポーリングします。プラットフォームの MCP ブリッジでは、1 回のツール呼び出しが 60 秒に制限されているため、約 45 秒後に STILL_VOTING を返します。エージェントは結果が確定するまで、これを再度呼び出します。
  3. APPROVED の場合、エージェントは変更を行い、voter_record_change を呼び出します。REJECTED/EXPIRED の場合、変更は行いません。

その間、チームメンバーはそれぞれ、エージェントとは独立してプラグインの UI パネルから投票します。このゲートはエージェントの協力に依存します(ツールの指示によって適用されます)。これは使いやすいワークフローに適したトレードオフです。回避不能な仕組みに強化することもできますが、その場合は後々、小規模なコアフックが必要になります。

MCP ツール

ツール目的
voter_propose_change要求された変更の提案を作成します。エージェントは編集の代わりにこれを呼び出す必要があります。
voter_await_decisionチームの判定(APPROVED/REJECTED/EXPIRED/STILL_VOTING)をロングポーリングします。
voter_record_change承認された変更を適用した後、実際に反映された内容を記録します。
voter_report_failure承認された変更が失敗した場合(例:ビルドが壊れた場合)に記録します。
voter_status現在のボードを表示します。投票中の提案と、最近解決された提案が表示されます。

状態

プラグイン専用の Postgres スキーマ(shared-postgres ストレージ)に 4 つのテーブルがあります。 settings(投票期間としきい値)、proposal、vote、feed_event。

解決ルール:賛成票がしきい値に達すると提案は可決され、反対票がしきい値に達すると否決されます。期限に達した時点では多数決で決定し、同数の場合は期限切れになります。デフォルトは、投票期間 600 秒、賛成 1 票/反対 1 票です。パネルで調整できます。

アーキテクチャ

manifest.yaml ──► WithVibe spawns one container per env (scope: env)
       │
   server.js (express)
   ├── /health      platform health probe
   ├── /mcp         agent's MCP endpoint            ─► mcp.js  (the gate)
   ├── /ui          htmx voting panel               ─► ui.js
   └── /ui/version  cheap freshness check (live updates)
                │
              db.js (pg) ─► shared-postgres, per-env schema

ビルド

docker build -t local/voter:0.1 .

マーケットプレイス向けには、ghcr.io/withvibe/voter:<version> としてマルチアーキテクチャ対応で公開されます。

WithVibe にインストールする

  1. ワークスペース管理者 → プラグイン → プラグインをインストール(一覧掲載後は マーケットプレイス)。
  2. manifest.yaml を貼り付けます(またはカタログからワンクリックでインストールします)。
  3. 任意の環境を開き、Voter を有効にします。その環境が投票制のワークスペースになります。

ローカル開発

docker build -t local/voter:0.1 .
docker run --rm -p 8080:8080 \
  -e DATABASE_URL="postgres://user:[email protected]:5432/withvibe_plugins" \
  -e PGSCHEMA="voter_dev" \
  local/voter:0.1
# open http://localhost:8080/ui  — two browsers = two voters

リポジトリ構成

manifest.yaml   WithVibe plugin manifest (install input)
Dockerfile      runtime image
package.json    deps (express, pg, @modelcontextprotocol/sdk, zod)
server.js       express entry — HTTP + MCP routes + vote handling
db.js           pg pool, schema, proposal/vote/resolution helpers
mcp.js          the gate: propose / await / record MCP tools
ui.js           htmx voting panel + dark theme

ライセンス

Apache License 2.0。帰属表示については NOTICE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。