From 0b4d4b4bc138cc35919c12d4cc34699c75044598 Mon Sep 17 00:00:00 2001 From: daemon Date: Mon, 16 Mar 2026 12:30:06 +0000 Subject: [PATCH] initial commit --- README | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..d44b19c --- /dev/null +++ b/README @@ -0,0 +1,85 @@ +cveutils +MCP server for a suckless FreeBSD desktop + +an MCP (Model Context Protocol) server that gives Claude Code +system-level tools for managing a suckless/FreeBSD setup. +runs as a local stdio MCP server. + +tools +----- +suckless + suckless_build build and install a suckless tool (dwm, st, dmenu, etc) + suckless_config_read read config.h for a suckless tool + suckless_config_write write config.h and optionally rebuild + +server (debian box via ssh) + server_logs docker compose logs for a service + server_restart restart a docker compose service + server_shell run arbitrary commands via ssh + caddy_config_read read the Caddyfile + caddy_config_write write Caddyfile and reload caddy + +packages + pkg_search search FreeBSD pkg + pkg_install install a FreeBSD package with doas + +forgejo + forgejo_repo_list list repos for a user/org + forgejo_create_repo create a new repo + forgejo_push_file create or update a file in a repo + forgejo_list_issues list issues + forgejo_create_issue create an issue + forgejo_close_issue close an issue + forgejo_delete_file delete a file + +system + battery battery status (apm) + wifi_status wifi interface info + disk_usage df -h + sysctl_get read a sysctl value + dmesg_tail last N lines of dmesg + proc_list ps aux + +desktop / X + dwm_status set the dwm status bar text + dwm_status_read read the current dwm status bar text + clipboard_read read X clipboard + clipboard_write write X clipboard + xwindow_list list open X windows + xwindow_focus focus a window by name + xprop_focused get X properties of focused window + xdotool_key send key combo to focused window + xdotool_type type text into focused window + xdotool_click click mouse button + surf_open open URL in running surf instance + screenshot take a screenshot (returns base64 PNG) + +cmus + cmus_status playback status and track info + cmus_control control cmus in natural language (play, next, volume up, etc) + +irc (ii) + irc_read read messages from an ii channel log + irc_send send a message to an ii channel + +util + wait wait N seconds (useful for dwm bar chat loops) + +setup +----- + cp config.example.js config.js + # edit config.js with your values + npm install + # add to ~/.config/claude/claude_desktop_config.json or equivalent MCP config: + # { + # "mcpServers": { + # "cveutils": { + # "command": "/usr/local/bin/node", + # "args": ["/path/to/cveutils/server.js"] + # } + # } + # } + +license +------- +ISC