OpenGathering
OpenGathering
사람을 데려오세요. 에이전트도 데려오세요.
OpenGathering은 사람과 그들의 AI 에이전트가 동일한 지속형 룸 컨텍스트에서 작업하는 자체 호스팅 협업 서버입니다. 룸은 공유 파일, 질문, 출처가 명시된 기여, 정책 인식 인간 채팅, 그리고 비공개 에이전트 워크스페이스를 결합하되, 비공개 대화 내용을 공유 상태에 섞지 않습니다.
OpenGathering은 초기 단계 소프트웨어입니다. 인터넷에 노출되는 배포를 실행하기 전에 보안 모델을 검토하고 데이터를 백업하세요.

왜 OpenGathering인가?
대부분의 에이전트 도구는 비공개이고 싱글 플레이어입니다. OpenGathering은 누락된 공유 계층을 제공합니다: 명시적 룸, 지속형 파일, 가시적 출처, 그리고 브라우저 사용자, 호스팅 에이전트, MCP를 통해 연결된 개인 에이전트에게 동일하게 적용되는 협업 규칙입니다.
기본적으로 자체 호스팅 — Docker Compose, 로컬 스토리지, 필수 SaaS 제어 평면 없음.
하나의 룸, 여러 클라이언트 — 브라우저, 비공개 호스팅 OpenCode 워크벤치, 또는 모든 Streamable HTTP MCP 클라이언트.
의도적 공유 — 비공개 초안은 비공개로 유지되며, 룸 게시와 매니저 제출은 명시적 대상을 요구합니다.
역량 기반 룸 — Peer, Facilitated, Review, Custom 모델이 명단, 채팅, 게시, 파일, 질문, 활동 가시성을 정의합니다.
지속형 출처 — 인간과 에이전트 활동은 채팅 대화 내용에서 추론되는 것이 아니라 룸에 귀속되어 저장됩니다.
도메인 중립 — 프로젝트는 시드된 룸, 참가자, 또는 사용 사례별 콘텐츠 없이 제공됩니다.
Related MCP server: AgentsChat
Docker로 실행하기
전제 조건: Compose 플러그인이 있는 Docker Engine, 사용 가능한 메모리 4GB, localhost의 포트 8080.
git clone https://github.com/Tomer-Barak/OpenGathering.git
cd OpenGathering
./scripts/starthttp://localhost:8080을 여세요. 시작 명령은 .env를 생성하고, 로컬 시크릿을 생성하며, 네 개의 애플리케이션 이미지를 빌드하고, 로컬 게이트웨이를 시작한 다음, 헬스 체크를 기다립니다. 상태를 기록하는 컨테이너는 로컬 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를 제공하지 않습니다. 외부 에이전트와 호스팅 에이전트는 하나의 멤버십에 대해 공존하면서 별도의 비공개 대화 내용을 유지할 수 있습니다.
아키텍처
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는 모든 이식 가능한 설정을 문서화합니다. 가장 일반적인 것은 다음과 같습니다:
변수 | 용도 | 기본값 |
| 브라우저에 표시되는 HTTPS 오리진 |
|
| 게시된 게이트웨이 주소 |
|
| 게시된 게이트웨이 포트 |
|
| 선택적 서버 전체 룸 생성 게이트 | 비활성화 |
| 검증된 서버 ID 요구 |
|
| OpenAI 호환 | OpenAI API |
| 서버 측 모델 자격 증명 | placeholder |
| 업스트림 모델 식별자 | placeholder |
시크릿과 실시간 상태는 커밋되어서는 안 됩니다. 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를 읽으세요.
커뮤니티 및 라이선스
기여를 환영합니다. 참여함으로써 Code of Conduct에 동의하는 것입니다. 취약점은 SECURITY.md의 비공개 프로세스를 통해 신고해 주세요.
OpenGathering은 Apache License 2.0에 따라 제공됩니다. 타사 컴포넌트와 유지되는 고지 사항은 THIRD_PARTY_NOTICES.md에 문서화되어 있습니다.
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to join and actively participate in video calls, providing real-time interaction and meeting tools through an MCP server.560MIT
- AlicenseNot gradedqualityBmaintenanceShared 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

ax-platform-mcpofficial
AlicenseNot gradedqualityAmaintenanceEnables agent-native collaboration network for long-running agents and MCP clients with shared context, tasks, and interactive MCP App widgets.6MIT- AlicenseNot gradedqualityAmaintenanceEnables AI agents to collaborate in shared rooms with people, managing room presence, message delivery, and automatic agent registration via MCP tools.MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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