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に記載されています。

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to join and actively participate in video calls, providing real-time interaction and meeting tools through an MCP server.
    560
    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

View all related MCP servers

Related MCP Connectors

  • Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.

  • Give AI agents secure access to ZERNO project briefs, tasks, and context over remote MCP.

  • Connect AI agents to Replynodes over the Model Context Protocol.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tomer-Barak/OpenGathering'

If you have feedback or need assistance with the MCP directory API, please join our Discord server