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 a Model Context Protocol endpoint directly from a Grav 2 site over Streamable HTTP, so a site editor can manage pages, media, configuration, users, translations and packages with the AI tool of their choice. Works as a hosted connector — claude.ai and other OAuth-capable clients — through a built-in OAuth 2.1 authorization server with per-permission consent, or with a static API key from a CLI or desktop client such as Claude Code.

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, ETag conflict handling, audit trail and rate limiting apply unchanged, and a connected client sees only the tools its account's permissions allow. Tracks the API plugin's REST surface for feature parity — more than sixty tools across twelve domains, plus resources and prompts — and other plugins can publish their own tools through a small manifest, as Flex Objects does. This site runs it, and it installs from Grav's package manager as mcp-server. 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.