Everything below lives on GitHub at github.com/sandymac. Most of it is infrastructure glue — the sort of thing written because it was needed, then published in case it's useful to someone else.
MCP Servers
A set of Model Context Protocol servers written in Rust, letting an LLM agent drive a self-hosted media pipeline end to end.
myanonamouse-mcp
An MCP server for querying MyAnonamouse.net. Moderately complete — future versions will mostly refine what's there. Rust, MIT licensed.
deluge-torrent-mcp
An MCP server for controlling the Deluge BitTorrent client — adding torrents, inspecting state, renaming files, and moving storage. Currently in an enhance-and-refine phase. Rust, MIT licensed.
audiobookshelf-mcp
An MCP server for controlling Audiobookshelf. Still evolving. Rust, MIT licensed.
Grav Plugins
grav-plugin-mcp-server
Serves an MCP endpoint directly from a Grav site over Streamable HTTP, so a site editor can manage pages, media, config, and users with the AI tool of their choice. Works as a hosted connector via a built-in OAuth 2.1 authorization server, or with a static API key header from a CLI or desktop client.
A thin translation layer over grav-plugin-api — every tool call dispatches in-process through that plugin's router, so its permission scopes, page ACLs, and rate limiting apply unchanged. 49 tools across 11 domains. This site runs it. PHP, MIT licensed. Write-up here.
Agent Skills
skills
Public repository for Agent Skills — reusable procedural instructions that teach an agent domain-specific conventions, such as how to organize an audiobook or lecture library. MIT licensed.
Archive
Older work, kept online for reference but no longer maintained.
gentoo-overlay
A Gentoo overlay for packages worth the trouble of packaging. Shell, Unlicense. Archived.
qnap-tinc
A tinc VPN package for QNAP NAS platforms. Shell. Archived.
punch-html-fragment-content-parser
A content parser for the Punch static site generator that passes HTML fragments straight through. JavaScript, WTFPL. Archived.