Snowkit

io.snowkit由 snowkit.io 發布v0.1.4更新於 Nov 5, 2026

Private tools that run on your computer: PDFs, QR codes, JSON, SQL, text, colours and cron.

已驗證STDIO僅桌面檔案與儲存開發者工具

概覽

AI 產生的概覽

Snowkit 是本地 MCP 伺服器,為助理提供離線檔案工具:PDF 合併/拆分/旋轉、Markdown 轉 PDF、QR 碼、JSON、SQL、文字、顏色與 cron 輔助。

可以做什麼
  • 合併、拆分、擷取、旋轉與檢視 PDF,並把 Markdown 轉成 PDF
  • 為連結或文字產生 SVG 或 PNG QR 碼
  • 格式化與驗證 JSON(可選擇依 JSON Schema 驗證),格式化或壓縮 SQL
  • 統計字數與可讀性、轉換文字大小寫、產生 URL slug、移除重複行
  • 在 hex、RGB、HSL、HSV 與 OKLCH 之間轉換顏色並檢查 WCAG 對比度
  • 解釋 cron 表示式、讀取或清除照片中繼資料、產生或檢查網頁 head 標籤
適用情境
適合讓助理在本機處理日常檔案雜務:合併或擷取 PDF、把筆記轉成 PDF、整理 JSON 或 SQL、檢查網頁中繼資料,而不必把檔案上傳到任何服務。
執行需求
需要 Node.js 18 或更新版本,首次執行時透過 npx 取得套件。不需要帳號、API 金鑰或環境變數。以本機 stdio 程序執行,僅適用於桌面版 MCP 應用程式,不支援網頁用戶端。工具需要完整檔案路徑。
安裝前請注意
工具會寫入檔案:未指定輸出路徑時結果會存在輸入檔案旁,只有設定 overwrite 才會覆寫既有檔案。合併、拆分與擷取不會保留原檔案的書籤與文件資訊。受密碼保護的 PDF 會被略過。Markdown 轉 PDF 會忽略圖片,且僅支援西歐字型。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Snowkit,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[Snowkit]

Snowkit

Private tools that run on your computer.

Snowkit merges and splits PDFs, makes QR codes, tidies JSON and SQL, counts words and more. It works from the command line, and it plugs into AI apps that support the Model Context Protocol (MCP), so your assistant can do real work on your files.

Your files never leave your computer. Snowkit has no account, sends nothing over the internet and keeps no copies. It reads the files you point it to and writes the results next to them.

What it can do

ToolWhat it does
pdf_mergeCombines two or more PDFs into one, in the order you give
pdf_splitSplits a PDF into one file per page, every few pages, or by page ranges
pdf_extract_pagesCopies chosen pages into a new PDF, which also reorders or drops pages
pdf_rotateTurns all or some pages by 90, 180 or 270 degrees
pdf_infoShows page count, page sizes, PDF version, form fields and document details
markdown_to_pdfTurns Markdown into a clean, paginated PDF
qr_codeMakes a QR code for a link or any text, as SVG or PNG
json_formatPretty-prints or minifies JSON, keeping large numbers exact
json_validateChecks JSON, and optionally checks it against a JSON Schema
sql_formatFormats or minifies SQL
text_statsCounts words, characters and sentences, with reading time and readability
text_transformChanges case, makes URL slugs, or removes duplicate lines
color_convertConverts a colour between hex, RGB, HSL, HSV and OKLCH, and checks contrast
cron_explainExplains a cron schedule in plain English and lists the next runs
image_infoShows what a JPEG, PNG or WebP photo reveals: camera, date and the location it was taken
image_strip_metadataRemoves the hidden location, camera details and comments from a photo, leaving the picture as it was
head_tagsWrites the title, description, canonical, Open Graph and Twitter tags for a page
head_checkChecks a page's HTML for missing or too-long head tags and says what to fix

Each result ends with a link to the matching tool on snowkit.io, in case you would rather see it in your browser.

Use it with your AI app

You need Node.js 18 or newer. There is nothing else to install: the commands below fetch Snowkit the first time it runs.

Claude Desktop

Open Settings, then Developer, then Edit Config, and add Snowkit to claude_desktop_config.json:

json
{  "mcpServers": {    "snowkit": {      "command": "npx",      "args": ["-y", "snowkit"]    }  }}

Restart Claude Desktop. If it cannot find npx on Windows, use "command": "cmd" and "args": ["/c", "npx", "-y", "snowkit"].

Claude Code

sh
claude mcp add snowkit -- npx -y snowkit

Cursor

Open Cursor Settings, then MCP, then Add new MCP server, or add this to ~/.cursor/mcp.json (or .cursor/mcp.json inside a project):

json
{  "mcpServers": {    "snowkit": {      "command": "npx",      "args": ["-y", "snowkit"]    }  }}

Gemini CLI

Add this to ~/.gemini/settings.json:

json
{  "mcpServers": {    "snowkit": {      "command": "npx",      "args": ["-y", "snowkit"]    }  }}

Any other MCP app

Snowkit is a standard MCP server over standard input and output. Point your app at the command npx -y snowkit.

Then just ask, for example:

  • "Merge invoice-march.pdf and invoice-april.pdf in my Downloads folder."
  • "Pull pages 3 to 5 out of contract.pdf."
  • "Make a QR code PNG for https://example.com and save it to my desktop."
  • "Is this JSON valid?"

Use it from the command line

