# SaaSCity (remote · saascity.io)

Audit your site, pick from 1,600+ launch directories by DR and link type, and list on SaaSCity.

- Trust score: 80/100 (high trust)
- Change this week: +10
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-03

## Components

- remote · `saascity.io`: 80/100 (this document), [markdown](https://verifymcp.io/servers/io-saascity-saascity/api-mcp.md), [page](https://verifymcp.io/servers/io-saascity-saascity/api-mcp)

## Channel facts

- Endpoint: `https://saascity.io/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-03.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 87/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1491 tokens (~114/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the SaaSCity MCP server?

SaaSCity is a hosted endpoint at https://saascity.io/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-saascity-saascity 'https://saascity.io/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-saascity-saascity": {
      "url": "https://saascity.io/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-saascity-saascity": {
      "type": "http",
      "url": "https://saascity.io/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-saascity-saascity]
url = "https://saascity.io/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-saascity-saascity": {
      "type": "remote",
      "url": "https://saascity.io/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-saascity-saascity --url 'https://saascity.io/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-saascity-saascity:
    url: "https://saascity.io/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-saascity-saascity": {
      "Transport": "http",
      "Url": "https://saascity.io/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-saascity-saascity -t streamable-http -u 'https://saascity.io/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-saascity-saascity": {
      "type": "http",
      "url": "https://saascity.io/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-03 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-01 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-29 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-28 (score 77, +7)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-26 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-25 (score 69, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-24 (score 69)

First indexed and scored.

## MCP tools (13)

### `check_launch_readiness` (~127 tokens)

Check launch readiness

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.

Input parameters:

- `url` (string, required): Homepage URL; the https:// prefix is optional

Output parameters:

- `checks` (array)
- `finalUrl` (string): After redirects
- `httpStatus` (integer|null)
- `responseMs` (integer|null): Time to response headers, from SaaSCity servers
- `saascityBadge` (boolean): The SaaSCity badge is on the page
- `score` (integer)
- `url` (string)
- `verdict` (string)

### `recommend_launch_directories` (~133 tokens)

Recommend launch directories

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,666 sites.

Input parameters:

- `free_only` (boolean): Only picks with a free or freemium route
- `product_type` (string): saas = B2B/B2C software, ai = AI tool or app, devtools = sold to developers, any = general

Output parameters:

- `attribution` (string)
- `dataUpdatedAt` (string): Date link type and price were last swept (YYYY-MM-DD). DR has its own date per row.
- `groups` (array)
- `productType` (string)

### `find_launch_directories` (~213 tokens)

Find launch directories

Filter 1,666 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.

Input parameters:

- `category` (string): Directory category
- `exclude_badge_exchange` (boolean): Drop directories whose free listing requires their badge on your site
- `limit` (integer): Results per page
- `link_type` (string): dofollow = verified followed link
- `min_dr` (integer): Minimum Ahrefs Domain Rating
- `offset` (integer): Skip this many results (pagination)
- `pricing` (string): free_or_freemium = there is a no-cost route
- `query` (string): Match against directory name or domain, e.g. "hunt" or "betalist"
- `sort` (string): dr = strongest first

Output parameters:

- `attribution` (string)
- `dataUpdatedAt` (string): Date link type and price were last swept (YYYY-MM-DD). DR has its own date per row.
- `directories` (array)
- `offset` (integer)
- `total` (integer): Matches before pagination

### `get_launch_directory` (~94 tokens)

Look up a launch directory

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.

Input parameters:

- `domain` (string, required): Directory domain or any URL on it, e.g. "uneed.best" or "https://www.producthunt.com/posts/new"

Output parameters:

- `attribution` (string)
- `dataUpdatedAt` (string): Date link type and price were last swept (YYYY-MM-DD). DR has its own date per row.
- `directory` (object)
- `found` (boolean)

### `submit_project` (~207 tokens)

Submit a project to SaaSCity

List a product on the SaaSCity launch directory. Creates an inert draft and returns a claim URL; the human opens it to sign in, confirm the listing and pick a launch Monday. Nothing is published or charged until they do, and every listing is reviewed by a person. Free to submit. Free subdomain hosts (github.io, netlify.app...) and domains that already have a listing are refused.

Input parameters:

- `category` (string, required): Listing category id
- `description` (string, required): Plain text: the problem, who it is for, what makes it different
- `github_url` (string): Public repo URL (optional)
- `tagline` (string, required): One line on what it does and for whom
- `tags` (array): Up to 10 short keywords (optional)
- `title` (string, required): Product name
- `twitter_url` (string): X/Twitter profile URL (optional)
- `website_url` (string, required): Product homepage, https, on its own domain

Output parameters:

- `badgeSnippet` (string): HTML that earns a dofollow link once verified with check_badge
- `claimToken` (string): Pass to get_submission_status
- `claimUrl` (string): The human must open this to publish the listing
- `expiresAt` (string): ISO date after which the draft is discarded

### `check_badge` (~80 tokens)

Check the SaaSCity badge

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 the static HTML misses it. A verified badge turns the listing link dofollow.

Input parameters:

- `url` (string, required): Site URL to scan (the listing URL; the homepage is read as well)

Output parameters:

- `badgeSnippet` (string): The HTML to embed when not found
- `code` (string): FOUND, BADGE_NOT_FOUND, UNREACHABLE, TIMEOUT, HTTP_ERROR, ...
- `found` (boolean)
- `message` (string)

### `get_submission_status` (~87 tokens)

Get submission status

Where a SaaSCity submission stands: a draft by claim token (unclaimed, claimed and in review, or expired) or a live listing by slug (launch week, badge, link type, points).

Input parameters:

- `claim_token` (string): Token from submit_project (the mcp_... part of the claim URL)
- `slug` (string): Slug of a live listing

Output parameters:

- `expiresAt` (string)
- `listing` (object)
- `state` (string)

### `get_launch_weeks` (~50 tokens)

Get launch weeks

SaaSCity launch-week queue: the next 12 Mondays, how many free slots each has left, and which are full. Use it to tell a founder when a free listing would go live.

Output parameters:

- `freeCapacityPerWeek` (integer)
- `weeks` (array)

### `get_offers` (~53 tokens)

Get listing offers

SaaSCity listing offers with real prices - free queue, Quick Pass, Premium - and exactly what each buys (queue position, dofollow link, launch post). Only a human can pay, on the claim page.

Output parameters:

- `offers` (array)

### `search_listings` (~118 tokens)

Search SaaSCity listings

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.

Input parameters:

- `category` (string): Listing category id
- `limit` (integer): Results per page
- `offset` (integer): Skip this many results (pagination)
- `query` (string): Keyword matched against title and tagline
- `sort` (string): points = most upvoted first

Output parameters:

- `listings` (array)
- `offset` (integer)

### `get_listing` (~67 tokens)

Get a SaaSCity listing

One live SaaSCity listing by slug: title, tagline, full description, category, upvote points, link type (dofollow/nofollow), listing page and product site.

Input parameters:

- `slug` (string, required): Listing slug, the last part of saascity.io/live/<slug>

Output parameters:

- `found` (boolean)
- `listing` (object)

### `get_leaderboard` (~73 tokens)

Get the launch leaderboard

SaaSCity's most upvoted launches for this week's launch, the last 30 days, or all time, optionally within one category.

Input parameters:

- `category` (string): Listing category id
- `limit` (integer): How many to return
- `period` (string): week = this Monday's launch

Output parameters:

- `listings` (array)
- `period` (string)
- `weekStart` (string): Present for period=week

### `find_alternatives` (~64 tokens)

Find alternatives to a listing

Other SaaSCity listings in the same category as a given listing, most upvoted first. Useful for competitor research and positioning.

Input parameters:

- `limit` (integer): How many to return
- `slug` (string, required): Slug of the listing to find alternatives for

Output parameters:

- `category` (string)
- `listings` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-saascity-saascity/api-mcp#diagnostics

## Score history

- 2026-10-03: 80
- 2026-10-02: 79
- 2026-10-01: 79
- 2026-09-30: 78
- 2026-09-29: 78
- 2026-09-28: 77
- 2026-09-27: 70
- 2026-09-26: 70
- 2026-09-25: 69
- 2026-09-24: 69

## Common questions

### What is the SaaSCity MCP server?

SaaSCity is an MCP server listed in the public MCP registry as io.saascity/saascity. Audit your site, pick from 1,600+ launch directories by DR and link type, and list on SaaSCity. This page covers its hosted endpoint (https://saascity.io/api/mcp).

### Is the SaaSCity MCP server safe to use?

SaaSCity scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the SaaSCity MCP server expose?

SaaSCity exposes 13 tools: check_launch_readiness, recommend_launch_directories, find_launch_directories, get_launch_directory, submit_project, and 8 more. Their descriptions and schemas cost roughly 1,366 tokens of context every time the server is loaded.

### Does the SaaSCity MCP server require authentication?

No. We connected to SaaSCity without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the SaaSCity MCP server still maintained?

SaaSCity is still listed as active in the MCP registry. We last reached this channel on 3 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://saascity.io/api/mcp
- Repository: https://github.com/nyyhao/saascity-mcp
- Website: https://saascity.io/
- Changelog RSS feed: https://verifymcp.io/servers/io-saascity-saascity/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-saascity-saascity/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/io-saascity-saascity/api-mcp
