snapWONDERS Vaultify
Hosted snapWONDERS MCP: hide files in images, reveal hidden content, analyse media, convert formats
我该使用它吗
质量与安全性
发现(9)
- LOW在 status 中
- LOW在 snapwonders_analyse_job_status 中
- LOW在 snapwonders_convert_job_status 中
- LOW在 snapwonders_analyse_session_create 中
- LOW在 snapwonders_analyse_session_files 中
- LOW在 snapwonders_analyse_job_results 中
- LOW在 snapwonders_convert_session_create 中
- LOW在 snapwonders_convert_session_files 中
- LOW在 snapwonders_convert_job_results 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"mcp": {
"url": "https://snapwonders.com/mcp"
}
}
}远程端点
https://snapwonders.com/mcpstreamable-http它能做什么
工具清单
工具(19)
⚪status
Returns the current health status of the Vaultify service. No API key required.
输入模式
{
"type": "object",
"properties": {},
"required": []
}🟢vaultify_get_started
Introduction to snapWONDERS Vaultify steganography: what it does, how AES-256 + Argon2id + LSB embedding works, a pre-computed sample hide result showing the exact response schema, and guidance on creating a free account and API key to start using the API. No API key required — call this first to understand the Vaultify workflow.
输入模式
{
"type": "object",
"properties": {},
"required": []
}🟢snapwonders_get_started
Introduction to snapWONDERS forensic analysis and media conversion: what each service does, pre-computed sample analyse and convert results showing the exact response schemas, and guidance on creating a free account and API key. No API key required — call this first to understand the snapWONDERS analyse and convert workflows.
输入模式
{
"type": "object",
"properties": {},
"required": []
}🟡vaultify_session_create(type)
Creates an upload session for hide (conceal a file inside a cover image/video) or reveal (extract hidden content from a stego image/video) processing. Returns the upload_uid and upload instructions. Upload each file with a single POST /api/upload carrying the file as the request body (hide needs X-Upload-Step 1 for the secret and 2 for the cover); its response reports ready_for_job_start, so no separate verification call is needed. Direct upload accepts files up to max_upload_bytes (returned in this response, currently 95 MB); anything larger must use the resumable TUS endpoint at /api/tus. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"hide",
"reveal"
],
"description": "hide: conceal content inside a cover image or video; reveal: extract hidden content from a stego image or video"
}
},
"required": [
"type"
]
}🟢vaultify_session_files(upload_uid)
Lists all files currently uploaded for a stego session. Check that all files show status "completed" before calling vaultify_job_start. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by vaultify_session_create"
}
},
"required": [
"upload_uid"
]
}🟡vaultify_job_start(upload_uid, password, expiry, output_format, packing_strategy, ...)
Submits options and queues a hide or reveal job for a session whose files have all been uploaded. Hide jobs support the full set of encoding options; reveal jobs only use upload_uid, password, and expiry. The call is idempotent. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by vaultify_session_create"
},
"password": {
"type": "string",
"description": "Encryption password. Required for hide and reveal. At least 8 characters with mixed case, a digit, and a symbol."
},
"expiry": {
"type": "string",
"enum": [
"1h",
"12h",
"1d",
"2d",
"1w",
"1m"
],
"description": "How long the result download link remains accessible after the job completes. Free-tier keys are silently clamped to upload.free_max_expiry (default 1d); Pro accounts get the requested value."
},
"output_format": {
"type": "string",
"enum": [
"avif",
"heic",
"jp2",
"jxl",
"png",
"webp"
],
"description": "Hide only. Image format for stego output. All formats are lossless. Default: avif."
},
"packing_strategy": {
"type": "string",
"enum": [
"spread",
"tight",
"quality"
],
"description": "Hide only. How secrets are distributed across covers. spread: alter each cover as little as possible (default). tight: pack multiple secrets per cover. quality: preserve visual quality above all else."
},
"scale_secret_to_fit": {
"type": "boolean",
"description": "Hide only. Auto-reduce secret size when it is too large to fit in its cover — images are resized, videos are compressed further. Set false to fail instead. Default: true."
},
"strip_cover_metadata": {
"type": "boolean",
"description": "Hide only. Remove EXIF, GPS, and all embedded metadata from the stego output cover. Default: false."
},
"strip_secret_metadata": {
"type": "boolean",
"description": "Hide only. Remove EXIF, GPS, and embedded metadata from secret files before hiding. Reduces payload size. Default: false."
},
"video_output_format": {
"type": "string",
"enum": [
"ffv1_mkv",
"huffyuv_avi",
"lagarith_avi",
"magicyuv_avi",
"prores4444_mov",
"prores4444xq_mov",
"av1lossless_mkv"
],
"description": "Hide only, video covers. Lossless codec and container for stego video output. Default: ffv1_mkv."
},
"secret_video_crf": {
"type": "integer",
"minimum": 18,
"maximum": 40,
"description": "Hide only, video secrets. Compression quality for secret videos (lower = better quality, larger payload). Default: 28."
},
"secret_video_codec": {
"type": "string",
"enum": [
"h264",
"h265"
],
"description": "Hide only, video secrets. Codec for compressing secret videos. h265 gives ~40% smaller payloads. Default: h265."
},
"vault_profile_id": {
"type": "integer",
"description": "Pro accounts only, hide jobs only. ID of a Vault Profile to use as an additional key factor. Vault profiles are created and managed at /vault in the web UI. Returns error code -32002 on free accounts."
}
},
"required": [
"upload_uid",
"password",
"expiry"
]
}⚪vaultify_job_status(upload_uid)
Returns the current status and progress of a hide/reveal processing job. Poll until status is "completed" or "failed". Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by vaultify_session_create"
}
},
"required": [
"upload_uid"
]
}🟢vaultify_job_results(upload_uid)
Returns download info for all result files once a hide/reveal job is complete. result_files is empty while the job is still processing — poll vaultify_job_status first. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by vaultify_session_create"
}
},
"required": [
"upload_uid"
]
}🟡snapwonders_analyse_session_create
Creates an upload session for forensic media analysis. Returns the upload_uid and upload instructions. Upload each file with a single POST /api/upload carrying the file as the request body; its response reports ready_for_job_start, so no separate verification call is needed before snapwonders_analyse_job_start. Direct upload accepts files up to max_upload_bytes (returned in this response, currently 95 MB); anything larger must use the resumable TUS endpoint at /api/tus. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {},
"required": []
}🟢snapwonders_analyse_session_files(upload_uid)
Lists all files uploaded to an analyse session. Verify all files show status "completed" before calling snapwonders_analyse_job_start. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by snapwonders_analyse_session_create"
}
},
"required": [
"upload_uid"
]
}🟡snapwonders_analyse_job_start(upload_uid, face_detection, text_detection, face_sensitivity, forensic_depth, ...)
Submits analysis options and queues a forensic analysis job. Returns upload_uid and job_uid. The call is idempotent. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by snapwonders_analyse_session_create"
},
"face_detection": {
"type": "boolean",
"description": "Enable YuNet face detection. Default: true."
},
"text_detection": {
"type": "boolean",
"description": "Enable OCR / text region detection. Default: true."
},
"face_sensitivity": {
"type": "string",
"enum": [
"standard",
"thorough"
],
"description": "standard: confidence threshold 0.5 (fewer false positives). thorough: threshold 0.2 (catches more faces). Default: standard."
},
"forensic_depth": {
"type": "string",
"enum": [
"standard",
"deep"
],
"description": "standard: core forensic checks. deep: extended checks (reserved, currently identical to standard). Default: standard."
},
"expiry": {
"type": "string",
"enum": [
"1h",
"12h",
"1d",
"2d",
"1w",
"1m"
],
"description": "How long the analysis result remains accessible after the job completes. Default: 1d. Free-tier keys are silently clamped to upload.free_max_expiry (default 1d); Pro accounts get the requested value."
}
},
"required": [
"upload_uid"
]
}⚪snapwonders_analyse_job_status(upload_uid)
Returns the current status and per-item progress of an analysis job. Poll until status is "completed", "partial", or "failed". Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by snapwonders_analyse_session_create"
}
},
"required": [
"upload_uid"
]
}⚪snapwonders_analyse_job_results(upload_uid)
Returns per-item forensic analysis results including overall_grade (A–F; the Authenticity grade — edited, generated or re-encoded), exposure_grade (A–F; what the file gives away — privacy and hidden data), face_count, text_region_count, and watermark_flagged. Returns job_uid which can be passed to snapwonders_analyse_result for the clean summary. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by snapwonders_analyse_session_create"
}
},
"required": [
"upload_uid"
]
}⚪snapwonders_analyse_result(job_uid)
Returns clean forensic result JSON by job_uid — file names, grades (A–F), detection counts, and analysis asset IDs (face overlays, ELA maps, etc.). The job_uid is returned by snapwonders_analyse_job_start and snapwonders_analyse_job_results. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"job_uid": {
"type": "string",
"description": "The job_uid returned by snapwonders_analyse_job_start or snapwonders_analyse_job_results"
}
},
"required": [
"job_uid"
]
}🟡snapwonders_convert_session_create
Creates an upload session for media conversion (images and videos). Returns the upload_uid and upload instructions. Upload each file with a single POST /api/upload carrying the file as the request body; its response reports ready_for_job_start, then call snapwonders_convert_job_start. Direct upload accepts files up to max_upload_bytes (returned in this response, currently 95 MB); anything larger must use the resumable TUS endpoint at /api/tus. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {},
"required": []
}🟢snapwonders_convert_session_files(upload_uid)
Lists all files uploaded to a convert session. Verify all files show status "completed" before calling snapwonders_convert_job_start. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by snapwonders_convert_session_create"
}
},
"required": [
"upload_uid"
]
}⚪snapwonders_convert_job_start(upload_uid, image_format, video_format, image_quality, video_crf, ...)
Submits conversion options and queues a media conversion job. Images and videos in the session are converted to the specified format. The call is idempotent. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by snapwonders_convert_session_create"
},
"image_format": {
"type": "string",
"enum": [
"jpeg",
"png",
"webp",
"avif",
"heic",
"jxl"
],
"description": "Output format for image files. Default: jpeg."
},
"video_format": {
"type": "string",
"enum": [
"mp4h264",
"mp4h265",
"webm",
"mkv",
"mov"
],
"description": "Output format for video files. Default: mp4h264."
},
"image_quality": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "JPEG/WebP output quality 1–100. Default: 85."
},
"video_crf": {
"type": "integer",
"minimum": 0,
"maximum": 51,
"description": "Video CRF value 0–51 (lower = better quality). Default: 23."
},
"video_max_dimension": {
"type": "integer",
"enum": [
480,
720,
1080
],
"description": "Cap video resolution to this height in pixels. Omit for original resolution."
},
"strip_metadata": {
"type": "boolean",
"description": "Strip EXIF/GPS/encoder metadata from output files. Default: false."
},
"image_resize_width": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"description": "Resize images to fit within this bounding-box width in pixels. Longest-edge fit, aspect preserved, no upscaling."
},
"image_resize_height": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"description": "Resize images to fit within this bounding-box height in pixels. Longest-edge fit, aspect preserved, no upscaling."
},
"pdf_dpi": {
"type": "integer",
"minimum": 72,
"maximum": 300,
"description": "PDF only. Render resolution in DPI. Default: 150."
},
"pdf_page_from": {
"type": "integer",
"minimum": 1,
"description": "PDF only. First page to render, 1-based. Default: 1."
},
"pdf_page_to": {
"type": "integer",
"minimum": 0,
"description": "PDF only. Last page to render, 1-based. 0 means all pages. Default: 0."
},
"expiry": {
"type": "string",
"enum": [
"1h",
"12h",
"1d",
"2d",
"1w",
"1m"
],
"description": "How long the converted files remain accessible after the job completes. Default: 1d. Free-tier keys are silently clamped to upload.free_max_expiry (default 1d); Pro accounts get the requested value."
}
},
"required": [
"upload_uid"
]
}⚪snapwonders_convert_job_status(upload_uid)
Returns the current status and per-item progress of a conversion job. Poll until status is "completed", "partial", or "failed". Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by snapwonders_convert_session_create"
}
},
"required": [
"upload_uid"
]
}🟢snapwonders_convert_job_results(upload_uid)
Returns per-item conversion results with asset_id for each output file. Use the asset_id with GET /api/convert/download/{assetId} and the same X-Api-Key to download each file. Requires X-Api-Key header.
输入模式
{
"type": "object",
"properties": {
"upload_uid": {
"type": "string",
"description": "The upload_uid returned by snapwonders_convert_session_create"
}
},
"required": [
"upload_uid"
]
}社区
证据