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、二维码、JSON、SQL、文本、颜色和 cron 辅助。

可以做什么
  • 合并、拆分、提取、旋转和查看 PDF,并把 Markdown 转成 PDF
  • 为链接或文本生成 SVG 或 PNG 二维码
  • 格式化与校验 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 分