{
  "markdown": "# SavePinner MCP\n\nAn MCP server for parsing, validating, classifying, and normalizing Pinterest URLs. It supports local stdio and public Streamable HTTP. The tools make no outbound network requests and do not download media.\n\n## Tools\n\n| Tool | Purpose |\n| --- | --- |\n| `parse_pinterest_url` | Return the URL kind, canonical URL, host, and type-specific identifiers. |\n| `normalize_pinterest_url` | Convert a supported URL to canonical form and remove tracking parameters. |\n| `is_pinterest_url` | Check whether a value is a supported Pinterest URL. |\n\nSupported URL kinds include Pin, `pin.it`, profile, board, and Ideas URLs across Pinterest country domains.\n\n## Run\n\nNode.js 18 or newer is required.\n\n```bash\nnpx -y savepinner-mcp\n```\n\n## Client configuration\n\nAdd the server to an MCP client that supports local `stdio` servers:\n\n```json\n{\n  \"mcpServers\": {\n    \"savepinner\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"savepinner-mcp\"]\n    }\n  }\n}\n```\n\n## Remote MCP\n\nConnect any Streamable HTTP client to the public endpoint:\n\n```text\nhttps://savepinner-pinterest-url-mcp.chenxuanshimo.workers.dev/mcp\n```\n\nThe endpoint is read-only and does not require authentication.\n\nThe public [Pinterest URL validation guide](https://savepinner-pinterest-url-mcp.chenxuanshimo.workers.dev/docs/) explains the validation and normalization boundaries used by the tools.\n\n## Docker\n\nBuild and run the server as a local stdio container:\n\n```bash\ndocker build -t savepinner-mcp .\ndocker run --rm -i savepinner-mcp\n```\n\nThe runtime image executes as the unprivileged `node` user and does not require secrets, volumes, or network access.\n\n## Example\n\nCalling `parse_pinterest_url` with:\n\n```text\nhttps://de.pinterest.com/pin/987654321/?utm_source=share\n```\n\nreturns:\n\n```json\n{\n  \"kind\": \"pin\",\n  \"originalUrl\": \"https://de.pinterest.com/pin/987654321/?utm_source=share\",\n  \"normalizedUrl\": \"https://www.pinterest.com/pin/987654321/\",\n  \"host\": \"de.pinterest.com\",\n  \"pinId\": \"987654321\"\n}\n```\n\n## Privacy and safety\n\n- URL processing is local to the running server.\n- The tools do not make outbound network requests.\n- The server does not download media.\n- Hostnames are checked against an exact Pinterest domain allow list.\n- Lookalike domains and non-HTTPS URLs are rejected.\n\nThe URL parser is provided by [`pinterest-url-normalizer`](https://www.npmjs.com/package/pinterest-url-normalizer).\n\nThis project is maintained by the team behind the [Pinterest image downloader](https://savepinner.com), a browser tool for inspecting media exposed by public Pinterest Pin URLs.\n\nPinterest is a trademark of Pinterest, Inc. This project is independent and is not affiliated with or endorsed by Pinterest.\n\n## Development\n\n```bash\nnpm install\nnpm test\nnpm run worker:check\n```\n\n## License\n\nMIT\n",
  "bytes": 2782,
  "sha": "600abba7504d29f6d2a77fc894cda9b59d712544cd0bd7c2f2cba9c76c8e39e7",
  "repo_slug": "jiankn/savepinner-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_jiankn_savepinner_89a8714f/readme"
}