{
  "data": {
    "tool": {
      "category": "infrastructure",
      "endpoint": "https://mcp.shipstatic.com",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/shipstatic-mcp.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/shipstatic-mcp.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/shipstatic-mcp.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 9607,
          "counts": {
            "error": 0,
            "note": 0,
            "warn": 0
          },
          "findings": []
        },
        "checkedAt": "2026-10-04T22:23:49Z",
        "count": 15,
        "schemaTokens": 9607,
        "status": "ok",
        "tools": [
          {
            "name": "deployments_upload",
            "title": "Deploy Static Site",
            "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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "files": {
                  "description": "Files that make up the site. The site root is implied by these paths.",
                  "items": {
                    "properties": {
                      "content": {
                        "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.",
                        "type": "string"
                      },
                      "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.",
                        "enum": [
                          "utf-8",
                          "base64"
                        ],
                        "type": "string"
                      },
                      "path": {
                        "description": "Relative path within the site (e.g. \"index.html\", \"assets/app.css\"). No leading slash; no parent-folder wrapping.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "path",
                      "content"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "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. Only for a connected account: without one the key is ignored and a retry deploys again.",
                  "type": "string"
                },
                "labels": {
                  "description": "Labels for organizing deployments (e.g. [\"production\", \"v1.2\"]). Lowercase, 3-25 chars, allows . _ - separators. Up to 10.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "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"
                },
                "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"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "claim": {
                  "description": "One-time URL that claims this anonymous deployment to a free account, making it permanent. Only present on anonymous deploys; absent when the deploy was made with a connected account.",
                  "format": "uri",
                  "type": "string"
                },
                "config": {
                  "description": "True if the deployment includes a ship.json routing config.",
                  "type": "boolean"
                },
                "created": {
                  "description": "Unix timestamp (seconds) when the deployment was created.",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "deployment": {
                  "description": "Deployment hostname, e.g. \"happy-cat-abc1234.shipstatic.com\".",
                  "type": "string"
                },
                "expires": {
                  "anyOf": [
                    {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Unix timestamp (seconds) when the deployment expires; null when permanent. Anonymous deployments expire 3 days after creation unless claimed; an authenticated deployment carries one only when it requested a ttl."
                },
                "files": {
                  "description": "Number of files in the deployment.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "labels": {
                  "description": "Labels attached to the deployment; empty when none.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "password": {
                  "description": "True if the deployment is password-protected.",
                  "type": "boolean"
                },
                "screenshot": {
                  "description": "Full URL to the deployment screenshot. Rendered on the first request for it, so the URL is returned immediately and the first request takes a few seconds; every request after that is served immediately.",
                  "format": "uri",
                  "type": "string"
                },
                "size": {
                  "description": "Total deployment size in bytes.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "status": {
                  "description": "Deployment lifecycle state; \"success\" means the site is live. One of: pending, success, failed, deleting.",
                  "type": "string"
                },
                "url": {
                  "description": "Full URL to the live deployment.",
                  "format": "uri",
                  "type": "string"
                },
                "via": {
                  "description": "How the deployment was created, as shown in deployment history (today one of: web, sdk, cli, mcp, git, n8n, gpt, vsc, cld, crs, gmn, api). Null on deployments older than the tag.",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "deployment",
                "url",
                "files",
                "size",
                "status",
                "config",
                "password",
                "labels",
                "via",
                "created",
                "expires",
                "screenshot"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Deploy Static Site"
            }
          },
          {
            "name": "deployments_list",
            "title": "List Deployments",
            "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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "cursor": {
                  "description": "Opaque position from the previous response's `cursor` field; omit for the first page.",
                  "type": "string"
                },
                "limit": {
                  "description": "Maximum number of items to return in one page. Omit for the server default.",
                  "maximum": 9007199254740991,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "cursor": {
                  "description": "Opaque cursor for the next page; null on the last page. The whole has-more signal.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "deployments": {
                  "description": "The deployments on this page.",
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "config": {
                        "description": "True if the deployment includes a ship.json routing config.",
                        "type": "boolean"
                      },
                      "created": {
                        "description": "Unix timestamp (seconds) when the deployment was created.",
                        "maximum": 9007199254740991,
                        "minimum": -9007199254740991,
                        "type": "integer"
                      },
                      "deployment": {
                        "description": "Deployment hostname, e.g. \"happy-cat-abc1234.shipstatic.com\".",
                        "type": "string"
                      },
                      "expires": {
                        "anyOf": [
                          {
                            "maximum": 9007199254740991,
                            "minimum": -9007199254740991,
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Unix timestamp (seconds) when the deployment expires; null when permanent. Anonymous deployments expire 3 days after creation unless claimed; an authenticated deployment carries one only when it requested a ttl."
                      },
                      "files": {
                        "description": "Number of files in the deployment.",
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "labels": {
                        "description": "Labels attached to the deployment; empty when none.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "password": {
                        "description": "True if the deployment is password-protected.",
                        "type": "boolean"
                      },
                      "screenshot": {
                        "description": "Full URL to the deployment screenshot. Rendered on the first request for it, so the URL is returned immediately and the first request takes a few seconds; every request after that is served immediately.",
                        "format": "uri",
                        "type": "string"
                      },
                      "size": {
                        "description": "Total deployment size in bytes.",
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "status": {
                        "description": "Deployment lifecycle state; \"success\" means the site is live. One of: pending, success, failed, deleting.",
                        "type": "string"
                      },
                      "url": {
                        "description": "Full URL to the live deployment.",
                        "format": "uri",
                        "type": "string"
                      },
                      "via": {
                        "description": "How the deployment was created, as shown in deployment history (today one of: web, sdk, cli, mcp, git, n8n, gpt, vsc, cld, crs, gmn, api). Null on deployments older than the tag.",
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "deployment",
                      "url",
                      "files",
                      "size",
                      "status",
                      "config",
                      "password",
                      "labels",
                      "via",
                      "created",
                      "expires",
                      "screenshot"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "cursor",
                "deployments"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "List Deployments"
            }
          },
          {
            "name": "deployments_get",
            "title": "Get Deployment",
            "description": "Get deployment details including URL, status, file count, size, labels, and password protection state.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "deployment": {
                  "description": "Deployment hostname (e.g. \"happy-cat-abc1234.shipstatic.com\"). Returned by deployments_upload or deployments_list.",
                  "type": "string"
                }
              },
              "required": [
                "deployment"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "config": {
                  "description": "True if the deployment includes a ship.json routing config.",
                  "type": "boolean"
                },
                "created": {
                  "description": "Unix timestamp (seconds) when the deployment was created.",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "deployment": {
                  "description": "Deployment hostname, e.g. \"happy-cat-abc1234.shipstatic.com\".",
                  "type": "string"
                },
                "expires": {
                  "anyOf": [
                    {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Unix timestamp (seconds) when the deployment expires; null when permanent. Anonymous deployments expire 3 days after creation unless claimed; an authenticated deployment carries one only when it requested a ttl."
                },
                "files": {
                  "description": "Number of files in the deployment.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "labels": {
                  "description": "Labels attached to the deployment; empty when none.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "password": {
                  "description": "True if the deployment is password-protected.",
                  "type": "boolean"
                },
                "screenshot": {
                  "description": "Full URL to the deployment screenshot. Rendered on the first request for it, so the URL is returned immediately and the first request takes a few seconds; every request after that is served immediately.",
                  "format": "uri",
                  "type": "string"
                },
                "size": {
                  "description": "Total deployment size in bytes.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "status": {
                  "description": "Deployment lifecycle state; \"success\" means the site is live. One of: pending, success, failed, deleting.",
                  "type": "string"
                },
                "url": {
                  "description": "Full URL to the live deployment.",
                  "format": "uri",
                  "type": "string"
                },
                "via": {
                  "description": "How the deployment was created, as shown in deployment history (today one of: web, sdk, cli, mcp, git, n8n, gpt, vsc, cld, crs, gmn, api). Null on deployments older than the tag.",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "deployment",
                "url",
                "files",
                "size",
                "status",
                "config",
                "password",
                "labels",
                "via",
                "created",
                "expires",
                "screenshot"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Get Deployment"
            }
          },
          {
            "name": "deployments_set",
            "title": "Update Deployment Labels",
            "description": "Update deployment labels. Replaces all existing labels.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "deployment": {
                  "description": "Deployment hostname (e.g. \"happy-cat-abc1234.shipstatic.com\"). Use deployments_list to find deployments.",
                  "type": "string"
                },
                "labels": {
                  "description": "Labels to set. Replaces all existing labels. Pass empty array to clear.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "deployment",
                "labels"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "config": {
                  "description": "True if the deployment includes a ship.json routing config.",
                  "type": "boolean"
                },
                "created": {
                  "description": "Unix timestamp (seconds) when the deployment was created.",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "deployment": {
                  "description": "Deployment hostname, e.g. \"happy-cat-abc1234.shipstatic.com\".",
                  "type": "string"
                },
                "expires": {
                  "anyOf": [
                    {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Unix timestamp (seconds) when the deployment expires; null when permanent. Anonymous deployments expire 3 days after creation unless claimed; an authenticated deployment carries one only when it requested a ttl."
                },
                "files": {
                  "description": "Number of files in the deployment.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "labels": {
                  "description": "Labels attached to the deployment; empty when none.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "password": {
                  "description": "True if the deployment is password-protected.",
                  "type": "boolean"
                },
                "screenshot": {
                  "description": "Full URL to the deployment screenshot. Rendered on the first request for it, so the URL is returned immediately and the first request takes a few seconds; every request after that is served immediately.",
                  "format": "uri",
                  "type": "string"
                },
                "size": {
                  "description": "Total deployment size in bytes.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "status": {
                  "description": "Deployment lifecycle state; \"success\" means the site is live. One of: pending, success, failed, deleting.",
                  "type": "string"
                },
                "url": {
                  "description": "Full URL to the live deployment.",
                  "format": "uri",
                  "type": "string"
                },
                "via": {
                  "description": "How the deployment was created, as shown in deployment history (today one of: web, sdk, cli, mcp, git, n8n, gpt, vsc, cld, crs, gmn, api). Null on deployments older than the tag.",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "deployment",
                "url",
                "files",
                "size",
                "status",
                "config",
                "password",
                "labels",
                "via",
                "created",
                "expires",
                "screenshot"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": true,
              "openWorldHint": false,
              "readOnlyHint": false,
              "title": "Update Deployment Labels"
            }
          },
          {
            "name": "deployments_delete",
            "title": "Delete Deployment",
            "description": "Permanently deletes a deployment and its files.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "deployment": {
                  "description": "Deployment hostname to delete (e.g. \"happy-cat-abc1234.shipstatic.com\")",
                  "type": "string"
                }
              },
              "required": [
                "deployment"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "deployment": {
                  "description": "The deployment hostname that was marked for removal.",
                  "type": "string"
                },
                "status": {
                  "description": "The state the deployment is in while background cleanup runs. One of: pending, success, failed, deleting.",
                  "type": "string"
                }
              },
              "required": [
                "deployment",
                "status"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": true,
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Delete Deployment"
            }
          },
          {
            "name": "domains_set",
            "title": "Connect Custom Domain",
            "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.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "deployment": {
                  "description": "Deployment to serve on this domain (e.g. \"happy-cat-abc1234.shipstatic.com\"). Omit to reserve the domain without linking.",
                  "type": "string"
                },
                "domain": {
                  "description": "Domain name (e.g. \"www.example.com\" or \"blog.example.com\")",
                  "type": "string"
                },
                "labels": {
                  "description": "Labels for organizing domains (e.g. [\"production\"]).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "created": {
                  "description": "Unix timestamp (seconds) when the domain was created.",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "deployment": {
                  "description": "The deployment hostname this domain points to; null when reserved but not yet linked.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "domain": {
                  "description": "The domain name, e.g. \"www.example.com\".",
                  "type": "string"
                },
                "isCreate": {
                  "description": "True when this call created the domain; false when it updated an existing one.",
                  "type": "boolean"
                },
                "labels": {
                  "description": "Labels attached to the domain; empty when none.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "linked": {
                  "anyOf": [
                    {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Unix timestamp (seconds) when a deployment was last linked; null if never linked."
                },
                "links": {
                  "description": "How many times a deployment has been linked to this domain.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "paused": {
                  "anyOf": [
                    {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Unix timestamp (seconds) when plan enforcement paused serving; null while the plan has room for it."
                },
                "status": {
                  "description": "What this domain needs from its owner, derived: \"live\" serves the linked deployment and needs nothing; \"unlinked\" is verified with nothing published there, so link a deployment; \"unverified\" needs its DNS records configured; \"paused\" means the plan no longer has room for it. Read this word rather than recomputing it. One of: live, unlinked, unverified, paused.",
                  "type": "string"
                },
                "url": {
                  "description": "Full URL to the domain.",
                  "format": "uri",
                  "type": "string"
                },
                "verification": {
                  "description": "How far DNS verification has got: \"pending\" is the site's CNAME not pointing here, \"partial\" is a www domain's CNAME pointing here without its apex A record (the redirect), \"verified\" is every required record. The diagnostic under \"unverified\"; platform domains are born verified. One of: pending, partial, verified.",
                  "type": "string"
                },
                "verifications": {
                  "description": "How many DNS verification attempts this domain has had.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "verified": {
                  "anyOf": [
                    {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "When DNS last became verified; null if it never has, and never cleared, so a domain whose records moved away keeps it. Read `verification` for whether DNS is right now."
                }
              },
              "required": [
                "domain",
                "url",
                "status",
                "deployment",
                "linked",
                "links",
                "verification",
                "verified",
                "verifications",
                "paused",
                "labels",
                "created",
                "isCreate"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": true,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Connect Custom Domain"
            }
          },
          {
            "name": "domains_list",
            "title": "List Domains",
            "description": "List all domains with their URLs, linked deployment, and `status`. The response's `cursor` is null on the last page; pass it back as `cursor` to fetch the next.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "cursor": {
                  "description": "Opaque position from the previous response's `cursor` field; omit for the first page.",
                  "type": "string"
                },
                "limit": {
                  "description": "Maximum number of items to return in one page. Omit for the server default.",
                  "maximum": 9007199254740991,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "cursor": {
                  "description": "Opaque cursor for the next page; null on the last page. The whole has-more signal.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "domains": {
                  "description": "The domains on this page.",
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "created": {
                        "description": "Unix timestamp (seconds) when the domain was created.",
                        "maximum": 9007199254740991,
                        "minimum": -9007199254740991,
                        "type": "integer"
                      },
                      "deployment": {
                        "description": "The deployment hostname this domain points to; null when reserved but not yet linked.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "domain": {
                        "description": "The domain name, e.g. \"www.example.com\".",
                        "type": "string"
                      },
                      "labels": {
                        "description": "Labels attached to the domain; empty when none.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "linked": {
                        "anyOf": [
                          {
                            "maximum": 9007199254740991,
                            "minimum": -9007199254740991,
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Unix timestamp (seconds) when a deployment was last linked; null if never linked."
                      },
                      "links": {
                        "description": "How many times a deployment has been linked to this domain.",
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "paused": {
                        "anyOf": [
                          {
                            "maximum": 9007199254740991,
                            "minimum": -9007199254740991,
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Unix timestamp (seconds) when plan enforcement paused serving; null while the plan has room for it."
                      },
                      "status": {
                        "description": "What this domain needs from its owner, derived: \"live\" serves the linked deployment and needs nothing; \"unlinked\" is verified with nothing published there, so link a deployment; \"unverified\" needs its DNS records configured; \"paused\" means the plan no longer has room for it. Read this word rather than recomputing it. One of: live, unlinked, unverified, paused.",
                        "type": "string"
                      },
                      "url": {
                        "description": "Full URL to the domain.",
                        "format": "uri",
                        "type": "string"
                      },
                      "verification": {
                        "description": "How far DNS verification has got: \"pending\" is the site's CNAME not pointing here, \"partial\" is a www domain's CNAME pointing here without its apex A record (the redirect), \"verified\" is every required record. The diagnostic under \"unverified\"; platform domains are born verified. One of: pending, partial, verified.",
                        "type": "string"
                      },
                      "verifications": {
                        "description": "How many DNS verification attempts this domain has had.",
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "verified": {
                        "anyOf": [
                          {
                            "maximum": 9007199254740991,
                            "minimum": -9007199254740991,
                            "type": "integer"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "When DNS last became verified; null if it never has, and never cleared, so a domain whose records moved away keeps it. Read `verification` for whether DNS is right now."
                      }
                    },
                    "required": [
                      "domain",
                      "url",
                      "status",
                      "deployment",
                      "linked",
                      "links",
                      "verification",
                      "verified",
                      "verifications",
                      "paused",
                      "labels",
                      "created"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "cursor",
                "domains"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "List Domains"
            }
          },
          {
            "name": "domains_get",
            "title": "Get Domain",
            "description": "Get domain details including URL, linked deployment, labels, and `status`: the one word saying what the domain needs from its owner (`unverified`, `unlinked`, `live`, `paused`).",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "domain": {
                  "description": "Domain name (e.g. \"www.example.com\"). Use domains_list to find names.",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "created": {
                  "description": "Unix timestamp (seconds) when the domain was created.",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                "deployment": {
                  "description": "The deployment hostname this domain points to; null when reserved but not yet linked.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "domain": {
                  "description": "The domain name, e.g. \"www.example.com\".",
                  "type": "string"
                },
                "labels": {
                  "description": "Labels attached to the domain; empty when none.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "linked": {
                  "anyOf": [
                    {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Unix timestamp (seconds) when a deployment was last linked; null if never linked."
                },
                "links": {
                  "description": "How many times a deployment has been linked to this domain.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "paused": {
                  "anyOf": [
                    {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Unix timestamp (seconds) when plan enforcement paused serving; null while the plan has room for it."
                },
                "status": {
                  "description": "What this domain needs from its owner, derived: \"live\" serves the linked deployment and needs nothing; \"unlinked\" is verified with nothing published there, so link a deployment; \"unverified\" needs its DNS records configured; \"paused\" means the plan no longer has room for it. Read this word rather than recomputing it. One of: live, unlinked, unverified, paused.",
                  "type": "string"
                },
                "url": {
                  "description": "Full URL to the domain.",
                  "format": "uri",
                  "type": "string"
                },
                "verification": {
                  "description": "How far DNS verification has got: \"pending\" is the site's CNAME not pointing here, \"partial\" is a www domain's CNAME pointing here without its apex A record (the redirect), \"verified\" is every required record. The diagnostic under \"unverified\"; platform domains are born verified. One of: pending, partial, verified.",
                  "type": "string"
                },
                "verifications": {
                  "description": "How many DNS verification attempts this domain has had.",
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "verified": {
                  "anyOf": [
                    {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "When DNS last became verified; null if it never has, and never cleared, so a domain whose records moved away keeps it. Read `verification` for whether DNS is right now."
                }
              },
              "required": [
                "domain",
                "url",
                "status",
                "deployment",
                "linked",
                "links",
                "verification",
                "verified",
                "verifications",
                "paused",
                "labels",
                "created"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Get Domain"
            }
          },
          {
            "name": "domains_records",
            "title": "Get DNS Records",
            "description": "Returns the DNS records to configure at the domain's DNS provider. Call after domains_set. Custom domains only: a platform subdomain has no records to configure.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "domain": {
                  "description": "Domain name. Must be a domain previously created with domains_set.",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "apex": {
                  "description": "The apex (registered) domain where DNS records are managed.",
                  "type": "string"
                },
                "domain": {
                  "description": "The domain the records are for.",
                  "type": "string"
                },
                "records": {
                  "description": "The records to configure at the DNS provider, in the order to add them.",
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "description": "The DNS name to configure.",
                        "type": "string"
                      },
                      "type": {
                        "description": "Record type: A for the apex redirect, CNAME for the hosted subdomain.",
                        "enum": [
                          "A",
                          "CNAME"
                        ],
                        "type": "string"
                      },
                      "value": {
                        "description": "The value to set: an IP for A, a hostname for CNAME.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "name",
                      "value"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "domain",
                "apex",
                "records"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Get DNS Records"
            }
          },
          {
            "name": "domains_dns",
            "title": "Get DNS Provider",
            "description": "Returns the DNS provider recorded for the domain, if known (e.g. Cloudflare, Namecheap): where its DNS records are configured. Custom domains only, and only while the domain is unverified; once its DNS is right there is nothing left to locate.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "domain": {
                  "description": "Domain name (e.g. \"www.example.com\"). Must be a domain previously created with domains_set.",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "dns": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "provider": {
                          "additionalProperties": false,
                          "description": "The provider serving this domain's DNS; absent when unidentified.",
                          "properties": {
                            "name": {
                              "description": "Provider name, e.g. \"Cloudflare\"; null if unknown.",
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "url": {
                              "anyOf": [
                                {
                                  "format": "uri",
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "The provider's DNS dashboard, where the records get added; null or absent when unknown."
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "What the platform recorded about the domain's DNS provider when the domain was created; null if nothing was recorded."
                },
                "domain": {
                  "description": "The domain name.",
                  "type": "string"
                }
              },
              "required": [
                "domain",
                "dns"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Get DNS Provider"
            }
          },
          {
            "name": "domains_share",
            "title": "Share DNS Setup",
            "description": "Returns a shareable DNS setup URL that needs no API key, for whoever manages the domain's DNS. Custom domains only, and only while the domain is unverified; a verified domain has no setup left to share.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "domain": {
                  "description": "Domain name to generate a share link for. Must be a domain previously created with domains_set.",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "domain": {
                  "description": "The domain the setup link is for.",
                  "type": "string"
                },
                "url": {
                  "description": "The shareable DNS setup URL; whoever opens it sees the records to configure, with no API key.",
                  "format": "uri",
                  "type": "string"
                }
              },
              "required": [
                "domain",
                "url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Share DNS Setup"
            }
          },
          {
            "name": "domains_validate",
            "title": "Check Domain Availability",
            "description": "Check if a domain name is valid and available before creating it. Returns the normalized form and availability.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "domain": {
                  "description": "Domain name to check (e.g. \"www.example.com\"). Call before domains_set to check availability.",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "available": {
                  "description": "Whether nobody has registered the name yet; null when invalid. Creating it would be new; re-pointing your own domain is a write, not a create.",
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "normalized": {
                  "description": "The normalized domain name; null when invalid.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "reason": {
                  "description": "Why the name is unusable, for display; null when it is usable.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "valid": {
                  "description": "Whether the domain's shape is usable.",
                  "type": "boolean"
                }
              },
              "required": [
                "valid",
                "normalized",
                "available",
                "reason"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Check Domain Availability"
            }
          },
          {
            "name": "domains_verify",
            "title": "Verify Domain DNS",
            "description": "Trigger DNS verification for a custom domain. Call after the user has configured DNS records from domains_records. Custom domains only, and refused once the domain is verified: read domains_get instead. Verification is asynchronous: read the domain again with domains_get to learn the verdict, since its `status` has not moved yet when this returns. A verified domain serves nothing until a deployment is linked with domains_set.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "domain": {
                  "description": "Domain name to verify DNS for. Must be a domain previously created with domains_set.",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "domain": {
                  "description": "The domain whose DNS verification was queued, normalized. The check runs asynchronously; the domain's `verification` and `status` update once DNS propagates, so read the domain again rather than trusting this acknowledgement for a verdict.",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Verify Domain DNS"
            }
          },
          {
            "name": "domains_delete",
            "title": "Delete Domain",
            "description": "Permanently deletes a domain.",
            "inputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "properties": {
                "domain": {
                  "description": "Domain name to delete (e.g. \"www.example.com\")",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "domain": {
                  "description": "The domain name that was removed, normalized.",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": true,
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Delete Domain"
            }
          },
          {
            "name": "whoami",
            "title": "Show Account",
            "description": "Returns your email and name, and the account's plan, usage and caps.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            },
            "outputSchema": {
              "$schema": "http://json-schema.org/draft-07/schema#",
              "additionalProperties": false,
              "properties": {
                "caps": {
                  "additionalProperties": false,
                  "description": "What the account is allowed to hold: the same keys as usage, so the pair divides.",
                  "properties": {
                    "customDomains": {
                      "description": "Hostnames the customer owns, paused ones included.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "deployments": {
                      "description": "Deployments, every row whatever its status.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "members": {
                      "description": "Members of the account, the owner included; a pending invitation is not one.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "platformDomains": {
                      "description": "Names chosen under the platform's own suffix, e.g. \"my-app.shipstatic.com\".",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "deployments",
                    "platformDomains",
                    "customDomains",
                    "members"
                  ],
                  "type": "object"
                },
                "email": {
                  "description": "The account email address.",
                  "type": "string"
                },
                "name": {
                  "description": "Display name; null if not set.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "plan": {
                  "description": "The plan the account is on. One of: free, pro, team, scale, sponsored.",
                  "type": "string"
                },
                "usage": {
                  "additionalProperties": false,
                  "description": "What the account currently holds.",
                  "properties": {
                    "customDomains": {
                      "description": "Hostnames the customer owns, paused ones included.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "deployments": {
                      "description": "Deployments, every row whatever its status.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "members": {
                      "description": "Members of the account, the owner included; a pending invitation is not one.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "platformDomains": {
                      "description": "Names chosen under the platform's own suffix, e.g. \"my-app.shipstatic.com\".",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "deployments",
                    "platformDomains",
                    "customDomains",
                    "members"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "email",
                "name",
                "plan",
                "usage",
                "caps"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Show Account"
            }
          }
        ]
      },
      "name": "ShipStatic",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "@shipstatic/mcp",
          "version": "2.3.3",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/shipstatic-mcp.json",
      "popularity": {
        "githubStars": 6,
        "npmWeekly": 2242
      },
      "registryName": "com.shipstatic/mcp",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://mcp.shipstatic.com"
        }
      ],
      "repository": "https://github.com/shipstatic/mcp",
      "reviewed": false,
      "slug": "shipstatic-mcp",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.shipstatic/mcp",
      "summary": "Deploy static websites from AI agents. Free at mcp.shipstatic.com — no install, no signup.",
      "updatedAt": "2026-09-29T23:28:55Z",
      "url": "https://www.anchorterminal.com/tools/shipstatic-mcp",
      "vendor": "shipstatic.com",
      "vendorUrl": "https://shipstatic.com",
      "version": "2.3.3",
      "websiteUrl": "https://shipstatic.com",
      "where": "both",
      "why": [
        "vendor",
        "popular"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/shipstatic-mcp",
    "json": "https://www.anchorterminal.com/tools/shipstatic-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/shipstatic-mcp.md",
    "slim": "https://www.anchorterminal.com/tools/shipstatic-mcp.min.md"
  },
  "markdown": "# ShipStatic\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by shipstatic.com (https://shipstatic.com)\n- Category: Cloud \u0026 infrastructure (https://www.anchorterminal.com/categories/infrastructure.md)\n- Listed because: It's published in the registry under shipstatic.com, a namespace the registry only gives to whoever proves they control that domain. It's in real use: 2,242 npm downloads a week, 6 GitHub stars.\n- What the official MCP registry says: Deploy static websites from AI agents. Free at mcp.shipstatic.com — no install, no signup.\n\n## Facts\n\n- MCP registry: `com.shipstatic/mcp` 2.3.3\n- Endpoint: https://mcp.shipstatic.com (streamable HTTP)\n- Package: npm `@shipstatic/mcp` (stdio)\n- Source: https://github.com/shipstatic/mcp\n- Website: https://shipstatic.com\n- npm downloads a week: 2,242\n- GitHub stars: 6\n- Registry entry updated: 2026-09-29\n\n## Tools\n\n- Tools it lists (15, about 9,607 tokens of context, `tools/list` without credentials over MCP 2025-11-25, checked 2026-10-04 22:23 UTC):\n  - `deployments_upload` (writes): Deploy a static site to a live URL: free, no account or API key required. **File content is plain text by default.** Pass HTML/CSS/JS/JSON/SVG/etc. directly in…\n  - `deployments_list` (read-only): 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`…\n  - `deployments_get` (read-only): Get deployment details including URL, status, file count, size, labels, and password protection state.\n  - `deployments_set` (writes): Update deployment labels. Replaces all existing labels.\n  - `deployments_delete` (writes): Permanently deletes a deployment and its files.\n  - `domains_set` (writes): 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…\n  - `domains_list` (read-only): List all domains with their URLs, linked deployment, and `status`. The response's `cursor` is null on the last page; pass it back as `cursor` to fetch the next.\n  - `domains_get` (read-only): Get domain details including URL, linked deployment, labels, and `status`: the one word saying what the domain needs from its owner (`unverified`, `unlinked`,…\n  - `domains_records` (read-only): Returns the DNS records to configure at the domain's DNS provider. Call after domains_set. Custom domains only: a platform subdomain has no records to…\n  - `domains_dns` (read-only): Returns the DNS provider recorded for the domain, if known (e.g. Cloudflare, Namecheap): where its DNS records are configured. Custom domains only, and only…\n  - `domains_share` (read-only): Returns a shareable DNS setup URL that needs no API key, for whoever manages the domain's DNS. Custom domains only, and only while the domain is unverified; a…\n  - `domains_validate` (read-only): Check if a domain name is valid and available before creating it. Returns the normalized form and availability.\n  - `domains_verify` (writes): Trigger DNS verification for a custom domain. Call after the user has configured DNS records from domains_records. Custom domains only, and refused once the…\n  - `domains_delete` (writes): Permanently deletes a domain.\n  - `whoami` (read-only): Returns your email and name, and the account's plan, usage and caps.\n- How its tools read to an agent (0 errors, 0 warnings, 0 notes, about 9,607 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/shipstatic-mcp.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "ShipStatic",
        "url": ""
      }
    ],
    "description": "ShipStatic, an MCP server by shipstatic.com, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Deploy static websites from AI agents. Free at mcp.shipstatic.com — no install, no signup.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "ShipStatic",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/shipstatic-mcp",
    "published": "",
    "section": "indexed",
    "title": "ShipStatic: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/tools/shipstatic-mcp"
  },
  "tokens": {
    "markdown": 1150,
    "slim": 1080
  },
  "version": 1
}
