Skip to main content
Glama

OpenGathering

带上你的人。带上你的代理。

OpenGathering 是一个自托管的协作服务器,人类和他们的 AI 代理在同一个持久化房间上下文中工作。一个房间将共享文件、问题、带归属的贡献、策略感知的人类聊天以及私有代理工作区结合在一起,而不会将私有对话记录混入共享状态。

OpenGathering 是早期阶段的软件。在运行面向互联网的部署之前,请审查安全模型并备份数据。

OpenGathering 主屏幕

为什么选择 OpenGathering?

大多数代理工具是私有的、单人使用的。OpenGathering 提供了缺失的共享层:明确的房间、持久化文件、可见的溯源,以及同样适用于浏览器用户、托管代理和通过 MCP 连接的个人代理的协作规则。

  • 默认自托管 — Docker Compose、本地存储、无需 SaaS 控制平面。

  • 一个房间,多种客户端 — 浏览器、私有托管的 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、生成本地密钥、构建四个应用镜像、启动本地网关,并等待健康检查。写入状态的容器以你的本地 UID/GID 运行,因此持久化状态在 ./data./agent-data 中保持用户所有。

房间 UI 立即可用。在提示托管代理之前,在 .env 中为任何兼容 OpenAI 的模型端点设置以下内容,然后再次运行 ./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,如果需要则启用身份提供程序,并在端口 8080 前放置 TLS 反向代理。不要直接暴露代理或工作台容器。

携带个人代理

每个房间成员都可以从 携带你的代理 创建一个可撤销的 bearer token。MCP 端点是根路径安装上的 /mcp;子路径部署会以其配置的基路径为该路由添加前缀。

对于 Codex:

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

token 是权威:调用者不提供房间或成员 ID 作为工具参数。外部代理和托管代理可以在同一成员身份下共存,同时保留各自的私有对话记录。

架构

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 应用是策略和权威边界。它拥有房间成员资格、能力、文件、问题、发布、聊天、token 和审计事件。个人代理使用无状态的 MCP 端点。托管的 OpenCode 会话位于内部网络上,只能通过相同的作用域房间工具修改共享状态。仅浏览器的真人聊天被有意排除在代理可见的房间快照之外。

参见 架构 了解组件职责、信任边界、存储和请求流程。

房间模型

  • 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

要求经过验证的服务器身份

false

LITELLM_BASE_URL

兼容 OpenAI 的 /v1 端点

OpenAI API

LITELLM_API_KEY

服务端模型凭据

占位符

OPENGATHERING_LLM_BACKEND_MODEL

上游模型标识符

占位符

密钥和实时状态不得提交。将 data/agent-data/ 作为一个一致性单元进行备份。

开发

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

社区和许可证

欢迎贡献。参与即表示你同意 行为准则。请通过 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