initial commit

This commit is contained in:
daemon 2026-03-16 12:30:06 +00:00
parent 75a13eb482
commit 0b4d4b4bc1

85
README Normal file
View file

@ -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