6fa98dd655294069a5d30d081fb009a8fed4c2f8
Root cause of the shell->shell_bg thrash: run() backgrounded POSIX commands with a bare & and never captured the pid, so on timeout it returned an error while the children kept running. Now: setsid (own process group), capture the leader pid, SIGTERM+SIGKILL the whole group on timeout/cancel, and a message telling the model it was killed + to use shell_bg. Plus shell_bg registers jobs to /tmp/lmcp-bg-jobs.tsv and new kill_job/list_jobs let a runaway job be reaped without a reboot.
lmcp — Lua MCP server
Lightweight Model Context Protocol (MCP) server in pure Lua.
Runtime dependencies
- Lua 5.1+
- luasocket — needed for the TCP
listener. Packaged as
lua-socketon Arch/ALARM,lua-socketon Debian.
Files
| File | Role |
|---|---|
lmcp.lua |
library: protocol handling, tool registration |
server.lua |
HTTP server loop |
json.lua |
vendored JSON encoder/decoder |
example_server.lua |
sample server with a couple of tools |
Install
Packaged as lmcp in the marfrit overlay repo:
# Arch / ALARM
sudo pacman -S lmcp
# Debian
sudo apt install lmcp
Files land under /usr/share/lua/5.4/ (Lua LUA_PATH).
The example server installs as /usr/bin/lmcp-example.
Description