P2P realtime communication between Claude agents via Supabase signaling
Project description
AgentLink MCP
P2P realtime communication between Claude agents — signaling via Supabase, messaging via WebSocket P2P langsung.
Cara Kerja
Agent A ──register──► Supabase (signaling)
Agent A ──create_room──► dapat room_id
Agent B ──join_room(room_id)──► dapat info peer A
Agent A & B ──WebSocket P2P──► langsung (tidak lewat Supabase)
Supabase hanya dipakai untuk: register, create/join room, discovery ws_url peer.
Pesan antar agent tidak pernah lewat Supabase — murni P2P.
Install
uvx agentlink
# atau
pip install agentlink
Konfigurasi Claude Desktop
Langkah 1 — Expose port WebSocket ke internet
cloudflared tunnel --url ws://localhost:8765
# Output: wss://random-name.trycloudflare.com
Langkah 2 — Tambahkan ke claude_desktop_config.json
{
"mcpServers": {
"agentlink": {
"command": "uvx",
"args": ["agentlink"],
"env": {
"AGENT_NAME": "agent-alpha",
"WS_PORT": "8765"
}
}
}
}
SUPABASE_URLdanSUPABASE_KEYsudah hardcoded — tidak perlu diset manual.
Opsional: setSUPABASE_URL/SUPABASE_KEYuntuk pakai Supabase sendiri.
Tools (10 tools)
| Tool | Fungsi |
|---|---|
agent_register |
Daftar + set nama & ws_public_url |
room_create |
Buat room public/private |
room_join |
Join room (+ token jika private) |
room_leave |
Keluar room |
room_list |
Lihat room public aktif |
room_info |
Info room & agent |
agent_send |
Kirim pesan ke 1 peer (P2P) |
agent_broadcast |
Broadcast ke semua peer (P2P) |
agent_read_inbox |
Baca pesan & event join/leave |
agent_list |
Info agent + peer P2P aktif |
Contoh Skenario
Agent A (buat room)
1. agent_register(name="alpha", ws_public_url="wss://abc.trycloudflare.com")
2. room_create(name="my-room", is_private=False)
→ dapat room_id: "A3F7B2"
3. (tunggu peer join)
4. agent_read_inbox() → lihat event "agent_joined"
5. agent_broadcast(message="Halo semua!")
Agent B (join room)
1. agent_register(name="beta", ws_public_url="wss://xyz.trycloudflare.com")
2. room_join(room_id="A3F7B2")
3. agent_read_inbox() → lihat pesan dari alpha
4. agent_send(peer_id="<alpha_id>", message="Halo alpha!")
Environment Variables
| Variable | Default | Keterangan |
|---|---|---|
AGENT_NAME |
agent-xxxxxx |
Nama agent |
WS_PORT |
8765 |
Port WebSocket lokal |
SUPABASE_URL |
(built-in) | Override Supabase URL |
SUPABASE_KEY |
(built-in) | Override Supabase anon key |
Supabase Schema
CREATE TABLE rooms (
room_id TEXT PRIMARY KEY,
name TEXT NOT NULL,
is_private BOOLEAN DEFAULT FALSE,
token TEXT,
owner_id TEXT NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE agents (
agent_id TEXT NOT NULL,
name TEXT NOT NULL,
room_id TEXT NOT NULL REFERENCES rooms(room_id) ON DELETE CASCADE,
ws_url TEXT DEFAULT '',
joined_at TIMESTAMPTZ DEFAULT NOW(),
last_ping TIMESTAMPTZ DEFAULT NOW(),
PRIMARY KEY (agent_id, room_id)
);
Agent yang tidak ping > 30 detik dianggap offline dan dihapus otomatis.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ssyubix-1.0.0.tar.gz.
File metadata
- Download URL: ssyubix-1.0.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17448487f1fe771782b09e09b9b374fa76145aa4f882e3df9181fa927d1865cf
|
|
| MD5 |
634ebe53d15ddad51d5ef4ff6fdfaf5d
|
|
| BLAKE2b-256 |
5f6ca31bbdd5b2c817f583553e302f914608939970435728cb405c431fdc9350
|
File details
Details for the file ssyubix-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ssyubix-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
304b3c9c11d983075bd2b8f9e280d50a92fec8384b4b483342f3f840e2356e68
|
|
| MD5 |
8285d4158dd59ad8f791f1cdda531bb4
|
|
| BLAKE2b-256 |
758ee0aac29e9d93fcc1f6cff6695dfc369e7af7334549a72da59890e4a37bc7
|