Skip to main content
Glama
ssavecc

ssave-mcp-server

@ssavecc/mcp-server

ssave-mcp-server MCP server Listed on mcpservers.org

Model Context Protocol (MCP) server for Ssave.cc — extract and download TikTok / Instagram / YouTube / Douyin media (HD video without watermark, MP3 audio) directly to your local disk.

Runs locally via stdio, backed by the Ssave Open API (/open/v1). No registration required on the free tier.

Quick Start

npx @ssavecc/mcp-server

Then add it to your MCP client:

Claude Code

claude mcp add ssave -- npx @ssavecc/mcp-server

Or project-level .mcp.json:

{
  "mcpServers": {
    "ssave": { "command": "npx", "args": ["@ssavecc/mcp-server"] }
  }
}

Cursor

Settings → MCP → Add new MCP server:

{
  "mcpServers": {
    "ssave": {
      "command": "npx",
      "args": ["@ssavecc/mcp-server"]
    }
  }
}

Claude Desktop

Edit claude_desktop_config.json:

{
  "mcpServers": {
    "ssave": {
      "command": "npx",
      "args": ["@ssavecc/mcp-server"]
    }
  }
}

Related MCP server: MCP Video Extraction Plus

Tools

Tool

Description

extract_media

Extract metadata and available formats from a TikTok / Instagram / YouTube / Douyin URL. Returns an ssv_ token (expires in 5–15 min) plus per-format download URLs.

download_media

Stream the extracted media to local disk (default ~/Downloads/ssave/, override with output_dir). Returns the absolute path and size.

get_thumbnail

Save the media thumbnail to local disk (proxied — never exposes the source CDN link).

Typical flow: extract_media(url) → take the returned iddownload_media(id, type: "hd" | "watermark" | "mp3").

Environment Variables

All optional:

Variable

Default

Description

SSAVE_API_BASE_URL

https://api.ssave.cc

