- Remove duplicate uvx commands from docker-compose.yml (blender, freecad, gimp)
- Update ghost-mcp to use default environment values for testing
- Update crush.json LSP commands with proper start arguments
- Add ffmpeg dependency to audiobook-mcp Dockerfile
- Create .env file with dummy values for all MCP servers
- Update STATUS.md for ghost-mcp working status
Note: gimp-mcp entrypoint fix excluded (vendor directory is gitignored)
Remove unnecessary entrypoint overrides and use default container entrypoints.
All LSP containers now use their Dockerfile-defined ENTRYPOINT and CMD.
- bash-language-server: Uses default entrypoint and 'start' command
- docker-language-server: Uses default entrypoint and 'start --stdio' command
- marksman: Uses default entrypoint and 'server' command
- Fixed Dockerfile to skip prepare script during npm ci
- Changed docker-compose.yml to use node:22-alpine image with npx
- Updated STATUS.md to mark ghost-mcp as Built
- Added ghost-mcp to crush.json for Crush integration
- Validated container starts correctly with proper Ghost credentials
The ghost-mcp server now works as expected using the @fanyangmeng/ghost-mcp
npm package. It requires GHOST_API_URL and GHOST_ADMIN_API_KEY in the
format {24_hex_chars}:{64_hex_chars}.
- Build bitwarden-mcp from Bitwarden clients monorepo (multi-stage Docker build)
- Uses distroless nodejs24-debian12 for minimal runtime
- Update STATUS.md: Mark mcp-server (Bitwarden) as Built
- Update crush.json: Add bitwarden MCP server to mcp section
Note: Requires BITWARDEN_CLIENT_ID, BITWARDEN_CLIENT_SECRET, and BITWARDEN_PASSWORD env vars
- Build audiobook-mcp from TypeScript source (npm run build)
- Update STATUS.md: Mark audiobook-mcp-server as Built
- Update crush.json: Add audiobook MCP server to mcp section
Note: Uses npx entrypoint pattern similar to other MCP servers