{"name":"io.github.shunyagatha/vecline","slug":"shunyagatha-vecline","title":null,"description":"Local-first image, vector and document toolkit that measures its own output. Nothing uploaded.","url":"https://mcp.market/server/shunyagatha-vecline","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"ai","tags":["ai","media"],"presence":{"score":40,"stars":18,"forks":2,"downloads_week":719,"last_push_at":"2026-08-22T16:12:59.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/shunyagatha/Vecline","website":"https://vecline.xyz","version":"2.1.4","remotes":[],"packages":[{"registryType":"npm","identifier":"vecline","version":"2.1.4","runtimeHint":"npx","transport":{"type":"stdio"},"packageArguments":[{"description":"Starts the MCP server. `vecline` is a full toolkit; `mcp` is the subcommand that speaks JSON-RPC over stdio.","isRequired":true,"value":"mcp","type":"positional","valueHint":"subcommand"}],"environmentVariables":[{"description":"Optional. Path to a LibreOffice `soffice` binary, used only by the Office conversion tools. Left unset, they are auto-detected; if LibreOffice is absent the affected tools report themselves as unavailable rather than failing.","format":"filepath","name":"VECLINE_SOFFICE"}]}],"tools":[{"name":"centerline","description":"Trace line art to single-stroke centreline SVG (for plotters, lasers, CNC). Optionally emit G-code with tool=laser|pen.","write_action":false,"price_micros":0,"input_schema":null},{"name":"component","description":"Turn an SVG into a React, Vue, Svelte or Solid component, ready to import. Emits typed TSX for React","write_action":false,"price_micros":0,"input_schema":null},{"name":"convert","description":"Convert between formats by extension. Supports raster↔SVG plus vector export to .dxf/.eps/.pdf (CAD/CNC/print).","write_action":false,"price_micros":0,"input_schema":null},{"name":"crop","description":"Content-aware crop to an aspect ratio, keeping the salient subject (edges + saturation) rather than the centre. aspect like \"1:1\", \"16:9\", \"4:5\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"diff","description":"Perceptual visual-regression diff. Paints a CIEDE2000 heatmap of what changed between two images (raster or SVG) and reports changed-pixel count/fraction, max & mean ΔE, and SSIM. Give an output path to save the heatmap.","write_action":false,"price_micros":0,"input_schema":null},{"name":"doc_to_images","description":"Render a document (PDF, SVG, or Office docx/xlsx/pptx) to one image per page. PDF needs the optional mupdf package; Office needs local LibreOffice.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract","description":"Recover the original bitmap from an SVG written by embed/lossless mode, and verify it byte for byte.","write_action":false,"price_micros":0,"input_schema":null},{"name":"image_info","description":"Inspect an image without converting it: dimensions, format, colour space, alpha, distinct colour","write_action":false,"price_micros":0,"input_schema":null},{"name":"images_to_pdf","description":"Combine images into one multi-page PDF (one image per page).","write_action":false,"price_micros":0,"input_schema":null},{"name":"measure","description":"Measure how close two images (raster or SVG) are: PSNR, SSIM, mean CIEDE2000, and whether they are pixel-identical.","write_action":false,"price_micros":0,"input_schema":null},{"name":"office_convert","description":"Convert an Office document ⇄ PDF (and between Office formats) via local LibreOffice. Target format is the output file extension.","write_action":false,"price_micros":0,"input_schema":null},{"name":"optimize","description":"Minify an SVG without changing what it draws: round coordinates, drop default attributes, strip the","write_action":false,"price_micros":0,"input_schema":null},{"name":"palette","description":"Extract a perceptual dominant-colour palette (hex + weight) from an image.","write_action":false,"price_micros":0,"input_schema":null},{"name":"placeholder","description":"Generate a BlurHash string for lazy-loading a raster image.","write_action":false,"price_micros":0,"input_schema":null},{"name":"rasterize","description":"Render an SVG to a raster image (PNG/JPEG/WebP/AVIF/TIFF). The inverse of vectorize, and the","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-11-01T13:28:37.258Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-01T13:28:37.238Z","components":{"code":{"score":25,"max":25,"notes":["317 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 71 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"vecline","version":"2.1.4","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-08-22T16:09:15.128Z","repositoryUrl":"git+https://github.com/shunyagatha/Vecline.git","weeklyDownloads":719}],"repo":{"found":true,"owner":"shunyagatha","repo":"Vecline","archived":false,"pushedAt":"2026-08-22T16:12:59Z","stars":18,"forks":2,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/271973542?v=4","ownerCreatedAt":"2026-03-29T13:42:22Z","license":"MIT"},"icon":{"url":"https://vecline.xyz/icon.svg","source":"registry"},"presence":{"stars":18,"forks":2,"downloadsWeek":719,"license":"MIT","lastPushAt":"2026-08-22T16:12:59.000Z","score":40}}}},"grade_history":[],"reviews":[]}