Override for local development (e.g. http://localhost:8000).

SSAVE_API_KEY

Reserved for paid tier (Phase 3): sent as Authorization: Bearer <key>.

SSAVE_OUTPUT_DIR

~/Downloads/ssave/

Default output directory when output_dir is not passed.

Rate Limits (free tier)

Shared with the Ssave Open API, per IP per UTC day:

Operation

Limit

extract

10 / day

download

50 / day

On 429 rate_limited the tool reports the UTC reset time.

Development

npm install
npm run dev        # run server on stdio (connect with MCP Inspector: npx @modelcontextprotocol/inspector)
npm test           # unit tests (mock fetch)
npm run build      # compile to dist/

For personal archiving of content you have access to. Respect platform Terms of Service. No bulk downloading. See ssave.cc/privacy.

License

MIT

Available Tools

3 tools
download_mediaDownload extracted media to local diskA

把 extract_media 返回的媒体流式下载到本地磁盘(默认 ~/Downloads/ssave/),返回绝对路径与大小。token 过期(5–15 分钟)时请先重新 extract_media。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesextract_media 返回的 ssv_ token
typeNo默认 hd;mp3 → .mp3,其余 → .mp4
output_dirNo覆盖默认输出目录(默认 ~/Downloads/ssave/,~ 会展开)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It discloses that the download is streamed, that it defaults to ~/Downloads/ssave/, that it returns absolute path and size, and that tokens expire after 5–15 minutes requiring re-extraction. These are meaningful behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and written in two sentences, front-loading the primary operation and immediate context such as default directory and return value. The token expiry guidance is appended without unnecessary words or structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides what an agent needs: the main purpose, required dependency on extract_media, default output directory, return shape, and token expiry handling. The remaining parameter details are fully described in the schema, leaving no critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains each parameter: id is an ssv_ token, type maps mp3 to .mp3 and other values to .mp4, and output_dir has a default with ~ expansion. The tool description reinforces the workflow but does not add meaningfully to the parameter-level semantics already present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly says it downloads media returned by extract_media to local disk, naming the specific resource and the default destination. This clearly distinguishes the tool from the siblings extract_media (which produces media) and get_thumbnail (which fetches a thumbnail), so an agent can select it correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes that the tool depends on extract_media's token output and instructs that if the token expires (5–15 minutes), extract_media should be run again first. This gives clear context about when to use download_media relative to extract_media, though it does not explicitly contrast it with get_thumbnail or list exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_mediaExtract media metadata from a linkA

从 TikTok / Instagram / YouTube / Douyin 链接提取媒体元数据与可下载格式,返回 ssv_ token(5–15 分钟过期)与各格式下载 URL。

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesTikTok / Instagram / YouTube / Douyin 视频链接
formatNo默认 video;audio 只取 mp3(YT/IG 按需二次调用)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden and it does add useful behavioral context: the ssv_ token expires in 5–15 minutes, and the format parameter's audio mode only yields MP3, requiring an additional call for YouTube/Instagram. It does not state side effects, but 'extract metadata' implicitly signals a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, dense sentence that front-loads the supported platforms, the core operation, and the key output details (token expiry and download URLs). Every clause earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 params, no nested objects) and no output schema, the description adequately explains what is returned. It does not mention how outputs connect to sibling tools like download_media, but the token and URL mentions make the workflow inferable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds meaningful nuance beyond the schema, particularly that audio mode only returns MP3 and that YouTube/Instagram may require a second call. This helps an agent understand format-specific behavior not fully captured by the enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific action ('提取媒体元数据与可下载格式') on clearly listed resources (TikTok/Instagram/YouTube/Douyin links) and names concrete outputs (ssv_ token and download URLs). This clearly differentiates it from siblings like download_media and get_thumbnail, which perform different actions on the same resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says what the tool does but gives no guidance on when to prefer it over download_media or get_thumbnail, and does not mention any exclusions or prerequisites. An agent must infer that extraction precedes download from the token mention; no explicit routing is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_thumbnailDownload media thumbnail to local diskA

把 extract_media 返回的封面图落盘(经 Ssave 代理,不暴露 IG/Douyin 源站直链)。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesextract_media 返回的 ssv_ token
output_dirNo覆盖默认输出目录(~ 会展开)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses key behaviors: uses a proxy to avoid exposing direct source links, and writes to disk (side effect). However, it does not mention idempotency, overwrite behavior, or potential side effects beyond saving.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the main action and includes only essential details. It is efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the action and side effect but does not mention the return value or error behavior. Since there is no output schema, this information may be needed for full usability, but the scope of the tool is simple enough that the description is adequate for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both parameters have descriptions). The tool description adds no extra parameter semantics beyond what's already in the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: saving the thumbnail returned by extract_media to disk. It specifies the exact action ('落盘'), the source ('extract_media 返回的封面图'), and adds context about using a proxy, which distinguishes it from sibling tools like download_media.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after extract_media, but does not explicitly state when to choose this over the sibling tools. It lacks direct guidance on alternatives or conditions for use, making it only implicitly clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.1
    • First observeddownload_media
    • First observedextract_media
    • First observedget_thumbnail

TDQS

A4.2/5.0
Disambiguation5/5

每个工具都有明确且无重叠的用途:extract_media 提取元数据,download_media 下载媒体,get_thumbnail 保存封面。即使没有详细描述,名称和描述也能清晰区分。

Naming Consistency5/5

所有工具都遵循一致的 verb_noun 模式(extract_media, download_media, get_thumbnail),风格统一,没有混合命名或歧义。

Tool Count5/5

3 个工具精确定位,覆盖提取、下载和缩略图获取,没有冗余,也没有缺失必要功能,范围恰当。

Completeness4/5

核心流程(提取→下载)和封面获取完整覆盖,但缺少如获取用户信息或批量下载等可扩展功能,属于次要缺口。

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ssavecc/ssave-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server