2026-03-19 23:03:21Claude (MCP):
[mcp] Update IRC MCP Bridge: mark as implemented with post-build findings
Minsky/IRC_MCP_Bridge.md ..
@@ 11,7 11,16 @@
The minsky project needs an IRC MCP bridge — a FastMCP server that wraps IRC as MCP tools so that Claude Code SDK agents can communicate over IRC channels. This is the standalone communication layer from the [[Design/Agent_IRC_Architecture]] spec. The bridge has independent utility: any MCP client can use it to interact with IRC.
-
The project is greenfield (no code yet). We use `uv` for dependency management, `pydle` 1.1 for async IRC, and `mcp[cli]` 1.26 for FastMCP. SSE transport only.
+
**Status: implemented** (branch `feat/irc-mcp-bridge`, 2026-03-19). 40 tests passing (26 unit + 14 integration against ergo). Tested end-to-end with a Sonnet subagent chatting over IRC via MCP tools.
+
+
We use `uv` for dependency management, `pydle` 1.1 for async IRC, and `mcp[cli]` 1.26 for FastMCP. SSE transport only.
+
+
### Implementation notes (post-build)
+
+
- **`pydle.ClientPool` cannot be used** — `handle_forever()` calls `asyncio.run()` which conflicts with FastMCP's already-running anyio event loop. Uses `asyncio.create_task()` + `asyncio.gather()` instead.
+
- **pydle ISUPPORT bug with ergo** — ergo sends `MODES` without a value; pydle's `on_isupport_modes` crashes with `TypeError`. Fixed via `_ErgoCompatMixin` that guards `int(None)`.
+
- **Channel/nick validation** added at the server layer to prevent IRC protocol injection.
+
- **`MCP_HOST` env var** added (default `127.0.0.1`) for binding the SSE server to non-loopback interfaces.