pi-mcp-events: Pi를 위한 MCP 이벤트(폴링, 스트리밍, 웹훅) 지원, 후속 턴으로 이벤트 수신
pi-mcp-events: MCP Events for Pi (polling, streaming, webhooks), events arrive as follow-up turns
핵심 요약
Pi 에이전트가 MCP 서버의 이벤트를 실시간으로 구독하고 처리할 수 있게 해주는 확장 기능을 소개합니다.
- MCP 이벤트 지원 — 폴링, 스트리밍, 웹훅 등 3가지 전달 방식 지원
- 백그라운드 처리 — Pi가 유휴 상태일 때 이벤트를 후속 턴으로 전달
- 디버깅 도구 — 상태 확인 및 로컬 인박스 기능을 통한 이벤트 관리
- 확장성 제공 — Pi 이벤트 버스를 통해 다른 확장 기능과 연동 가능

안녕! 내 동료 Daniel Shapiro가 Sanity에서 만든 확장 프로그램을 공유할게 (참고로 나도 거기서 일함): pi-mcp-events라고, MCP Events 초안 사양(SEP-3415)을 위한 클라이언트야.
이제 MCP 서버가 "문서가 변경됨"이나 "폭풍 경보 발생" 같은 이벤트를 알릴 수 있게 됐어. Pi는 툴 호출로 계속 폴링하는 대신 이 이벤트를 구독할 수 있지. 이벤트는 Pi가 작업하는 동안 백그라운드에서 들어오고, 모아뒀다가 Pi가 한가해지면 후속 턴으로 처리돼. 이거 꽤 괜찮고, 새로운 사용 사례가 엄청나게 열릴 것 같은 느낌이야.
이 확장 프로그램이 하는 일:
→ 초안에 있는 세 가지 전달 모드 전부 지원: 폴링, 스트리밍, 서명된 웹훅
→ /mcp-events status로 각 워치, 전송 방식, 상태를 확인할 수 있어서 디버깅하기 훨씬 편함
→ 로컬 받은 편지함이 있어서 Pi가 바쁠 때도 이벤트가 유실되지 않음 (메모리상에만 저장, --no-session 옵션 사용 시)
→ 이벤트 페이로드는 신뢰할 수 없는 데이터로 표시되고, Pi의 기존 권한 설정이 그대로 적용됨
→ 모든 이벤트는 Pi의 이벤트 버스(mcp-events:observation)로도 전송되니까 다른 확장 프로그램에서 가져다 쓰거나 필터링할 수 있음
pi install npm:@sanity-labs/pi-mcp-events
저장소에 측정값이나 폭풍 경보를 보내는 간단한 "기상 관측소" MCP 서버가 포함돼 있으니까, 직접 서버 만들기 전에 이걸로 먼저 테스트해 봐.
우리가 이걸 만든 이유는 사람이 같은 문서를 수정하기 시작할 때 그걸 바로 알아채고 기다려주는 에이전트가 필요했기 때문이야. 그러려면 몇 초 안에 이벤트가 전달돼야 하거든. Pi 덕분에 확장하기가 진짜 쉬웠어. 지연 시간 수치랑 사양에서 발견한 빈틈에 대한 글은 여기서 볼 수 있어.
만약 모델이 이벤트를 툴처럼 호출하는 방식을 원한다면, richardanaya가 만든 pi-mcp-events를 확인해 봐. 그쪽은 그런 식으로 접근하거든.
저장소 (관심 있으면 별 하나씩 박아줘): https://github.com/sanity-labs/pi-mcp-events


