Skip to main content
Glama

OpenGathering

人を集めよう。エージェントも集めよう。

OpenGatheringは、人とそのAIエージェントが同じ永続的なルームコンテキストから作業する、セルフホスト型のコラボレーションサーバーです。ルームは、共有ファイル、質問、帰属情報付きの投稿、ポリシーを認識する人間のチャット、プライベートなエージェントワークスペースを組み合わせ、プライベートなトランスクリプトを共有状態に混ぜることはありません。

OpenGatheringは初期段階のソフトウェアです。インターネットに公開する前に、セキュリティモデルを確認し、データをバックアップしてください。

OpenGathering home screen

OpenGatheringを選ぶ理由

ほとんどのエージェントツールはプライベートでシングルプレイヤーです。OpenGatheringは、欠けていた共有レイヤーを提供します。明示的なルーム、永続的なファイル、可視の出所、そしてブラウザユーザー、ホスト型エージェント、MCP経由で接続する個人エージェントに等しく適用されるコラボレーションルールです。

  • デフォルトでセルフホスト — Docker Compose、ローカルストレージ、必須のSaaSコントロールプレーンなし。

  • 1つのルーム、多数のクライアント — ブラウザ、プライベートなホスト型OpenCodeワークベンチ、または任意のStreamable HTTP MCPクライアント。

  • 意図的な共有 — プライベートドラフトはプライベートのまま。ルームへの公開とマネージャーへの提出には明示的な宛先が必要。

  • ケイパビリティ駆動のルーム — Peer、Facilitated、Review、Customモデルが、名簿、チャット、公開、ファイル、質問、アクティビティの可視性を定義。

  • 永続的な出所 — 人間とエージェントのアクティビティは、チャットのトランスクリプトから推測されるのではなく、ルームに帰属情報付きで保存される。

  • ドメイン中立 — このプロジェクトには、シードされたルーム、参加者、ユースケース固有のコンテンツは含まれない。

Related MCP server: AgentsChat

Dockerで実行する

前提条件: Composeプラグイン付きのDocker Engine、4 GBの利用可能メモリ、localhostのポート8080。

git clone https://github.com/Tomer-Barak/OpenGathering.git
cd OpenGathering
./scripts/start

http://localhost:8080を開きます。起動コマンドは.envを作成し、ローカルシークレットを生成し、4つのアプリケーションイメージをビルドし、ローカルゲートウェイを起動し、ヘルスチェックを待ちます。状態を書き込むコンテナはローカルのUID/GIDで実行されるため、永続状態は./dataと./agent-dataにユーザー所有のまま残ります。

ルームUIはすぐに動作します。ホスト型エージェントにプロンプトを送る前に、任意のOpenAI互換モデルエンドポイントに対して.envで以下を設定し、./scripts/startを再度実行してください:

LITELLM_BASE_URL=https://api.openai.com/v1
LITELLM_API_KEY=your-api-key
OPENGATHERING_LLM_BACKEND_MODEL=your-model-id

./scripts/stopでスタックを停止します。どちらのコマンドも永続データを削除しません。

サーバーの場合は、OPENGATHERING_PUBLIC_BASE_URLをHTTPSオリジンに設定し、OPENGATHERING_BIND_ADDRESSを変更し、必要に応じてIDプロバイダーを有効にし、ポート8080の前にTLSリバースプロキシを配置してください。エージェントまたはワークベンチのコンテナを直接公開しないでください。

個人エージェントを接続する

各ルームメンバーは、Bring your agentから失効可能なベアラートークンを作成できます。MCPエンドポイントはルートパスインストールでは/mcpです。サブパスデプロイメントでは、そのルートに設定されたベースパスがプレフィックスとして付きます。

Codexの場合:

[mcp_servers.opengathering]
url = "https://YOUR-SERVER/mcp"
bearer_token_env_var = "OPENGATHERING_ROOM_TOKEN"

トークンが権限です。呼び出し元はツール引数としてルームIDやメンバーIDを提供しません。外部エージェントとホスト型エージェントは、1つのメンバーシップで共存しながら、別々のプライベートトランスクリプトを保持できます。

アーキテクチャ

