Dibs (Hive Commons) について
Dibsは、アイデアを持つ人とエージェント群が運営するオープンソースリポジトリをつなぐマーケットプレイスです。双方がマッチを承認すると、発案者自身のアカウントから提出できるGitHub issueリンクを生成し、貢献者として記録します。
主な機能
- 01公開・非公開アイデアの投稿
- 02アイデアとリポジトリのマッチング
- 03GitHub issueリンクの生成
- 04実現したアイデアのクレジット公開
- 05文書や音声からのアイデア抽出
活用シーン
- 01オープンソースプロジェクトに機能を提案
- 02募集するリポジトリとアイデアをマッチ
- 03エージェント経由でアイデアを提出・追跡
MCP 対応
DibsはStreamable HTTPのMCPサーバーを提供し、アイデアの投稿、本人のアイデアやリポジトリの一覧表示、詳細確認を可能にします。アイデアの投稿には認証が必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://dibs.hivecommons.dev/mcpclaude mcp add --transport http dev-hivecommons-dibs https://dibs.hivecommons.dev/mcp{"mcpServers":{"dev-hivecommons-dibs":{"type":"http","url":"https://dibs.hivecommons.dev/mcp"}}}Cursor で開く{"servers":{"dev-hivecommons-dibs":{"type":"http","url":"https://dibs.hivecommons.dev/mcp"}}}VS Code で開く{"mcpServers":{"dev-hivecommons-dibs":{"type":"http","url":"https://dibs.hivecommons.dev/mcp"}}}{"mcpServers":{"dev-hivecommons-dibs":{"serverUrl":"https://dibs.hivecommons.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://dibs.hivecommons.dev/mcp認証が必要ツール
詳細
Dibs
アイデアを考える人と、ハイブ管理のリポジトリをつなぐアイデアのマーケットプレイスです。
あなたのアイデア、あなたの功績、コードは彼らに。
AI エージェント時代に欠けていたコントリビューター層です。
Dibs は、アイデアを考える人(素晴らしい洞察はあるものの、コードを書く時間やツール、意欲がない人)と、明確にまとめられた仕事を求める AI エージェントの群れを擁するハイブ管理のリポジトリをつなぐ、双方参加型のマーケットプレイスです。
- アイデアを考える人がアイデアを投稿します。公開または非公開で、平易な言葉や Markdown を使って投稿します。
- リポジトリがアイデアの受け入れを表明します。トピックと受け入れ意欲を提示します。
- LLM がアイデアと、それを求めるリポジトリをマッチングします。双方の同意が必要です。
- 双方が承諾すると、Dibs はアイデアを考えた人に、あらかじめ入力された GitHub issue を渡します。本人が自分の GitHub アカウントで起票するため、issue には本人の名前が正式に記録されます(ラベル
ideated)。ハイブの AI エージェントが実装を担当します。Dibs はマッチメーカーにすぎず、本人に代わって issue を起票することはありません。
アイデアを考える人も一人前のコントリビューターです
オープンソースには、発表の場がないまま、静かに貢献してきた人たちが常にいました。研究者、運用担当者、デザイナー、パワーユーザーなど、プロジェクトに必要なものを正確に把握していても、プルリクエストを送ることはない人たちです。オープンソースの世界では、アイデアも貢献であると昔から認識されてきました。all-contributors の仕様には「アイデア」を表す 💡 絵文字があり、学術分野の CRediT 分類でも「概念化」が正式な役割として認められています。Dibs は、その功績を現実のものとし、機械可読かつ公開された形にします。
クリエイターには功績を、エージェントには仕事を、プロジェクトには称賛を。
実装されたすべてのアイデアは、アイデアを考えた人までたどることができます。GitHub issue にはアイデアの作者が記載され、成果物にもその由来が引き継がれます。また、公開の功績一覧(/api/credits、UI では「功績一覧」)には、アイデアが採用されたすべての人が掲載されます。アイデアも貢献です。
アーキテクチャ
単一の Go バイナリ(cmd/dibs)で JSON API と埋め込み静的 UI の両方を提供し、専用のサブドメイン dibs.hivecommons.dev にデプロイします。ベースパスは設定可能(DIBS_BASE_PATH)なため、パスプレフィックス付きのリバースプロキシ環境でも動作します。
| パッケージ | 目的 |
|---|---|
pkg/server | HTTP サーバー、ベースパスのルーティング、埋め込み UI |
pkg/auth | 認証ブリッジ — hive ハブに対して hive ハブのセッション Cookie を検証します |
pkg/store | Idea モデルと JSON ファイルストア(アトミック書き込み、外部 DB 不要)、オファー/精算ステートマシン |
pkg/fsutil | ファイルストアで使用する、共通のアトミック JSON 永続化ヘルパー(一時ファイル+リネーム、モード 0600) |
pkg/api | Idea の CRUD とマッチング/オファー/フィード/意思決定/通知 API(作成者ごとにスコープ設定し、非公開の Idea は決して漏えいしません) |
pkg/registry | Hive が管理するリポジトリプロファイルと「Idea を受け付ける」オプトイン |
pkg/match | litellm ゲートウェイによる LLM の Idea↔リポジトリのスコアリング、キャッシュされた TLDR、「✨ 装飾」下書きの推敲、決定論的なキーワードフォールバック |
pkg/settle | 精算 — Idea の提案者自身が GitHub の新規 Issue 作成 URL(ideated ラベル、🐝 Dibs フッター、URL 長の上限)を送信し、Issue URL を確認します。従来のトークンモードにも対応します。Idea は任意の GitHub リポジトリを対象にできます。Hive 管理外のリポジトリを対象にする場合は受け入れ確認を省略し、作成される Issue には Hive への参加を促す CTA が含まれます |
pkg/notify | アプリ内通知フィード(ベル):マッチ、オファー、意思決定、Issue |
pkg/mcpserver | Dibs ツールを公開する Streamable HTTP MCP エンドポイント(エージェントから Idea を送信するを参照) |
pkg/intake | アップロードされたドキュメントまたは文字起こしされた音声から Idea のテキストを抽出します |
pkg/game | ゲーミフィケーション層 — ポイント、レベル、バッジ。保存された Idea の状態から再計算され、変更可能なカウンターは使用しません |
pkg/catalog | 独立した CNCF プロジェクトカタログを構築し、検索します |
pkg/history | Hive 管理下のリポジトリに関する公開 GitHub アクティビティを遡って取得し、リポジトリ一覧チャート用に日次カウントを永続化します |
pkg/indexformula | リポジトリ市場インデックスの背後にある加重合成指標 |
pkg/news | 最近マージされた PR をリポジトリのニュースカードに変換します |
pkg/deps | HTTP サーバー、JSON API、MCP エンドポイントに接続するサブシステムの依存関係を一元的に宣言します |
設定
| 環境変数 | デフォルト値 | 意味 |
|---|---|---|
DIBS_BASE_PATH | / | すべてのルート/アセットを配信するベースパスです(パスプレフィックス付きのプロキシでは、例として /ideas を設定します) |
DIBS_ADDR | :8080 | リッスンアドレス |
DIBS_METRICS_ADDR | (未設定) | 内部 Prometheus /metrics リスナーです(例::9090)。未設定の場合は無効です。deploy/ を参照してください |
HUB_URL | https://hive.hivecommons.dev | セッション検証とリポジトリ同期に使用する Hive ハブ |
DATA_DIR | /data | JSON ストアのディレクトリ |
REPOS_SEED_FILE | (未設定) | 開発/デモ用のリポジトリプロフィールを含む静的 JSON シード |
DIBS_LLM_BASE_URL | (未設定) | OpenAI 互換ゲートウェイ(hive litellm)。例:http://litellm:4000/v1。未設定の場合は、決定論的なキーワードマッチャーを使用します |
DIBS_LLM_API_KEY | (未設定) | LLM ゲートウェイのベアラートークン |
DIBS_LLM_MODEL | gpt-4o-mini | ゲートウェイ経由でルーティングされるモデル名 |
DIBS_GITHUB_TOKEN | (未設定) | イシュー作成にのみ使用するレガシーモードの設定です。設定すると、受理時に Dibs がサーバー側でクレジット表記付きのイシューを作成します。デフォルトの未設定時は、アイデア提案者自身が事前入力済みの GitHub イシューを作成します(ネイティブな貢献者表記)。また、設定されている場合は、確認済みイシュー URL の検証に使用する GitHub 検索の認証にも使われます(未設定の場合は匿名でアクセスします) |
DIBS_ADMINS | (未設定) | 管理者アクセス(アイデアモデレーション用エンドポイント)を許可する GitHub ログイン名を、カンマ区切りで指定します。大文字と小文字は区別されません |
DIBS_CLANKER_MARKERS | hive: agent=,kubestellar-hive[bot] | エージェントのアクティビティを分類するため、PR のブランチ/ラベル/本文/作成者と照合するマーカーをカンマ区切りで指定します。大文字と小文字は区別されません |
DIBS_INTAKE_MAX_MB | 25 | アイデア受付のファイルアップロードで許可される最大サイズ(MB) |
DIBS_STT_URL | (未設定) | 音声テキスト変換ゲートウェイの URL。設定すると、音声/オーディオによるアイデアの投稿が有効になります |
DIBS_STT_KEY | (未設定) | STT ゲートウェイの API キー |
DIBS_STT_MODEL | (未設定) | STT ゲートウェイ経由でルーティングされるモデル名 |
旧 IDEATE_* 名(改名前のプレフィックス)は、すべての DIBS_* 変数の
フォールバックとして引き続き使用できます。
ロードマップ
今後の計画については、ROADMAP.md を参照してください。これまでの提供履歴:
- Wave 1(完了): 足場の構築、ハブ認証ブリッジ、アイデアの CRUD、リポジトリレジストリ。
- Wave 2(完了): LLM によるマッチングと TLDR、スワイプ UX(「offer」/「pass」)、イシューによる決済(クレジット表記付き GitHub イシュー)、通知。
- Wave 3(完了): デプロイ(GHCR イメージと dibs.hivecommons.dev 用の
deploy/マニフェスト)、公開ランディングページ、公開クレジットウォール、アイデア提案者のプロフィール統計。 - Wave 4(完了): マッチメーカーによる決済 — アイデア提案者自身が事前入力済みの GitHub イシューを作成し(ネイティブな貢献者表記、
ideatedラベル)、イシュー URL を確認します。投稿時の LLM 支援によるアイデアの改善と、投稿時のリポジトリに合わせた内容の拡張。トークンベースの決済はレガシー扱いに移行。 - 今後: Cookie ドメイン/ハブ OAuth セッションの共有、Hive 以外の受け入れリポジトリ、アイデアの経済性。
デプロイ
main へのプッシュごとに、.github/workflows/docker.yml を介して
ghcr.io/hivecommons/dibs(latest +
コミット SHA)が公開されます。イメージは distroless で、root 以外のユーザーとして
実行されます。dibs.hivecommons.dev 用の Kubernetes マニフェスト一式(Deployment、Service、cert-manager TLS Ingress、PVC、ConfigMap/Secret)は
deploy/ にあり、必要な DNS レコードと
ハブ Cookie の前提条件も記載されています。
公開範囲(サインイン不要)
| ルート | 目的 |
|---|---|
GET / | ランディングページ(紹介 + サインイン)— サインイン済みユーザーにはアプリ全体を表示します |
GET /api/credits | クレジットウォールのデータ:決済済みのアイデアのみ(ハンドル名、タイトル、TLDR、リポジトリ、Issue URL) |
GET /api/leaderboard | アイデア投稿者のスコア/レベル/バッジの集計 |
GET /api/ticker | ログアウト中のランディングページに表示する公開アイデアのティッカーテープ |
GET /api/board | ログアウト中のランディングページに表示するライブマーケットボード |
GET /api/stats | 個人を特定しない集計件数 |
GET /api/repos/{org}/{repo}/index | リポジトリの価値指数チャート系列 |
GET /api/repos/{org}/{repo}/news | リポジトリのニュースフィード |
GET /api/repos/{org}/{repo}/qr.png | リポジトリの QR コード |
GET /healthz | 稼働確認 + 埋め込み Git バージョン |
GET /readyz | レディネスチェック — データストアへのアクセス/書き込みが可能か確認します |
その他のすべての機能には Hive Hub セッションが必要です。サインイン済みのアイデア投稿者は、さらに
GET /api/me/stats(投稿/提案/承諾/決済済みのアイデア数)を利用できます。
レスポンススキーマ、利用資格/プライバシールール、決済アクション、安定性レベルについては、 クレジットウォールのコンシューマー APIを参照してください。
エージェントからアイデアを送信する
Dibs はステートレスな Streamable HTTP MCP エンドポイント
https://dibs.hivecommons.dev/mcp を公開しているため、Claude Code、Copilot CLI、Cursor、
Gemini CLI、Codex などの MCP クライアントから、エージェントを離れずにアイデアを送信できます。
Dibs は公式 MCP Registry に dev.hivecommons/dibs として登録されています
(レジストリエントリー)。
正式名称で検索してください。dibs だけで検索すると、無関係な 1stDibs マーケットプレイスも表示されます。登録の公開方法については、
MCP Registry への公開で説明しています。
利用可能なツール:
| ツール | 認証 | 目的 |
|---|---|---|
submit_idea(title, description, tags?) | 必須 | あなたが所有する非公開の下書きアイデアを作成し、その ID と API URL を返します |
list_my_ideas() | 必須 | ライフサイクルのフェーズ/ステータスとともに、あなたのアイデアを一覧表示します |
get_idea(id) | 公開アイデアは任意、非公開アイデアは必須(投稿者、または保留中/承諾済みのオファーがあるリポジトリの所有者) | 詳細、マッチ、オファー、決済状況を表示します |
list_repos() | 不要 | 登録済みリポジトリの受け入れ先を一覧表示します |
トークン
Authorization: Bearer <token> を使用します。Dibs はまず Hive Hub の
/api/saas/whoami エンドポイントにサーバー間で問い合わせ、Bearer トークンを検証します。Hub は登録済み Hub ユーザーの GitHub Bearer トークンをすでに受け付けています。これが難しい場合は、https://hive.hivecommons.dev にサインインした後、ブラウザーから hive_hub_user Cookie の生の値をコピーしてください。Dibs は Web UI で使用されているものと同じ Hub の whoami Cookie フローを通じて、その値を検証します。
Chrome/Edge の場合:DevTools → Application → Cookies →
https://hive.hivecommons.dev(または https://dibs.hivecommons.dev)を開き、
hive_hub_user の値をコピーします。
Claude Code
claude mcp add --transport http dibs https://dibs.hivecommons.dev/mcp \
--header "Authorization: Bearer <your-token-or-hive_hub_user-cookie-value>"
Claude Desktop と ChatGPT コネクター
どちらも Streamable HTTP 経由のリモート MCP サーバーに対応しているため、ローカルプロセスなしで同じエンドポイントを使用できます。
Claude Desktop:Settings -> Connectors -> Add custom connector を選択し、URL に
https://dibs.hivecommons.dev/mcp を指定します。コネクター UI でカスタムヘッダーを設定できる場合は、Authorization: Bearer <token> を設定してください。読み取り専用ツールはトークンなしで使用できますが、submit_idea にはトークンが必要です。
ChatGPT:Settings -> Connectors -> Add custom connector を選択し(カスタム MCP コネクターが有効なプランで利用可能)、同じ URL とヘッダーを使用します。
GitHub Copilot CLI と VS Code
Copilot CLI では、リモート MCP サーバーを追加するための 1 行コマンドを使えます。
copilot mcp add --transport http \
--header "Authorization: Bearer <your-token-or-hive_hub_user-cookie-value>" \
dibs https://dibs.hivecommons.dev/mcp
これは、以下の汎用 MCP JSON ブロックと同じ mcpServers/type: "http" 形式で、~/.copilot/mcp-config.json に書き込みます。
VS Code は、~/.copilot/mcp-config.json(Copilot CLI と共有)とワークスペースの .mcp.json ファイルを読み込みます。どちらも同じ mcpServers 形式を使います。詳しくは、Copilot CLI のドキュメント と VS Code MCP サーバーのドキュメント をご覧ください。
Cursor
Cursor は、~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクトレベル)から MCP 設定を読み込みます。url と headers を使う mcpServers 形式を使用します。
{
"mcpServers": {
"dibs": {
"url": "https://dibs.hivecommons.dev/mcp",
"headers": {
"Authorization": "Bearer ${env:DIBS_TOKEN}"
}
}
}
}
Cursor はヘッダーで ${env:NAME} の補間をサポートしているため、ファイルに保存する代わりに、環境変数として DIBS_TOKEN を設定できます。詳しくは、Cursor MCP のドキュメント をご覧ください。
Gemini CLI
gemini mcp add --scope user --transport http \
--header "Authorization: Bearer <your-token-or-hive_hub_user-cookie-value>" \
dibs https://dibs.hivecommons.dev/mcp
これにより、サーバーが ~/.gemini/settings.json に追加されます。プロジェクトの .gemini/settings.json に追加するには、--scope user を省略してください。詳しくは、Gemini CLI MCP のドキュメント をご覧ください。
Codex
Codex(CLI および IDE 拡張機能)は、~/.codex/config.toml から MCP サーバーを読み込みます。
bearer_token_env_var を使うと、トークンをファイルに保存せずに、Authorization: Bearer <token> として送信できます。
[mcp_servers.dibs]
url = "https://dibs.hivecommons.dev/mcp"
bearer_token_env_var = "DIBS_TOKEN"
Codex を起動する前に、export DIBS_TOKEN=<your-token-or-hive_hub_user-cookie-value> を実行してください。詳しくは、Codex MCP のドキュメント をご覧ください。
汎用 MCP JSON
{
"mcpServers": {
"dibs": {
"type": "http",
"url": "https://dibs.hivecommons.dev/mcp",
"headers": {
"Authorization": "Bearer <your-token-or-hive_hub_user-cookie-value>"
}
}
}
}
行動に移せなかったアイデアを思い出す
Dibs には、フォームに入力されなかったアイデア、つまり、話のついでに触れられて忘れられたアイデアを見つけるための MCP プロンプト recall_ideas が付属しています。Dibs 自身ではそうしたアイデアを見つけられません。それができるのは、履歴を保持しているアシスタントだけです。そのため、このプロンプトはアシスタントに検索を依頼します。
このプロンプトは、アシスタントに対し、記憶と過去の会話から、あなたが説明したものの行動に移さなかった製品アイデア、機能への要望、要件、仕様を検索し、それぞれについて行動に移せるだけの背景情報とともに報告したうえで、どれを一覧にするか尋ねるよう指示します。送信されるのは、あなたが選んだものだけです。
| 引数 | 目的 |
|---|---|
scope | 任意の絞り込み対象。プロジェクト、リポジトリ、「過去 1 年」のような期間を指定します。省略すると、利用可能なすべての情報を検索します。 |
limit | 報告する候補の最大数です。既定値は 10、上限は 50 です。 |
Claude Code と Claude Desktop では、コネクターを追加すると、このプロンプトがスラッシュコマンドとして表示されます。UI にプロンプトを表示しないクライアントでも、prompts/get を直接呼び出せます。
運用と参考資料
- MCP レジストリへの公開:マニフェストの一覧と、DNS 認証、公開、検証のための運用手順。
- Runbooks:インシデント対応、リリースのロールバック、データ復旧、SLO、ポストモーテムのテンプレート。
- CONTRIBUTING.md:DCO のサインオフ、CI の要件、コード規約。
- アイデア受付の信頼性と不正利用対策:実装前の提案設計です。
開発
go test -race -count=1 ./...
go run ./cmd/dibs # serves on :8080 at /
go build -o dibs ./cmd/dibs # builds the binary (plain `go build ./...` writes none)
./dibs --version # prints the embedded commit
サインインしてローカルで実行する
公開サーフェス を除くすべてのルートで、hive hub セッションが必要です。ローカルで作業する場合、hack/fakehub は hub の開発専用代替として機能します。空でない hive_hub_user Cookie を、そのユーザーのものとして受け付け、小規模な静的リポジトリ一覧を提供します。1 つ目のターミナルでこれを実行し、次に別のターミナルで Dibs の接続先を指定します。
go run ./hack/fakehub # listens on :9999 (override with FAKEHUB_ADDR)
HUB_URL=http://127.0.0.1:9999 DATA_DIR=./data go run ./cmd/dibs
curl -H 'Cookie: hive_hub_user=dev' http://127.0.0.1:8080/api/me
fakehub の 2 件のエントリーより詳しいリポジトリプロフィールを読み込むには、REPOS_SEED_FILE=hack/seed-repos.example.json も設定してください。
コンテナイメージのスモークテスト
docker buildで確認できるのは、イメージがビルドできることだけです。hack/smoke.shは、deploy/deployment.yamlと同じ条件(uid 65532、ルートファイルシステムは読み取り専用、書き込み可能なのは/dataのみ、すべてのケイパビリティを削除)で実行し、--versionにバージョンが埋め込まれていること、/healthzと/readyzが200を返すこと、ランディングページがHUB_URLを置換して配信され、セキュリティヘッダーが設定されていること、パブリックAPIの前段にある認証の壁が401/502を返すこと、/metricsがアラートでクエリされるdibs_*系列(ここでテストしたルートグループごとにラベル付けされています)を公開すること、そしてSIGTERMによって処理を終了し、終了コード0を返すことを確認します。
docker build --build-arg GIT_HASH="$(git rev-parse HEAD)" -t dibs:smoke .
hack/smoke.sh dibs:smoke "$(git rev-parse HEAD)"
貢献とコミュニティ
Dibsは、AI エージェントと連携するためのツール群であるHive Commonsの一部です。
- 貢献をご希望ですか?DCOへのサインオフ、CIとカバレッジのゲート、コード規約についてはCONTRIBUTING.mdをご覧ください。
- バグを見つけましたか?バグ報告を作成してください。Dibs自体についてアイデアがありますか?機能リクエストを作成してください。
- セキュリティの脆弱性を報告しますか?公開のイシューではなく、SECURITY.mdに従って非公開で報告してください。
- ご質問がありますか?Hive Commons Discordにご参加ください。
- Hive Commons行動規範を遵守してください。
ライセンス
Apache-2.0 — 詳細はLICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。