sh
npx snowkit pdf merge a.pdf b.pdf -o both.pdfnpx snowkit pdf split report.pdf --every 2npx snowkit pdf split report.pdf --range 1-3 --range 4-npx snowkit pdf extract report.pdf --pages "1, 4-6"npx snowkit pdf rotate scan.pdf --angle 90 --pages 2npx snowkit pdf info report.pdfnpx snowkit md2pdf notes.md --page letter --numbersnpx snowkit qr "https://example.com" -o qr.pngnpx snowkit json format data.json --sortnpx snowkit json validate data.json --schema schema.jsonnpx snowkit sql format query.sqlnpx snowkit text stats essay.txtnpx snowkit text case title headings.txtnpx snowkit text dedupe emails.txt --ignore-casenpx snowkit color "#336699" --against whitenpx snowkit cron "*/15 9-17 * * 1-5"npx snowkit --help

Text commands read the file you name, or standard input when you pipe text in, so they fit into scripts:

sh
curl -s https://api.example.com/items | npx snowkit json format

Install it once with npm install -g snowkit and you can drop the npx.

How it treats your files

  • It only reads the files you name and only writes where you ask, or next to the original when you do not say.
  • It never replaces an existing file unless you set overwrite (or pass --overwrite on the command line).
  • It never connects to the internet. Every tool runs on your own computer.
  • Password-protected PDFs are left alone, with a clear message.

Good to know

  • markdown_to_pdf uses built-in fonts that cover Western European languages. Images in the Markdown are left out.
  • pdf_rotate keeps everything else in the file as it was. Merging, splitting and extracting copy the pages themselves, so bookmarks and document details from the originals are not carried over.
  • Errors explain what went wrong and how to fix it, so your assistant can try again sensibly.

Licence

MIT. See LICENSE.

來源:README.md,提交 64c4ab3

工具

18

pdf_merge

Merge PDFs

Combine two or more PDF files into one, in the order given. Saves next to the first file as name-merged.pdf unless output is set.

輸入參數inputs必填outputoverwrite

pdf_split

Split a PDF

Split a PDF into several files: one per page by default, every N pages, or one file for each page range. Files are saved beside the original unless output_folder is set.

輸入參數everyinput必填rangesoverwriteoutput_folder

pdf_extract_pages

Extract PDF pages

Copy chosen pages of a PDF into a new PDF, in the order listed. Also works to reorder, duplicate or drop pages. Saves as name-extracted.pdf beside the original unless output is set.

輸入參數input必填pages必填outputoverwrite

pdf_rotate

Rotate PDF pages

Turn all or some pages of a PDF by 90, 180 or 270 degrees clockwise, or -90 for anticlockwise. Everything else in the file is kept. Saves as name-rotated.pdf unless output is set.

輸入參數angle必填input必填pagesoutputoverwrite

pdf_info

PDF details

Read a PDF's page count, page sizes, file size, PDF version, form fields, password protection and document details such as title and author. Changes nothing.

輸入參數input必填

markdown_to_pdf

Markdown to PDF

Turn Markdown into a clean, paginated PDF with headings, lists, tables, code blocks and links. Uses built-in fonts for Western European text; images are left out. Saves beside the Markdown file unless output is set.

輸入參數pageinputtitleoutputmarkdownoverwritepage_numbers

qr_code

Make a QR code

Make a QR code for a link or any text, as SVG or PNG. Without an output path the SVG is returned as text. The content lives in the code itself, so it never expires.

輸入參數sizetext必填levelformatoutputoverwrite

json_format

Format JSON

Pretty-print or minify JSON, optionally sorting keys. Large numbers keep every digit and errors point to the line and column.

輸入參數textinputindentminifyoutputoverwritesort_keys

json_validate

Validate JSON

Check that JSON is valid and, optionally, that it matches a JSON Schema. Reports the line and column of syntax errors and the path of every schema problem.

輸入參數textinputschemaschema_path

sql_format

Format SQL

Tidy SQL into readable, indented lines, or minify it onto one line. Works with common dialects such as PostgreSQL, MySQL, SQLite and SQL Server.

輸入參數textinputindentminifyoutputoverwritekeyword_case

text_stats

Text statistics

Count words, characters, sentences, paragraphs and lines, estimate reading and speaking time, and score readability for English text.

輸入參數textinput

text_transform

Transform text

Change text case (upper, lower, title, sentence, camel, pascal, snake, kebab, constant), turn each line into a URL slug, or remove duplicate lines while keeping the original order.

輸入參數texttriminputaction必填outputoverwriteignore_caseremove_empty

color_convert

Convert a colour

Show a colour as hex, RGB, HSL, HSV and OKLCH with its nearest named colour. Give a second colour to get the WCAG contrast ratio and pass or fail results.

輸入參數color必填against

cron_explain

Explain a cron schedule

Describe a five-field cron expression in plain English and list its next run times.

輸入參數utccountexpression必填

image_info

Image metadata

Show what a JPEG, PNG or WebP photo reveals about itself: camera, date, editing software and the GPS location where it was taken, if any.

輸入參數input必填

image_strip_metadata

Remove image metadata

Remove the hidden location, camera details, dates and comments from a JPEG, PNG or WebP photo without changing the picture. Saves next to the original as name-clean unless output is set.

輸入參數input必填outputoverwritekeep_color_profile

head_tags

Make head tags

Write the title, description, canonical, Open Graph and Twitter tags for a web page, ready to paste into its <head>.

輸入參數urlimagetitlenoindextwitterimage_altsite_namedescriptiontheme_color

head_check

Check head tags

Check a web page's HTML for a missing or too-long title and description, share image, canonical and other head tags, with what to fix.

輸入參數htmlinput

版本歷史

2
  1. v0.1.4最新Nov 4, 2026
  2. v0.1.3Nov 4, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分