Project Files
README
LM Studio TypeScript plugin port of the Python exif-sniffer MCP server: filesystem tools under a configurable Base Directory, remote media download with SSRF guards, and image metadata extraction ({path, value} rows).
lms CLI (plugins are currently in beta per upstream docs).cd /home/jason/Projects/LMEXIF-Sniffer npm install npm run build npm run dev
npm run dev runs lms dev, which validates manifest.json, installs dependencies if needed, and watches for changes.
manifest.json uses "owner": "jason"; change it if your LM Studio Hub username differs.
lms push rejects nested .gitignore files anywhere under the plugin folder. The vendored reference/exif-sniffer/ tree must not include its own .gitignore (only the repo root file is allowed).
lms push talks to the LM Studio app on your machine (it starts or connects to the local daemon). Run:
cd /home/jason/Projects/LMEXIF-Sniffer npm run build lms push -y
Optional: lms push -y --description "Short public description" and --write-revision to bump revision in manifest.json after a successful upload. See Sharing Plugins.
Runs tsc then Node’s built-in test runner against tests/*.cjs (imports compiled dist/).
npm test
src/ — plugin sources (index.ts, toolsProvider.ts, metadata/fs/fetch helpers).reference/exif-sniffer/ — read-only copy of the Python project for parity while porting (see PORTING.md).Project Files
README
LM Studio TypeScript plugin port of the Python exif-sniffer MCP server: filesystem tools under a configurable Base Directory, remote media download with SSRF guards, and image metadata extraction ({path, value} rows).
lms CLI (plugins are currently in beta per upstream docs).cd /home/jason/Projects/LMEXIF-Sniffer npm install npm run build npm run dev
npm run dev runs lms dev, which validates manifest.json, installs dependencies if needed, and watches for changes.
manifest.json uses "owner": "jason"; change it if your LM Studio Hub username differs.
lms push rejects nested .gitignore files anywhere under the plugin folder. The vendored reference/exif-sniffer/ tree must not include its own .gitignore (only the repo root file is allowed).
lms push talks to the LM Studio app on your machine (it starts or connects to the local daemon). Run:
cd /home/jason/Projects/LMEXIF-Sniffer npm run build lms push -y
Optional: lms push -y --description "Short public description" and --write-revision to bump revision in manifest.json after a successful upload. See Sharing Plugins.
Runs tsc then Node’s built-in test runner against tests/*.cjs (imports compiled dist/).
npm test
src/ — plugin sources (index.ts, toolsProvider.ts, metadata/fs/fetch helpers).reference/exif-sniffer/ — read-only copy of the Python project for parity while porting (see PORTING.md).