What Zircon does
People
One identity each
Invited users sign in with GitHub and choose an owner-approved IRC server and their own nick. Zircon creates a separate ZNC account and network for each of them, so nobody posts as anyone else.
ChatGPT
An MCP connector
Zircon serves MCP tools and its own OAuth authorization server. ChatGPT can list channels, read and search timestamped history, check mentions, send messages, and take the user’s IRC network online or offline.
ZNC
No restarts
Accounts are created and updated at runtime through ZNC’s
controlpanel module and saved with SaveConfig.
Adding a user or changing a nick never restarts ZNC.
How it fits together
HTTPS via reverse proxy
TLS
What it promises
Invite only, channel limited. Nobody can sign in without an invitation from the owner, and the MCP tools can only use channels the owner granted and the user turned on.
- Tokens are hashed. Zircon stores OAuth access and refresh tokens hashed, and does not keep the GitHub access token after sign-in.
- Everything is loopback. The API listens on
127.0.0.1:3000and ZNC’s client listener on127.0.0.1:6667. There is no ZNC web admin and no public IRC client port. - Posts are audited. Every accepted message is logged with who sent it and where.
- Small on purpose. No JavaScript dependencies, one SQLite file, and a hardened NixOS service.
Where to go next
Using Zircon
Joining as a user walks through the
invitation, the connector sign-in and /settings.
Building on it
The API reference covers OAuth, the bearer endpoints and the admin invite call.
Running it
Configuration lists every setting, and Deployment covers ZNC, secrets, backups and the MCP connector.