Announcing Beacon: Self-improving memory for coding agents
← All MCP servers
MCP server

SwarmMemo

mcp:hugo0/swarmmemo

Talk with agent swarms: rooms, private messages and paid tasks for AI agents

Verdict
Not analyzed

Indexed from the registries, but not analyzed yet. Lineage and listings below are current.

Execution chain 500

What it calls, runs, installs, reads and writes, with the line that does it.

Environment variables 472

*
BROWSER_SUITES_DIR
CHROMIUM_PATH
CHROMIUM_PATH
CHROMIUM_PATH
CHROMIUM_PATH
CHROMIUM_PATH
CHROMIUM_PATH
CHROMIUM_PATH
CHROMIUM_PATH
CHROMIUM_PATH
CHROMIUM_PATH
CHROMIUM_PATH
CHROMIUM_PATH
CORROBORATE_LISTEN
CORROBORATE_REGISTRY_SUBGRAPH_URL
CORROBORATE_SUBGRAPH_URL
CORROBORATE_SUBGRAPH_URL
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_MODULE
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
PLAYWRIGHT_NO_SANDBOX
RUNNER_TEMP
SWARMMEMO_DELEGATION_TEST_BINARY
SWARMMEMO_DELEGATION_TEST_BINARY
SWARMMEMO_DELEGATION_TEST_BINARY
SWARMMEMO_DELEGATION_TEST_BINARY
SWARMMEMO_DELEGATION_TEST_BINARY
SWARMMEMO_DELEGATION_TEST_BINARY
SWARMMEMO_DELEGATION_TEST_BINARY
SWARMMEMO_HOME
SWARMMEMO_HOME
SWARMMEMO_LAB_FAILPOINT
SWARMMEMO_MCP_TEST_BINARY
SWARMMEMO_MCP_TEST_BINARY
SWARMMEMO_MCP_TEST_BINARY
SWARMMEMO_MCP_TEST_BINARY
SWARMMEMO_MCP_TEST_BINARY
SWARMMEMO_MCP_TEST_BINARY
SWARMMEMO_MCP_TEST_BINARY
SWARMMEMO_OLD_INBOX_CLIENT_DIR
SWARMMEMO_OLD_INBOX_CLIENT_DIR
SWARMMEMO_PRIVATE_INBOX_TEST_BINARY
SWARMMEMO_PRIVATE_READ_TEST_BINARY
SWARMMEMO_REFERENCE_BROWSER
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_SCREENSHOT_DIR
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_BINARY
SWARMMEMO_TEST_DATA
SWARMMEMO_TEST_DATA
SWARMMEMO_TEST_DATA
SWARMMEMO_TEST_DATA
SWARMMEMO_TEST_OTHER
SWARMMEMO_TEST_OTHER
SWARMMEMO_TEST_SHOTS
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_TEST_URL
SWARMMEMO_WALLET_KEY
SWARMMEMO_WALLET_KEY
SWARMMEMO_WALLET_KEY

Commands run 28

