{
  "data": {
    "tool": {
      "category": "",
      "endpoint": "https://saascity.io/api/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/saascity.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/saascity.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/saascity.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 8472,
          "counts": {
            "error": 0,
            "note": 0,
            "warn": 0
          },
          "findings": []
        },
        "checkedAt": "2026-11-15T03:50:35Z",
        "count": 23,
        "schemaTokens": 8472,
        "status": "ok",
        "tools": [
          {
            "name": "check_launch_readiness",
            "title": "Check launch readiness",
            "description": "Audit a product homepage before launching it: HTTPS, noindex, title and meta description, og:image (fetched to confirm it loads), X card, favicon, canonical, mobile viewport, h1, JSON-LD, robots.txt, sitemap, parked or 404 pages, response time, and whether the page is empty without JavaScript. Returns a 0-100 score, a verdict and a fix for every problem. Reads the static HTML the way directory scrapers and link-preview bots do.",
            "inputSchema": {
              "properties": {
                "url": {
                  "description": "Homepage URL; the https:// prefix is optional",
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "checks": {
                  "items": {
                    "properties": {
                      "critical": {
                        "description": "Blocks launch when failing",
                        "type": "boolean"
                      },
                      "detail": {
                        "description": "Finding, and the fix when not passing",
                        "type": "string"
                      },
                      "id": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      },
                      "status": {
                        "enum": [
                          "pass",
                          "warn",
                          "fail"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "label",
                      "status",
                      "detail"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "finalUrl": {
                  "description": "After redirects",
                  "type": "string"
                },
                "httpStatus": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "responseMs": {
                  "description": "Time to response headers, from SaaSCity servers",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "saascityBadge": {
                  "description": "The SaaSCity badge is on the page",
                  "type": "boolean"
                },
                "score": {
                  "maximum": 100,
                  "minimum": 0,
                  "type": "integer"
                },
                "url": {
                  "type": "string"
                },
                "verdict": {
                  "enum": [
                    "ready",
                    "almost_ready",
                    "not_ready"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "url",
                "finalUrl",
                "httpStatus",
                "responseMs",
                "score",
                "verdict",
                "saascityBadge",
                "checks"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": true,
              "title": "Check launch readiness"
            }
          },
          {
            "name": "recommend_launch_directories",
            "title": "Recommend launch directories",
            "description": "Hand-picked launch directories for a product type, grouped by when to submit (launch day first, evergreen after). Every pick carries a human-written verdict, including the ones that are not worth paying for, plus Ahrefs DR, link type and price. Start here; use find_launch_directories to go wider across all 1,667 sites.",
            "inputSchema": {
              "properties": {
                "free_only": {
                  "default": false,
                  "description": "Only picks with a free or freemium route",
                  "type": "boolean"
                },
                "product_type": {
                  "default": "any",
                  "description": "saas = B2B/B2C software, ai = AI tool or app, devtools = sold to developers, any = general",
                  "enum": [
                    "any",
                    "saas",
                    "ai",
                    "devtools"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "attribution": {
                  "type": "string"
                },
                "dataUpdatedAt": {
                  "description": "Date link type and price were last swept (YYYY-MM-DD). DR has its own date per row.",
                  "type": "string"
                },
                "groups": {
                  "items": {
                    "properties": {
                      "advice": {
                        "type": "string"
                      },
                      "directories": {
                        "items": {
                          "properties": {
                            "badgeExchange": {
                              "description": "The free listing asks for their badge on your site",
                              "type": "boolean"
                            },
                            "category": {
                              "type": "string"
                            },
                            "domain": {
                              "type": "string"
                            },
                            "dr": {
                              "description": "Ahrefs Domain Rating; 0 means no data, not worthless",
                              "type": "integer"
                            },
                            "drCheckedAt": {
                              "description": "Day the DR was last checked (YYYY-MM-DD); null = value from the last list sweep",
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "linkType": {
                              "enum": [
                                "dofollow",
                                "nofollow",
                                "unknown"
                              ],
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "note": {
                              "description": "Hand-written verdict, present on curated picks only",
                              "type": "string"
                            },
                            "pricing": {
                              "enum": [
                                "free",
                                "freemium",
                                "paid",
                                "unknown"
                              ],
                              "type": "string"
                            },
                            "submitUrl": {
                              "description": "Where to submit or list",
                              "type": "string"
                            }
                          },
                          "required": [
                            "name",
                            "domain",
                            "submitUrl",
                            "dr",
                            "linkType",
                            "pricing",
                            "category",
                            "badgeExchange",
                            "drCheckedAt"
                          ],
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "id": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "label",
                      "advice",
                      "directories"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "productType": {
                  "type": "string"
                }
              },
              "required": [
                "productType",
                "groups",
                "dataUpdatedAt",
                "attribution"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Recommend launch directories"
            }
          },
          {
            "name": "find_launch_directories",
            "title": "Find launch directories",
            "description": "Filter 1,667 startup, SaaS and AI directories by category, minimum Ahrefs DR, link type (dofollow/nofollow), price and badge-swap requirement. Returns submit URLs. Link type and price are \"unknown\" where nobody has verified them yet - treat those as unverified, not as free or dofollow.",
            "inputSchema": {
              "properties": {
                "category": {
                  "description": "Directory category",
                  "enum": [
                    "AI Tools",
                    "Community",
                    "Design Tools",
                    "Developer Tools",
                    "General Directory",
                    "Launchpad",
                    "Marketing Tools",
                    "Marketplace",
                    "Open Source",
                    "SaaS Tools",
                    "Software Discovery",
                    "Software Reviews",
                    "Tech / Startups"
                  ],
                  "type": "string"
                },
                "exclude_badge_exchange": {
                  "default": false,
                  "description": "Drop directories whose free listing requires their badge on your site",
                  "type": "boolean"
                },
                "limit": {
                  "default": 20,
                  "description": "Results per page",
                  "maximum": 50,
                  "minimum": 1,
                  "type": "integer"
                },
                "link_type": {
                  "default": "any",
                  "description": "dofollow = verified followed link",
                  "enum": [
                    "any",
                    "dofollow",
                    "nofollow"
                  ],
                  "type": "string"
                },
                "min_dr": {
                  "default": 0,
                  "description": "Minimum Ahrefs Domain Rating",
                  "maximum": 100,
                  "minimum": 0,
                  "type": "integer"
                },
                "offset": {
                  "default": 0,
                  "description": "Skip this many results (pagination)",
                  "minimum": 0,
                  "type": "integer"
                },
                "pricing": {
                  "default": "any",
                  "description": "free_or_freemium = there is a no-cost route",
                  "enum": [
                    "any",
                    "free",
                    "free_or_freemium",
                    "paid"
                  ],
                  "type": "string"
                },
                "query": {
                  "description": "Match against directory name or domain, e.g. \"hunt\" or \"betalist\"",
                  "type": "string"
                },
                "sort": {
                  "default": "dr",
                  "description": "dr = strongest first",
                  "enum": [
                    "dr",
                    "name"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "attribution": {
                  "type": "string"
                },
                "dataUpdatedAt": {
                  "description": "Date link type and price were last swept (YYYY-MM-DD). DR has its own date per row.",
                  "type": "string"
                },
                "directories": {
                  "items": {
                    "properties": {
                      "badgeExchange": {
                        "description": "The free listing asks for their badge on your site",
                        "type": "boolean"
                      },
                      "category": {
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "dr": {
                        "description": "Ahrefs Domain Rating; 0 means no data, not worthless",
                        "type": "integer"
                      },
                      "drCheckedAt": {
                        "description": "Day the DR was last checked (YYYY-MM-DD); null = value from the last list sweep",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "linkType": {
                        "enum": [
                          "dofollow",
                          "nofollow",
                          "unknown"
                        ],
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "note": {
                        "description": "Hand-written verdict, present on curated picks only",
                        "type": "string"
                      },
                      "pricing": {
                        "enum": [
                          "free",
                          "freemium",
                          "paid",
                          "unknown"
                        ],
                        "type": "string"
                      },
                      "submitUrl": {
                        "description": "Where to submit or list",
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "domain",
                      "submitUrl",
                      "dr",
                      "linkType",
                      "pricing",
                      "category",
                      "badgeExchange",
                      "drCheckedAt"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "offset": {
                  "type": "integer"
                },
                "total": {
                  "description": "Matches before pagination",
                  "type": "integer"
                }
              },
              "required": [
                "total",
                "offset",
                "directories",
                "dataUpdatedAt",
                "attribution"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Find launch directories"
            }
          },
          {
            "name": "get_launch_directory",
            "title": "Look up a launch directory",
            "description": "Look up one directory by domain or URL: Ahrefs DR, dofollow or nofollow, price, whether it wants a badge swap, the submit URL, and a human verdict where one exists. Use it to vet a directory before paying for a listing.",
            "inputSchema": {
              "properties": {
                "domain": {
                  "description": "Directory domain or any URL on it, e.g. \"uneed.best\" or \"https://www.producthunt.com/posts/new\"",
                  "type": "string"
                }
              },
              "required": [
                "domain"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "attribution": {
                  "type": "string"
                },
                "dataUpdatedAt": {
                  "description": "Date link type and price were last swept (YYYY-MM-DD). DR has its own date per row.",
                  "type": "string"
                },
                "directory": {
                  "properties": {
                    "badgeExchange": {
                      "description": "The free listing asks for their badge on your site",
                      "type": "boolean"
                    },
                    "category": {
                      "type": "string"
                    },
                    "domain": {
                      "type": "string"
                    },
                    "dr": {
                      "description": "Ahrefs Domain Rating; 0 means no data, not worthless",
                      "type": "integer"
                    },
                    "drCheckedAt": {
                      "description": "Day the DR was last checked (YYYY-MM-DD); null = value from the last list sweep",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "linkType": {
                      "enum": [
                        "dofollow",
                        "nofollow",
                        "unknown"
                      ],
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "note": {
                      "description": "Hand-written verdict, present on curated picks only",
                      "type": "string"
                    },
                    "pricing": {
                      "enum": [
                        "free",
                        "freemium",
                        "paid",
                        "unknown"
                      ],
                      "type": "string"
                    },
                    "submitUrl": {
                      "description": "Where to submit or list",
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "domain",
                    "submitUrl",
                    "dr",
                    "linkType",
                    "pricing",
                    "category",
                    "badgeExchange",
                    "drCheckedAt"
                  ],
                  "type": "object"
                },
                "found": {
                  "type": "boolean"
                }
              },
              "required": [
                "found",
                "dataUpdatedAt",
                "attribution"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Look up a launch directory"
            }
          },
          {
            "name": "submit_project",
            "title": "Submit a project to SaaSCity",
            "description": "List a product on the SaaSCity launch directory. Creates a draft and returns a claim URL. The human signs in, chooses a paid plan or an available free badge slot, and submits the prefilled form for review. Only the human pays for a paid plan. Free subdomain hosts and domains that already have a listing are refused.",
            "inputSchema": {
              "properties": {
                "category": {
                  "description": "Listing category id",
                  "enum": [
                    "ai",
                    "saas",
                    "productivity",
                    "devtools",
                    "design",
                    "marketing",
                    "fintech",
                    "health",
                    "mobile",
                    "games",
                    "web3",
                    "molt",
                    "directories",
                    "other"
                  ],
                  "type": "string"
                },
                "description": {
                  "description": "Plain text: the problem, who it is for, what makes it different",
                  "maxLength": 5000,
                  "minLength": 50,
                  "type": "string"
                },
                "github_url": {
                  "description": "Public repo URL (optional)",
                  "maxLength": 200,
                  "type": "string"
                },
                "tagline": {
                  "description": "One line on what it does and for whom",
                  "maxLength": 100,
                  "minLength": 10,
                  "type": "string"
                },
                "tags": {
                  "description": "Up to 10 short keywords (optional)",
                  "items": {
                    "maxLength": 40,
                    "type": "string"
                  },
                  "maxItems": 10,
                  "type": "array"
                },
                "title": {
                  "description": "Product name",
                  "maxLength": 60,
                  "minLength": 3,
                  "type": "string"
                },
                "twitter_url": {
                  "description": "X/Twitter profile URL (optional)",
                  "maxLength": 200,
                  "type": "string"
                },
                "website_url": {
                  "description": "Product homepage, https, on its own domain",
                  "maxLength": 500,
                  "type": "string"
                }
              },
              "required": [
                "title",
                "tagline",
                "category",
                "description",
                "website_url"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "badgeSnippet": {
                  "description": "HTML for the badge required by the free listing option",
                  "type": "string"
                },
                "claimToken": {
                  "description": "Pass to get_submission_status",
                  "type": "string"
                },
                "claimUrl": {
                  "description": "The human must open this to publish the listing",
                  "type": "string"
                },
                "expiresAt": {
                  "description": "ISO date after which the draft is discarded",
                  "type": "string"
                }
              },
              "required": [
                "claimUrl",
                "expiresAt",
                "claimToken",
                "badgeSnippet"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": false,
              "openWorldHint": false,
              "readOnlyHint": false,
              "title": "Submit a project to SaaSCity"
            }
          },
          {
            "name": "check_badge",
            "title": "Check the SaaSCity badge",
            "description": "Check whether the SaaSCity badge is live on a site. Reads the given URL and, for a deep page, the site homepage too, rendering JavaScript if needed. Free listings require a badge and use nofollow website links.",
            "inputSchema": {
              "properties": {
                "url": {
                  "description": "Site URL to scan (the listing URL; the homepage is read as well)",
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "badgeSnippet": {
                  "description": "The HTML to embed when not found",
                  "type": "string"
                },
                "code": {
                  "description": "FOUND, BADGE_NOT_FOUND, UNREACHABLE, TIMEOUT, HTTP_ERROR, ...",
                  "type": "string"
                },
                "found": {
                  "type": "boolean"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "found",
                "code",
                "message"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": true,
              "title": "Check the SaaSCity badge"
            }
          },
          {
            "name": "get_submission_status",
            "title": "Get submission status",
            "description": "Where a SaaSCity submission stands. By claim token: unclaimed, expired, claimed but the form not submitted yet, submitted and waiting for payment, submitted and in review, rejected, archived, or live. By slug: a live listing (launch week, badge, link type, points).",
            "inputSchema": {
              "properties": {
                "claim_token": {
                  "description": "Token from submit_project (the mcp_... part of the claim URL)",
                  "type": "string"
                },
                "slug": {
                  "description": "Slug of a live listing",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "expiresAt": {
                  "type": "string"
                },
                "listing": {
                  "properties": {
                    "badge": {
                      "type": "string"
                    },
                    "linkType": {
                      "type": "string"
                    },
                    "points": {
                      "type": "integer"
                    },
                    "title": {
                      "type": "string"
                    },
                    "weekStart": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "title",
                    "weekStart",
                    "badge",
                    "linkType",
                    "points"
                  ],
                  "type": "object"
                },
                "state": {
                  "description": "claimed_not_submitted: the human opened the claim link but has not submitted the form. awaiting_payment: the selected plan still needs payment. claimed_in_review: the listing is waiting for manual review.",
                  "enum": [
                    "not_found",
                    "unclaimed",
                    "expired",
                    "claimed_not_submitted",
                    "awaiting_payment",
                    "claimed_in_review",
                    "rejected",
                    "archived",
                    "live"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "state"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Get submission status"
            }
          },
          {
            "name": "get_launch_weeks",
            "title": "Get launch weeks",
            "description": "SaaSCity launch weeks: the next 12 Mondays. A round opens each Monday at 00:00 UTC, and a paid listing can take any of them.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "weeks": {
                  "items": {
                    "properties": {
                      "isCurrent": {
                        "type": "boolean"
                      },
                      "weekStart": {
                        "description": "Monday, YYYY-MM-DD",
                        "type": "string"
                      }
                    },
                    "required": [
                      "weekStart",
                      "isCurrent"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "weeks"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Get launch weeks"
            }
          },
          {
            "name": "get_offers",
            "title": "Get listing offers",
            "description": "SaaSCity paid listing offers and the free badge option. Only a human can pay, on the claim page.",
            "inputSchema": {
              "properties": {},
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "offers": {
                  "items": {
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "priceUsd": {
                        "type": "number"
                      },
                      "summary": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "priceUsd",
                      "summary"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "offers"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Get listing offers"
            }
          },
          {
            "name": "search_listings",
            "title": "Search SaaSCity listings",
            "description": "Search products listed on SaaSCity by keyword and/or category. Returns title, tagline, category, upvote points, the listing page and the product site. Useful for market research (\"what else exists in this space?\") before a launch.",
            "inputSchema": {
              "properties": {
                "category": {
                  "description": "Listing category id",
                  "enum": [
                    "ai",
                    "saas",
                    "productivity",
                    "devtools",
                    "design",
                    "marketing",
                    "fintech",
                    "health",
                    "mobile",
                    "games",
                    "web3",
                    "molt",
                    "directories",
                    "other"
                  ],
                  "type": "string"
                },
                "limit": {
                  "default": 10,
                  "description": "Results per page",
                  "maximum": 25,
                  "minimum": 1,
                  "type": "integer"
                },
                "offset": {
                  "default": 0,
                  "description": "Skip this many results (pagination)",
                  "minimum": 0,
                  "type": "integer"
                },
                "query": {
                  "description": "Keyword matched against title and tagline",
                  "type": "string"
                },
                "sort": {
                  "default": "points",
                  "description": "points = most upvoted first",
                  "enum": [
                    "points",
                    "newest"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "listings": {
                  "items": {
                    "properties": {
                      "category": {
                        "type": "string"
                      },
                      "pageUrl": {
                        "description": "SaaSCity listing page",
                        "type": "string"
                      },
                      "points": {
                        "description": "Community upvote points",
                        "type": "integer"
                      },
                      "slug": {
                        "description": "Pass to get_listing or find_alternatives",
                        "type": "string"
                      },
                      "tagline": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "websiteUrl": {
                        "description": "The product site",
                        "type": "string"
                      }
                    },
                    "required": [
                      "title",
                      "tagline",
                      "slug",
                      "category",
                      "points",
                      "pageUrl",
                      "websiteUrl"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "offset": {
                  "type": "integer"
                }
              },
              "required": [
                "listings",
                "offset"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Search SaaSCity listings"
            }
          },
          {
            "name": "get_listing",
            "title": "Get a SaaSCity listing",
            "description": "One live SaaSCity listing by slug: title, tagline, full description, category, upvote points, link type (dofollow/nofollow), listing page and product site.",
            "inputSchema": {
              "properties": {
                "slug": {
                  "description": "Listing slug, the last part of saascity.io/live/\u003cslug\u003e",
                  "type": "string"
                }
              },
              "required": [
                "slug"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "found": {
                  "type": "boolean"
                },
                "listing": {
                  "properties": {
                    "category": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "linkType": {
                      "enum": [
                        "dofollow",
                        "nofollow"
                      ],
                      "type": "string"
                    },
                    "pageUrl": {
                      "description": "SaaSCity listing page",
                      "type": "string"
                    },
                    "points": {
                      "description": "Community upvote points",
                      "type": "integer"
                    },
                    "slug": {
                      "description": "Pass to get_listing or find_alternatives",
                      "type": "string"
                    },
                    "tagline": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "websiteUrl": {
                      "description": "The product site",
                      "type": "string"
                    }
                  },
                  "required": [
                    "title",
                    "tagline",
                    "slug",
                    "category",
                    "points",
                    "pageUrl",
                    "websiteUrl",
                    "description",
                    "linkType"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "found"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Get a SaaSCity listing"
            }
          },
          {
            "name": "get_leaderboard",
            "title": "Get the launch leaderboard",
            "description": "SaaSCity's most upvoted launches for this week's launch, the last 30 days, or all time, optionally within one category.",
            "inputSchema": {
              "properties": {
                "category": {
                  "description": "Listing category id",
                  "enum": [
                    "ai",
                    "saas",
                    "productivity",
                    "devtools",
                    "design",
                    "marketing",
                    "fintech",
                    "health",
                    "mobile",
                    "games",
                    "web3",
                    "molt",
                    "directories",
                    "other"
                  ],
                  "type": "string"
                },
                "limit": {
                  "default": 10,
                  "description": "How many to return",
                  "maximum": 25,
                  "minimum": 1,
                  "type": "integer"
                },
                "period": {
                  "default": "week",
                  "description": "week = this Monday's launch",
                  "enum": [
                    "week",
                    "month",
                    "all_time"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "listings": {
                  "items": {
                    "properties": {
                      "category": {
                        "type": "string"
                      },
                      "pageUrl": {
                        "description": "SaaSCity listing page",
                        "type": "string"
                      },
                      "points": {
                        "description": "Community upvote points",
                        "type": "integer"
                      },
                      "slug": {
                        "description": "Pass to get_listing or find_alternatives",
                        "type": "string"
                      },
                      "tagline": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "websiteUrl": {
                        "description": "The product site",
                        "type": "string"
                      }
                    },
                    "required": [
                      "title",
                      "tagline",
                      "slug",
                      "category",
                      "points",
                      "pageUrl",
                      "websiteUrl"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "period": {
                  "type": "string"
                },
                "weekStart": {
                  "description": "Present for period=week",
                  "type": "string"
                }
              },
              "required": [
                "listings",
                "period"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Get the launch leaderboard"
            }
          },
          {
            "name": "find_alternatives",
            "title": "Find alternatives to a listing",
            "description": "Other SaaSCity listings in the same category as a given listing, most upvoted first. Useful for competitor research and positioning.",
            "inputSchema": {
              "properties": {
                "limit": {
                  "default": 10,
                  "description": "How many to return",
                  "maximum": 25,
                  "minimum": 1,
                  "type": "integer"
                },
                "slug": {
                  "description": "Slug of the listing to find alternatives for",
                  "type": "string"
                }
              },
              "required": [
                "slug"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "category": {
                  "type": "string"
                },
                "listings": {
                  "items": {
                    "properties": {
                      "category": {
                        "type": "string"
                      },
                      "pageUrl": {
                        "description": "SaaSCity listing page",
                        "type": "string"
                      },
                      "points": {
                        "description": "Community upvote points",
                        "type": "integer"
                      },
                      "slug": {
                        "description": "Pass to get_listing or find_alternatives",
                        "type": "string"
                      },
                      "tagline": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "websiteUrl": {
                        "description": "The product site",
                        "type": "string"
                      }
                    },
                    "required": [
                      "title",
                      "tagline",
                      "slug",
                      "category",
                      "points",
                      "pageUrl",
                      "websiteUrl"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "listings"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Find alternatives to a listing"
            }
          },
          {
            "name": "calculate_arr",
            "title": "Calculate ARR from MRR",
            "description": "Turn monthly recurring revenue into annual recurring revenue (ARR = MRR x 12), with ARPU when the customer count is given and the months to $100k, $1M and $10M ARR at a monthly growth rate. Count annual plans at their yearly price divided by 12 and leave one-time fees out of MRR. Full calculator: https://saascity.io/free-tools/arr-calculator",
            "inputSchema": {
              "properties": {
                "customers": {
                  "description": "Paying customers, for ARPU (optional)",
                  "type": "number"
                },
                "monthly_growth_pct": {
                  "description": "Expected MRR growth per month in percent, e.g. 8 (optional)",
                  "type": "number"
                },
                "mrr": {
                  "description": "Monthly recurring revenue in any currency",
                  "type": "number"
                }
              },
              "required": [
                "mrr"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "arpu_annual": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "arpu_monthly": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "arr": {
                  "minimum": 0,
                  "type": "number"
                },
                "calculator_url": {
                  "type": "string"
                },
                "milestones": {
                  "items": {
                    "properties": {
                      "months": {
                        "description": "0 when reached, null when not within 20 years",
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "target_arr": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "target_arr",
                      "months"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "arr",
                "arpu_monthly",
                "arpu_annual",
                "milestones",
                "calculator_url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Calculate ARR from MRR"
            }
          },
          {
            "name": "calculate_arr_bridge",
            "title": "ARR bridge: new, expansion, contraction, churn",
            "description": "Explain how ARR moved over a period: ending ARR = starting ARR + new + expansion - contraction - churned. Returns net new ARR, growth, the SaaS quick ratio ((new + expansion) / (contraction + churned)), and net and gross revenue retention of the starting base. Full calculator: https://saascity.io/free-tools/arr-calculator",
            "inputSchema": {
              "properties": {
                "churned_arr": {
                  "description": "ARR lost to customers who cancelled",
                  "type": "number"
                },
                "contraction_arr": {
                  "description": "ARR lost to downgrades from customers who stayed",
                  "type": "number"
                },
                "expansion_arr": {
                  "description": "ARR added by existing customers (upgrades, seats, add-ons)",
                  "type": "number"
                },
                "new_arr": {
                  "description": "ARR from customers who started paying in the period",
                  "type": "number"
                },
                "start_arr": {
                  "description": "ARR at the start of the period",
                  "type": "number"
                }
              },
              "required": [
                "start_arr"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "calculator_url": {
                  "type": "string"
                },
                "end_arr": {
                  "type": "number"
                },
                "growth_pct": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "grr_pct": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "net_new_arr": {
                  "type": "number"
                },
                "nrr_pct": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "quick_ratio": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              "required": [
                "end_arr",
                "net_new_arr",
                "growth_pct",
                "quick_ratio",
                "nrr_pct",
                "grr_pct",
                "calculator_url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "ARR bridge: new, expansion, contraction, churn"
            }
          },
          {
            "name": "calculate_churn",
            "title": "Customer churn rate",
            "description": "Customer churn and retention for a period, its monthly and annual equivalents (compounded, so 5% a month is about 46% a year, not 60%), and the average customer lifetime. Full calculator: https://saascity.io/free-tools/churn-rate-calculator",
            "inputSchema": {
              "properties": {
                "customers_at_start": {
                  "description": "Customers at the start of the period",
                  "type": "number"
                },
                "customers_lost": {
                  "description": "Customers from that base who cancelled during the period",
                  "type": "number"
                },
                "period": {
                  "description": "month, quarter or year",
                  "enum": [
                    "month",
                    "quarter",
                    "year"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "customers_at_start",
                "customers_lost"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "calculator_url": {
                  "type": "string"
                },
                "result": {
                  "description": "The calculator result; percentages as 0-1 shares unless the key says pct",
                  "type": "object"
                }
              },
              "required": [
                "result",
                "calculator_url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Customer churn rate"
            }
          },
          {
            "name": "calculate_nrr",
            "title": "Net and gross revenue retention",
            "description": "Net revenue retention (NRR) and gross revenue retention (GRR) of a group of customers from their starting MRR, expansion, contraction and churned MRR, with annualised figures. Full calculator: https://saascity.io/free-tools/net-revenue-retention-calculator",
            "inputSchema": {
              "properties": {
                "churned_mrr": {
                  "description": "MRR lost to cancellations",
                  "type": "number"
                },
                "contraction_mrr": {
                  "description": "MRR lost to downgrades",
                  "type": "number"
                },
                "expansion_mrr": {
                  "description": "MRR added by those customers",
                  "type": "number"
                },
                "period": {
                  "description": "month, quarter or year",
                  "enum": [
                    "month",
                    "quarter",
                    "year"
                  ],
                  "type": "string"
                },
                "start_mrr": {
                  "description": "MRR of the customers at the start of the period",
                  "type": "number"
                }
              },
              "required": [
                "start_mrr"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "calculator_url": {
                  "type": "string"
                },
                "result": {
                  "description": "The calculator result; percentages as 0-1 shares unless the key says pct",
                  "type": "object"
                }
              },
              "required": [
                "result",
                "calculator_url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Net and gross revenue retention"
            }
          },
          {
            "name": "rule_of_40",
            "title": "Rule of 40 and SaaS efficiency",
            "description": "Rule of 40 score (revenue growth % + profit margin %), plus the magic number, burn multiple and SaaS quick ratio when their inputs are given. Full calculator: https://saascity.io/free-tools/rule-of-40-calculator",
            "inputSchema": {
              "properties": {
                "churned_mrr": {
                  "description": "Optional: churned MRR",
                  "type": "number"
                },
                "contraction_mrr": {
                  "description": "Optional: contraction MRR",
                  "type": "number"
                },
                "expansion_mrr": {
                  "description": "Optional: expansion MRR",
                  "type": "number"
                },
                "growth_pct": {
                  "description": "Year-over-year revenue growth in percent",
                  "type": "number"
                },
                "margin_pct": {
                  "description": "Profit margin in percent (EBITDA or free cash flow); negative when losing money",
                  "type": "number"
                },
                "net_burn": {
                  "description": "Optional: net burn over a period, for the burn multiple",
                  "type": "number"
                },
                "net_new_arr": {
                  "description": "Optional: net new ARR over the same period",
                  "type": "number"
                },
                "new_mrr": {
                  "description": "Optional: new MRR, for the quick ratio",
                  "type": "number"
                },
                "revenue_last_quarter": {
                  "description": "Optional: revenue last quarter",
                  "type": "number"
                },
                "revenue_this_quarter": {
                  "description": "Optional: revenue this quarter, for the magic number",
                  "type": "number"
                },
                "sales_marketing_last_quarter": {
                  "description": "Optional: sales and marketing spend last quarter",
                  "type": "number"
                }
              },
              "required": [
                "growth_pct",
                "margin_pct"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "calculator_url": {
                  "type": "string"
                },
                "result": {
                  "description": "The calculator result; percentages as 0-1 shares unless the key says pct",
                  "type": "object"
                }
              },
              "required": [
                "result",
                "calculator_url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Rule of 40 and SaaS efficiency"
            }
          },
          {
            "name": "calculate_nps",
            "title": "Net Promoter Score",
            "description": "Net Promoter Score from the counts of promoters (9-10), passives (7-8) and detractors (0-6), with the margin of error at 95% confidence. Full calculator: https://saascity.io/free-tools/nps-calculator",
            "inputSchema": {
              "properties": {
                "detractors": {
                  "description": "Responses scoring 0 to 6",
                  "type": "number"
                },
                "passives": {
                  "description": "Responses scoring 7 or 8",
                  "type": "number"
                },
                "promoters": {
                  "description": "Responses scoring 9 or 10",
                  "type": "number"
                }
              },
              "required": [
                "promoters",
                "passives",
                "detractors"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "calculator_url": {
                  "type": "string"
                },
                "result": {
                  "description": "The calculator result; percentages as 0-1 shares unless the key says pct",
                  "type": "object"
                }
              },
              "required": [
                "result",
                "calculator_url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Net Promoter Score"
            }
          },
          {
            "name": "ab_test_significance",
            "title": "A/B test significance",
            "description": "Two-proportion test of an A/B result: conversion rates, relative uplift, p-value, confidence interval, the chance that B beats A, and a sample ratio mismatch check. Full calculator: https://saascity.io/free-tools/ab-test-calculator",
            "inputSchema": {
              "properties": {
                "confidence_pct": {
                  "description": "90, 95 or 99 (default 95)",
                  "type": "number"
                },
                "conversions_a": {
                  "description": "Conversions in A",
                  "type": "number"
                },
                "conversions_b": {
                  "description": "Conversions in B",
                  "type": "number"
                },
                "visitors_a": {
                  "description": "Visitors in A",
                  "type": "number"
                },
                "visitors_b": {
                  "description": "Visitors in B",
                  "type": "number"
                }
              },
              "required": [
                "visitors_a",
                "conversions_a",
                "visitors_b",
                "conversions_b"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "calculator_url": {
                  "type": "string"
                },
                "result": {
                  "description": "The calculator result; percentages as 0-1 shares unless the key says pct",
                  "type": "object"
                }
              },
              "required": [
                "result",
                "calculator_url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "A/B test significance"
            }
          },
          {
            "name": "markup_margin",
            "title": "Markup and margin",
            "description": "Selling price, profit and margin from a cost and a markup percent, or markup and margin from a cost and a selling price. Full calculator: https://saascity.io/free-tools/markup-calculator",
            "inputSchema": {
              "properties": {
                "cost": {
                  "description": "Unit cost",
                  "type": "number"
                },
                "markup_pct": {
                  "description": "Markup in percent (give this or price)",
                  "type": "number"
                },
                "price": {
                  "description": "Selling price (give this or markup_pct)",
                  "type": "number"
                }
              },
              "required": [
                "cost"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "calculator_url": {
                  "type": "string"
                },
                "result": {
                  "description": "The calculator result; percentages as 0-1 shares unless the key says pct",
                  "type": "object"
                }
              },
              "required": [
                "result",
                "calculator_url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Markup and margin"
            }
          },
          {
            "name": "uptime_downtime",
            "title": "SLA uptime to allowed downtime",
            "description": "Allowed downtime per day, week, month, quarter and year, in seconds, for an availability target such as 99.9%. Full calculator: https://saascity.io/free-tools/uptime-calculator",
            "inputSchema": {
              "properties": {
                "availability_pct": {
                  "description": "Availability target in percent, e.g. 99.95",
                  "type": "number"
                }
              },
              "required": [
                "availability_pct"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "calculator_url": {
                  "type": "string"
                },
                "result": {
                  "description": "The calculator result; percentages as 0-1 shares unless the key says pct",
                  "type": "object"
                }
              },
              "required": [
                "result",
                "calculator_url"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "SLA uptime to allowed downtime"
            }
          },
          {
            "name": "check_backlink",
            "title": "Check a directory backlink",
            "description": "Check whether a directory listing page links to your site and whether that link is followed. Reads the page's static HTML and reports every anchor pointing at your domain with its rel (nofollow, ugc, sponsored), hidden links, links that only go through the directory's own redirect, and page-level noindex, nofollow and canonical. Use it after submitting to directories to see which listings went live and which ones pass a dofollow link.",
            "inputSchema": {
              "properties": {
                "page_url": {
                  "description": "The directory page that lists your product, e.g. \"https://somedirectory.com/tools/your-product\"",
                  "type": "string"
                },
                "your_domain": {
                  "description": "Your product's domain or any URL on it, e.g. \"example.com\". Subdomains count as matches.",
                  "type": "string"
                }
              },
              "required": [
                "page_url",
                "your_domain"
              ],
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "canonicalElsewhere": {
                  "description": "The canonical URL when it differs from the page",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "finalUrl": {
                  "description": "After redirects",
                  "type": "string"
                },
                "httpStatus": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "linkCount": {
                  "description": "Direct links found; links lists the first 20",
                  "type": "integer"
                },
                "links": {
                  "items": {
                    "properties": {
                      "followed": {
                        "description": "No nofollow, ugc or sponsored on the anchor",
                        "type": "boolean"
                      },
                      "hidden": {
                        "description": "Hidden by its own hidden attribute or inline style",
                        "type": "boolean"
                      },
                      "href": {
                        "type": "string"
                      },
                      "rel": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "text": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "href",
                      "text",
                      "rel",
                      "followed",
                      "hidden"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "pageIndexable": {
                  "description": "False when the page says noindex",
                  "type": "boolean"
                },
                "pageNofollow": {
                  "description": "Meta robots or X-Robots-Tag nofollow: no link on the page is followed",
                  "type": "boolean"
                },
                "pageUrl": {
                  "type": "string"
                },
                "redirectLinkCount": {
                  "description": "Links that reach your domain only through the directory's redirect",
                  "type": "integer"
                },
                "summary": {
                  "type": "string"
                },
                "targetDomain": {
                  "type": "string"
                },
                "truncated": {
                  "description": "The HTML was over 2 MB and read only up to that point",
                  "type": "boolean"
                },
                "verdict": {
                  "description": "not_found covers listings drawn by JavaScript: the check reads static HTML only",
                  "enum": [
                    "dofollow",
                    "nofollow",
                    "redirect_only",
                    "not_found"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "pageUrl",
                "finalUrl",
                "httpStatus",
                "targetDomain",
                "verdict",
                "pageIndexable",
                "pageNofollow",
                "canonicalElsewhere",
                "links",
                "linkCount",
                "redirectLinkCount",
                "truncated",
                "summary"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": true,
              "title": "Check a directory backlink"
            }
          }
        ]
      },
      "name": "SaaSCity",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "saascity-mcp",
          "version": "2.1.0",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/saascity.json",
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 459
      },
      "registryName": "io.saascity/saascity",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://saascity.io/api/mcp"
        }
      ],
      "repository": "https://github.com/nyyhao/saascity-mcp",
      "reviewed": false,
      "slug": "saascity",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.saascity/saascity",
      "summary": "Audit your site, pick from 1,600+ launch directories by DR and link type, and list on SaaSCity.",
      "updatedAt": "2026-11-07T14:25:14Z",
      "url": "https://www.anchorterminal.com/tools/saascity",
      "vendor": "saascity.io",
      "vendorUrl": "https://saascity.io",
      "version": "2.1.0",
      "websiteUrl": "https://saascity.io",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/saascity",
    "json": "https://www.anchorterminal.com/tools/saascity.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/saascity.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/tools/saascity.min.md"
  },
  "markdown": "# SaaSCity\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 saascity.io (https://saascity.io)\n- Listed because: It's published in the registry under saascity.io, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Audit your site, pick from 1,600+ launch directories by DR and link type, and list on SaaSCity.\n\n## Facts\n\n- MCP registry: `io.saascity/saascity` 2.1.0\n- Endpoint: https://saascity.io/api/mcp (streamable HTTP)\n- Package: npm `saascity-mcp` (stdio)\n- Source: https://github.com/nyyhao/saascity-mcp\n- Website: https://saascity.io\n- npm downloads a week: 459\n- GitHub stars: 0\n- Registry entry updated: 2026-11-07\n\n## Tools\n\n- Tools it lists (23, about 8,472 tokens of context, `tools/list` without credentials over MCP 2026-07-28, checked 2026-11-15 03:50 UTC):\n  - `check_launch_readiness` (read-only): Audit a product homepage before launching it: HTTPS, noindex, title and meta description, og:image (fetched to confirm it loads), X card, favicon, canonical,…\n  - `recommend_launch_directories` (read-only): Hand-picked launch directories for a product type, grouped by when to submit (launch day first, evergreen after). Every pick carries a human-written verdict,…\n  - `find_launch_directories` (read-only): Filter 1,667 startup, SaaS and AI directories by category, minimum Ahrefs DR, link type (dofollow/nofollow), price and badge-swap requirement. Returns submit…\n  - `get_launch_directory` (read-only): Look up one directory by domain or URL: Ahrefs DR, dofollow or nofollow, price, whether it wants a badge swap, the submit URL, and a human verdict where one…\n  - `submit_project` (writes): List a product on the SaaSCity launch directory. Creates a draft and returns a claim URL. The human signs in, chooses a paid plan or an available free badge…\n  - `check_badge` (read-only): Check whether the SaaSCity badge is live on a site. Reads the given URL and, for a deep page, the site homepage too, rendering JavaScript if needed. Free…\n  - `get_submission_status` (read-only): Where a SaaSCity submission stands. By claim token: unclaimed, expired, claimed but the form not submitted yet, submitted and waiting for payment, submitted…\n  - `get_launch_weeks` (read-only): SaaSCity launch weeks: the next 12 Mondays. A round opens each Monday at 00:00 UTC, and a paid listing can take any of them.\n  - `get_offers` (read-only): SaaSCity paid listing offers and the free badge option. Only a human can pay, on the claim page.\n  - `search_listings` (read-only): Search products listed on SaaSCity by keyword and/or category. Returns title, tagline, category, upvote points, the listing page and the product site. Useful…\n  - `get_listing` (read-only): One live SaaSCity listing by slug: title, tagline, full description, category, upvote points, link type (dofollow/nofollow), listing page and product site.\n  - `get_leaderboard` (read-only): SaaSCity's most upvoted launches for this week's launch, the last 30 days, or all time, optionally within one category.\n  - `find_alternatives` (read-only): Other SaaSCity listings in the same category as a given listing, most upvoted first. Useful for competitor research and positioning.\n  - `calculate_arr` (read-only): Turn monthly recurring revenue into annual recurring revenue (ARR = MRR x 12), with ARPU when the customer count is given and the months to $100k, $1M and $10M…\n  - `calculate_arr_bridge` (read-only): Explain how ARR moved over a period: ending ARR = starting ARR + new + expansion - contraction - churned. Returns net new ARR, growth, the SaaS quick ratio…\n  - `calculate_churn` (read-only): Customer churn and retention for a period, its monthly and annual equivalents (compounded, so 5% a month is about 46% a year, not 60%), and the average…\n  - `calculate_nrr` (read-only): Net revenue retention (NRR) and gross revenue retention (GRR) of a group of customers from their starting MRR, expansion, contraction and churned MRR, with…\n  - `rule_of_40` (read-only): Rule of 40 score (revenue growth % + profit margin %), plus the magic number, burn multiple and SaaS quick ratio when their inputs are given. Full calculator:…\n  - `calculate_nps` (read-only): Net Promoter Score from the counts of promoters (9-10), passives (7-8) and detractors (0-6), with the margin of error at 95% confidence. Full calculator:…\n  - `ab_test_significance` (read-only): Two-proportion test of an A/B result: conversion rates, relative uplift, p-value, confidence interval, the chance that B beats A, and a sample ratio mismatch…\n  - `markup_margin` (read-only): Selling price, profit and margin from a cost and a markup percent, or markup and margin from a cost and a selling price. Full calculator:…\n  - `uptime_downtime` (read-only): Allowed downtime per day, week, month, quarter and year, in seconds, for an availability target such as 99.9%. Full calculator:…\n  - `check_backlink` (read-only): Check whether a directory listing page links to your site and whether that link is followed. Reads the page's static HTML and reports every anchor pointing at…\n- How its tools read to an agent (0 errors, 0 warnings, 0 notes, about 8,472 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/saascity.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)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-15",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.8",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "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": "SaaSCity",
        "url": ""
      }
    ],
    "description": "SaaSCity, an MCP server by saascity.io, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Audit your site, pick from 1,600+ launch directories by DR and link type, and list on SaaSCity.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "SaaSCity",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/saascity",
    "published": "",
    "section": "indexed",
    "title": "SaaSCity: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-11-15",
    "url": "https://www.anchorterminal.com/tools/saascity"
  },
  "tokens": {
    "markdown": 1600,
    "slim": 1530
  },
  "version": 1
}
