PullMD v2.4.1 Adds Native MCP Connector for claude.ai Web and Multi-User Auth
PullMD v2.4.1 is out, and the headline feature is native support for claude.ai web's custom connector dialog (and Claude Desktop). Two weeks after the initial post — 385 upvotes, 60 comments, ~20 GitHub issues, and 7 releases — here's what shipped.
claude.ai Web Connector Works Natively
You can now point claude.ai web at your own self-hosted PullMD instance. The custom-connector dialog discovers the server, registers it, and walks you through OAuth consent. Setup is two env vars:
OAUTH_JWT_SECRET=$(openssl rand -hex 32)
PUBLIC_URL=https://your-host.example.comRestart, then go to claude.ai web → Settings → Connectors → Add custom and point at https://your-host.example.com/mcp. Same flow works in Claude Desktop.
Under the hood: standard OAuth 2.1 Authorization Code flow with PKCE-S256 and Dynamic Client Registration (RFC-compliant). If OAUTH_JWT_SECRET isn't set, behavior falls back to v1.x.
Three Auth Modes via PULLMD_AUTH_MODE
Until v2.0, PullMD was effectively single-tenant. v2.0 introduces three modes:
- disabled (default) — no login, no API key. Same as v1.x. Use on a trusted network.
- single-admin — one user, password-protected, no self-signup. Good for homelab with GUI gating.
- multi-user — self-signup at
/signup, per-user history isolation, per-user API keys (pmd_<32-char-base62>sent asAuthorization: Bearer pmd_xxx). Share links (/s/:id) remain public.
Minimal config for a shared instance:
PULLMD_AUTH_MODE=multi-user
[email protected]
PULLMD_ADMIN_PASSWORD=change-me-pleaseImproved Site Compatibility
Several fixes landed since v1.2/v2.2 that closed gaps where PullMD returned half-articles or empty bodies:
- Future PLC family (windowscentral.com, tomshardware.com, techradar.com, pcgamer.com, gamesradar.com, t3.com) — site recipes now strip recommendation widgets and
aria-hiddenpaywall patterns that confused Readability. - GitHub Issues pages — default recipe for
*/*/issues/*forces Playwright withwait_for: .js-comment-bodyto capture the full JS-rendered comment thread. - UA fingerprinting sites — the hardcoded Chrome 131 UA has been replaced with a real-world UA pool that rotates.
📖 Read the full source: r/ClaudeAI
👀 See Also

Kanwas: Open-source shared context board for teams and AI agents
Kanwas is an open-source multiplayer workspace where teams and AI agents share documents, evidence, and decisions on a canvas with live streaming tool calls. Self-hosted via Docker, it's git-backed with Yjs and BlockNote.

Keyoku Plugin Replaces OpenClaw's Static Heartbeat with Memory-Driven Autonomy
Keyoku is a free OpenClaw plugin that changes the agent's heartbeat from reading a static HEARTBEAT.md file to scanning the agent's actual memory store for stalled work, dropped commitments, conflicting information, and quiet relationships. It uses a local Go engine with SQLite + HNSW and offers three autonomy levels: observe, suggest, and act.

Rails-AI-Context Gem Provides Claude Code with Complete Rails App Model via MCP
The rails-ai-context gem auto-introspects Rails applications and exposes 39 tools via MCP, allowing Claude Code to query specific app details like schema with encrypted columns, model associations, routes, Stimulus wiring, and Turbo mappings instead of reading entire files.

Claude Code AFK Agent: Run Discord-Backed Autonomous Workers via Teams Plugin
Use the official channels plugin and teams agent with env var CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 to spawn single workers from Discord. Includes full CLAUDE.md for a lead agent that dispatches, never works, and force-shuts down silent workers after 60 minutes.