{"name":"com.shipstatic/mcp","slug":"shipstatic-mcp","title":"ShipStatic","description":"Deploy static websites from AI agents. Free at mcp.shipstatic.com — no install, no signup.","url":"https://mcp.market/server/shipstatic-mcp","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"devtools","tags":["devtools"],"presence":{"score":48,"stars":7,"forks":3,"downloads_week":1771,"last_push_at":"2026-09-18T16:45:51.000Z","license":"MIT"},"uptime":{"percent":100,"checks":1,"ok":1,"last_checked_at":"2026-09-19T16:10:52.059Z","last_ok_at":"2026-09-19T16:10:52.059Z","latency_ms":158},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/shipstatic/mcp","website":"https://shipstatic.com","version":"1.12.1","remotes":[{"type":"streamable-http","url":"https://mcp.shipstatic.com"}],"packages":[{"registryType":"npm","identifier":"@shipstatic/mcp","version":"1.12.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Your API key — one credential, two names: the console mints it as an API key (ship-...), and this setting carries it as the token. Free at https://my.shipstatic.com/api-key. Optional: without it, deploys behave like the hosted endpoint (public, claim URL, 3-day expiry). With it, deployments are permanent, the full toolset (custom domains, listing, account-tied ops) unlocks, and rate limits are your own instead of the shared anonymous pools.","isSecret":true,"name":"SHIP_TOKEN"}]}],"tools":[{"name":"deployments_delete","description":"Permanently deletes a deployment and its files.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"deployment":{"type":"string","description":"Deployment hostname to delete (e.g. \"happy-cat-abc1234.shipstatic.com\")"}},"required":["deployment"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"deployments_get","description":"Get deployment details including URL, status, file count, size, labels, and password protection state.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"deployment":{"type":"string","description":"Deployment hostname (e.g. \"happy-cat-abc1234.shipstatic.com\"). Returned by deployments_upload or deployments_list."}},"required":["deployment"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"deployments_list","description":"List all deployments with their URLs, status, labels, and password protection state. The response's `cursor` is null on the last page; pass it back as `cursor` to fetch the next.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"description":"Maximum number of items to return in one page. Omit for the server default.","type":"integer","minimum":1,"maximum":9007199254740991},"cursor":{"description":"Opaque position from the previous response's `cursor` field; omit for the first page.","type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"deployments_set","description":"Update deployment labels. Replaces all existing labels.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"deployment":{"type":"string","description":"Deployment hostname (e.g. \"happy-cat-abc1234.shipstatic.com\"). Use deployments_list to find deployments."},"labels":{"type":"array","items":{"type":"string"},"description":"Labels to set. Replaces all existing labels. Pass empty array to clear."}},"required":["deployment","labels"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"deployments_upload","description":"Deploy a static site to a live URL: free, no account or API key required.\n\n**File content is plain text by default.** Pass HTML/CSS/JS/JSON/SVG/etc. directly in each file's `content` as a regular string. Only set `encoding: \"base64\"` per-file for binary content (images, fonts) — do not base64-encode text.\n\nReturns the live URL. Without a connected account, the response also includes a one-time claim URL, and the site expires in 3 days unless claimed. Pass `password` to make the site private.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Relative path within the site (e.g. \"index.html\", \"assets/app.css\"). No leading slash; no parent-folder wrapping."},"content":{"type":"string","description":"File content as a plain text string. For HTML, CSS, JS, JSON, SVG, plain text — pass directly with no encoding step. For binary files (images, fonts) ONLY, set this entry's `encoding: \"base64\"` and pass base64-encoded bytes."},"encoding":{"description":"Defaults to `\"utf-8\"` (raw text). Set to `\"base64\"` ONLY for binary files. Never base64-encode text content — pass it as a plain string.","type":"string","enum":["utf-8","base64"]}},"required":["path","content"]},"description":"Files that make up the site. The site root is implied by these paths."},"labels":{"description":"Labels for organizing deployments (e.g. [\"production\", \"v1.2\"]). Lowercase, 3-25 chars, allows . _ - separators. Up to 10.","type":"array","items":{"type":"string"}},"password":{"description":"Optional password to gate the deployment behind an unlock prompt (6–128 characters; whitespace significant). Visitors must enter this password before viewing the site, including on any custom domains pointing at it.","type":"string"},"idempotencyKey":{"description":"Makes this deploy replayable instead of repeatable. A deploy is not naturally idempotent: if a call times out you cannot tell \"it never landed\" from \"it landed and the response was lost\", and retrying creates a second deployment. Send the same key on the retry and the original deployment is replayed instead (within 24 hours). Key the ATTEMPT — a run id, a commit sha, a uuid minted before the first try — never one minted fresh on each retry, which would defeat the point.","type":"string"},"ttl":{"description":"Seconds until this deployment expires and the platform reclaims it; omit for one that never does. Only for authenticated deploys — an anonymous deployment already expires on the platform's schedule, and a requested ttl on one is refused. A deployment carrying a ttl cannot be linked to a custom domain: deploy without one if the site needs a domain.","type":"number"}},"required":["files"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"domains_delete","description":"Permanently deletes a domain.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name to delete (e.g. \"www.example.com\")"}},"required":["domain"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"domains_dns","description":"Returns the DNS provider recorded for the domain, if known (e.g. Cloudflare, Namecheap): where its DNS records are configured.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name (e.g. \"www.example.com\"). Must be a domain previously created with domains_set."}},"required":["domain"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"domains_get","description":"Get domain details including URL, linked deployment, verification status, and labels.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name (e.g. \"www.example.com\"). Use domains_list to find names."}},"required":["domain"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"domains_list","description":"List all domains with their URLs, linked deployment, and verification status. The response's `cursor` is null on the last page; pass it back as `cursor` to fetch the next.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"description":"Maximum number of items to return in one page. Omit for the server default.","type":"integer","minimum":1,"maximum":9007199254740991},"cursor":{"description":"Opaque position from the previous response's `cursor` field; omit for the first page.","type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"domains_records","description":"Returns the DNS records to configure at the domain's DNS provider. Call after domains_set.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name. Must be a domain previously created with domains_set."}},"required":["domain"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"domains_set","description":"Create or update a custom domain. Can reserve a name (omit deployment), link it to a deployment, switch deployments, or update labels. domains_records then returns the DNS records to configure.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name (e.g. \"www.example.com\" or \"blog.example.com\")"},"deployment":{"description":"Deployment to serve on this domain (e.g. \"happy-cat-abc1234.shipstatic.com\"). Omit to reserve the domain without linking.","type":"string"},"labels":{"description":"Labels for organizing domains (e.g. [\"production\"]).","type":"array","items":{"type":"string"}}},"required":["domain"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"domains_share","description":"Returns a shareable DNS setup URL that needs no API key, for whoever manages the domain's DNS.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name to generate a share link for. Must be a domain previously created with domains_set."}},"required":["domain"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"domains_validate","description":"Check if a domain name is valid and available before creating it. Returns the normalized form and availability.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name to check (e.g. \"www.example.com\"). Call before domains_set to check availability."}},"required":["domain"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"domains_verify","description":"Trigger DNS verification for a custom domain. Call after the user has configured DNS records from domains_records. Verification is asynchronous — the domain status updates once DNS propagates.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name to verify DNS for. Must be a domain previously created with domains_set."}},"required":["domain"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"whoami","description":"Returns the account's email, name, plan, current usage and plan caps.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-19T20:05:52.327Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:05:52.340Z","components":{"code":{"score":25,"max":25,"notes":["13 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 385ms"]},"poisoning":{"score":15,"max":15,"notes":["15 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 5 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":10,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://mcp.shipstatic.com","reachable":true,"authRequired":false,"latencyMs":385,"serverInfo":{"name":"shipstatic","version":"1.12.2"}}],"packages":[{"registryType":"npm","identifier":"@shipstatic/mcp","version":"1.12.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-09-13T07:19:50.526Z","repositoryUrl":"git+https://github.com/shipstatic/mcp.git","weeklyDownloads":1771}],"repo":{"found":true,"owner":"shipstatic","repo":"mcp","archived":false,"pushedAt":"2026-09-18T16:45:51Z","stars":7,"forks":3,"openIssues":2,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/220701908?v=4","ownerCreatedAt":"2025-07-14T09:24:03Z","license":"MIT"},"icon":{"url":"https://raw.githubusercontent.com/shipstatic/mcp/main/icon.svg","source":"registry"},"presence":{"stars":7,"forks":3,"downloadsWeek":1771,"license":"MIT","lastPushAt":"2026-09-18T16:45:51.000Z","score":48}}}},"grade_history":[],"reviews":[]}