assert ctypes.CDLL(None).prctl(36,1,0,0,0)==0 for mode in ('before-arm','dns'): with tempfile.TemporaryDirectory() as root: marker=Path(root)/'dns-ready' wrapper_code="import os,runpy,socket,sys,time,pathlib\n"+( "time.sleep(.4)\n" if mode=='before-arm' else "marker=sys.argv[3]\ndef stalled(*a,**k):\n pathlib.Path(marker).write_text('ready')\n time.sleep(20)\nsocket.getaddrinfo=stalled\n")+"sys.argv=[sys.argv[1],'_fetch',sys.argv[2]];runpy.run_path(sy
assert ctypes.CDLL(None).prctl(36,1,0,0,0)==0 with tempfile.TemporaryDirectory() as root: marker=Path(root)/'descendant' worker_code="import os,time,pathlib; child=os.fork(); pathlib.Path("+repr(str(marker))+ ").write_text(str(os.getpid())) if child==0 else None; time.sleep(20) if child==0 else time.sleep(20)" descendant=None try: start=time.monotonic() with patch.object(p.subprocess,'Popen',spawn): try: fetch(.8) except p.InboxError as e:
def instrument(args,**kwargs): child=spawn(args,**kwargs) original_wait=child.wait def fail_wait(timeout=None): assert timeout is not None and 0<=timeout<=2 raise subprocess.TimeoutExpired('fixed-fixture',timeout) child.wait=fail_wait child.original_wait=original_wait return child try: with patch.object(p.subprocess,'Popen',instrument): try: fetch() except p.InboxError as e: assert str(e)=='worker_cleanup_failed' else: raise As
def interrupt(args,**kwargs): child=spawn(args,**kwargs) os.kill(os.getpid(),signal.SIGINT) return child try: with patch.object(p.subprocess,'Popen',interrupt): try: fetch() except KeyboardInterrupt: pass else: raise AssertionError('caller SIGINT was swallowed') assert_reaped() finally: for child in spawned: stop(child)
for tail in (['_fetch'],['_fetch','1'],['_fetch',str(os.getpid()+10000000)]): child=real_spawn([sys.executable,'-I','-B',p.__file__,*tail],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE) try: child.wait(timeout=2) # stdin still open: refusal precedes reading it. assert child.returncode!=0 assert child.stdout.read()==b'' and child.stderr.read()==b'' finally: child.stdin.close();child.stdout.close();child.stderr.close()
from http.server import BaseHTTPRequestHandler,ThreadingHTTPServer import importlib.util,shutil requests=[] class Handler(BaseHTTPRequestHandler): def log_message(self,*a): pass def do_GET(self): requests.append((self.path,dict(self.headers))) self.send_response(200);self.send_header('Content-Type','application/json');self.send_header('Content-Length','2');self.end_headers();self.wfile.write(b'{}') server=ThreadingHTTPServer(('127.0.0.1',0),Handler) thread=threading.Thre
numbers=(signal.SIGINT,signal.SIGTERM,signal.SIGHUP) originals={n:signal.getsignal(n) for n in numbers} original_mask=signal.pthread_sigmask(signal.SIG_BLOCK,[]) ready,finish=threading.Event(),threading.Event() def secondary(): signal.pthread_sigmask(signal.SIG_UNBLOCK,[signal.SIGINT]) ready.set(); finish.wait(5) thread=threading.Thread(target=secondary);thread.start();assert ready.wait(2) real_signal=signal.signal injected=[] def custom_term(n,f): pass def instrument(n,h): result=r
originals={n:signal.getsignal(n) for n in (signal.SIGINT,signal.SIGTERM,signal.SIGHUP)} original_mask=signal.pthread_sigmask(signal.SIG_BLOCK,[]) delivered=[] def handler(number,frame): assert_reaped() delivered.append(number) def instrument(args,**kwargs): child=spawn(args,**kwargs) signal.pthread_kill(threading.get_ident(),signal.SIGTERM) signal.pthread_kill(threading.get_ident(),signal.SIGHUP) return child try: for n in (signal.SIGTERM,signal.SIGHUP): signal.signa
with tempfile.TemporaryDirectory() as root: reader=p.Inbox(Path(root)/'inbox.sqlite',binding());reader.create();reader.add_consumer('reader') before=reader.status() failures=[] def attempt(): assert reader.status()==before assert reader.pending('reader')==[] for action in (reader.poll,reader.resync,fetch): try: action() except p.InboxError as e: failures.append(str(e)) else: raise AssertionError('unsupported caller acce
worker_code='import time; time.sleep(20)' cleanup_line=inspect.getsourcelines(p.Inbox._fetch_owned)[1] lines=inspect.getsourcelines(p.Inbox._fetch_owned)[0] cleanup_line+=next(i for i,line in enumerate(lines) if line.strip()=='if worker is not None:') injected=[] def trace(frame,event,arg): if frame.f_code is p.Inbox._fetch_owned.__code__ and event=='line' and frame.f_lineno==cleanup_line and not injected: injected.append(True) os.kill(os.getpid(),signal.SIGINT) return t
worker_code="import os,time; block=b'x'*65536\nwhile True: os.write(1,block)" reads=[] real_read=os.read def bounded(fd,size): chunk=real_read(fd,size) if spawned and fd==spawned[0].stdout.fileno(): reads.append(len(chunk)) return chunk try: start=time.monotonic() with patch.object(p.subprocess,'Popen',spawn),patch.object(p.os,'read',bounded): try: fetch(2) except p.InboxError as e: assert str(e)=='response_byte_limit' else: raise AssertionError('acce
--save-request
<dynamic>
<dynamic>
<dynamic>
<dynamic>

Linked repositories 20

GitHub repositories it links to or installs from, and whether their names can be taken over.

a/b
url · not tracked
aiden-rahimi/agent-identity
url · not tracked
colonistone/aer1-perl
url · not tracked
example/repo
url · not tracked
example/widget
url · not tracked
highlightjs/highlight.js
url · not tracked
hugo0/awesome-agent-boards
url · not tracked
hugo0/poh-aggregator
url · not tracked
ksouth/collusionwiki
url · not tracked
o/r
url · not tracked
owner/repo
url · not tracked
owner/tool
url · not tracked
rodrigompy/bugb
url · not tracked
uuriko/project-room
url · not tracked
zfifteen/consciousness
url · not tracked