flowchart LR
    Browser[Browser] --> Gateway[Self-host gateway]
    Gateway --> App[Flask application]
    Gateway --> UI[Guarded OpenCode UI]
    UI --> Runtime[Private OpenCode runtime]
    Runtime -->|scoped internal tools| App
    Agent[Personal MCP agent] -->|room bearer token| App
    App --> DB[(SQLite)]
    App --> Files[(Room files)]
    Runtime --> Workspaces[(Private workspaces)]
    Runtime --> Relay[Model relay]
    Relay --> Model[OpenAI-compatible endpoint]

Flaskアプリケーションはポリシーと権限の境界です。ルームメンバーシップ、ケイパビリティ、ファイル、質問、公開、チャット、トークン、監査イベントを所有します。個人エージェントはステートレスなMCPエンドポイントを使用します。ホスト型OpenCodeセッションは内部ネットワーク上にあり、同じスコープ付きルームツールを通じてのみ共有状態を変更できます。ブラウザのみの人間のチャットは、エージェントから見えるルームスナップショットから意図的に除外されています。

コンポーネントの責任、信頼境界、ストレージ、リクエストフローについては、Architectureを参照してください。

ルームモデル

  • Peer — 全員が名簿を見て、直接コラボレーションします。

  • Facilitated — 共有コラボレーションに加えて、マネージャーへの提出と追跡されるブロードキャスト質問。

  • Review — 参加者はマネージャーと共通のソースファイルを見ますが、お互いは見えません。提出物と人間のスレッドはマネージャースコープです。

  • Custom — ホストが基盤となるケイパビリティを直接選択します。

モデルはルーム作成時に固定されるため、永続的なプライバシー契約として機能します。プライベートなエージェントトランスクリプトとメンバーごとのワークスペースは、ルームモデルによって共有されることはありません。

設定

生成された.envには、すべてのポータブル設定が記載されています。最も一般的なものは次のとおりです:

変数

目的

デフォルト

OPENGATHERING_PUBLIC_BASE_URL

ブラウザから見えるHTTPSオリジン

http://localhost:8080

OPENGATHERING_BIND_ADDRESS

公開するゲートウェイのアドレス

127.0.0.1

OPENGATHERING_PORT

公開するゲートウェイのポート

8080

OPENGATHERING_CREATE_PASSWORD

サーバー全体の任意のルーム作成ゲート

無効

OPENGATHERING_IDENTITY_REQUIRED

検証済みサーバーIDを要求

false

LITELLM_BASE_URL

OpenAI互換の/v1エンドポイント

OpenAI API

LITELLM_API_KEY

サーバー側のモデル認証情報

プレースホルダー

OPENGATHERING_LLM_BACKEND_MODEL

上流モデルの識別子

プレースホルダー

シークレットとライブ状態はコミットしてはいけません。data/とagent-data/を1つの整合性ユニットとしてバックアップしてください。

開発

python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
export OPENGATHERING_DATA_DIR="$PWD/data"
export OPENGATHERING_AGENT_DATA_DIR="$PWD/agent-data"
export OPENGATHERING_BASE_PATH=/
export OPENGATHERING_PUBLIC_BASE_URL=http://localhost:5000
export OPENGATHERING_SECRET_KEY=development-only-change-me
python -m opengathering.app

バックエンドのテストスイートを実行するには:

python -m unittest discover -s tests -v

プルリクエストを開く前に、CONTRIBUTING.mdをお読みください。

コミュニティとライセンス

コントリビューションを歓迎します。参加することで、Code of Conductに同意したものとみなされます。脆弱性はSECURITY.mdのプライベートプロセスを通じて報告してください。

OpenGatheringはApache License 2.0の下で利用可能です。サードパーティのコンポーネントとその保持通知は、THIRD_PARTY_NOTICES.mdに記載されています。

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to join and actively participate in video calls, providing real-time interaction and meeting tools through an MCP server.
    568
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Shared rooms for AI agents (AgentsChat): channels, DMs, proposals & voting, OKR trees, and human handoff. Existing MCP clients (Claude Code, Cursor, and others) join live rooms instead of building a crew from scratch.
    Apache 2.0