SaaSCity
Ce que fait ce MCP
Audits website launch readiness, researches launch directories and competitors, and submits or monitors product listings in a launch directory.
Outils
Schéma d’entrée
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Site URL to scan (the listing URL; the homepage is read as well)'}}}
Schéma de sortie
{'type': 'object', 'required': ['found', 'code', 'message'], 'properties': {'code': {'type': 'string', 'description': 'FOUND, BADGE_NOT_FOUND, UNREACHABLE, TIMEOUT, HTTP_ERROR, ...'}, 'found': {'type': 'boolean'}, 'message': {'type': 'string'}, 'badgeSnippet': {'type': 'string', 'description': 'The HTML to embed when not found'}}}
Schéma d’entrée
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Homepage URL; the https:// prefix is optional'}}}
Schéma de sortie
{'type': 'object', 'required': ['url', 'finalUrl', 'httpStatus', 'responseMs', 'score', 'verdict', 'saascityBadge', 'checks'], 'properties': {'url': {'type': 'string'}, 'score': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'checks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'status', 'detail'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'detail': {'type': 'string', 'description': 'Finding, and the fix when not passing'}, 'status': {'enum': ['pass', 'warn', 'fail'], 'type': 'string'}, 'critical': {'type': 'boolean', 'description': 'Blocks launch when failing'}}}}, 'verdict': {'enum': ['ready', 'almost_ready', 'not_ready'], 'type': 'string'}, 'finalUrl': {'type': 'string', 'description': 'After redirects'}, 'httpStatus': {'type': ['integer', 'null']}, 'responseMs': {'type': ['integer', 'null'], 'description': 'Time to response headers, from SaaSCity servers'}, 'saascityBadge': {'type': 'boolean', 'description': 'The SaaSCity badge is on the page'}}}
Schéma d’entrée
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Slug of the listing to find alternatives for'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1, 'description': 'How many to return'}}}
Schéma de sortie
{'type': 'object', 'required': ['listings'], 'properties': {'category': {'type': 'string'}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'tagline', 'slug', 'category', 'points', 'pageUrl', 'websiteUrl'], 'properties': {'slug': {'type': 'string', 'description': 'Pass to get_listing or find_alternatives'}, 'title': {'type': 'string'}, 'points': {'type': 'integer', 'description': 'Community upvote points'}, 'pageUrl': {'type': 'string', 'description': 'SaaSCity listing page'}, 'tagline': {'type': 'string'}, 'category': {'type': 'string'}, 'websiteUrl': {'type': 'string', 'description': 'The product site'}}}}}}
Schéma d’entrée
{'type': 'object', 'properties': {'sort': {'enum': ['dr', 'name'], 'type': 'string', 'default': 'dr', 'description': 'dr = strongest first'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Results per page'}, 'query': {'type': 'string', 'description': 'Match against directory name or domain, e.g. "hunt" or "betalist"'}, 'min_dr': {'type': 'integer', 'default': 0, 'maximum': 100, 'minimum': 0, 'description': 'Minimum Ahrefs Domain Rating'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0, 'description': 'Skip this many results (pagination)'}, 'pricing': {'enum': ['any', 'free', 'free_or_freemium', 'paid'], 'type': 'string', 'default': 'any', 'description': 'free_or_freemium = there is a no-cost route'}, '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', 'description': 'Directory category'}, 'link_type': {'enum': ['any', 'dofollow', 'nofollow'], 'type': 'string', 'default': 'any', 'description': 'dofollow = verified followed link'}, 'exclude_badge_exchange': {'type': 'boolean', 'default': False, 'description': 'Drop directories whose free listing requires their badge on your site'}}}
Schéma de sortie
{'type': 'object', 'required': ['total', 'offset', 'directories', 'dataUpdatedAt', 'attribution'], 'properties': {'total': {'type': 'integer', 'description': 'Matches before pagination'}, 'offset': {'type': 'integer'}, 'attribution': {'type': 'string'}, 'directories': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'domain', 'submitUrl', 'dr', 'linkType', 'pricing', 'category', 'badgeExchange', 'drCheckedAt'], 'properties': {'dr': {'type': 'integer', 'description': 'Ahrefs Domain Rating; 0 means no data, not worthless'}, 'name': {'type': 'string'}, 'note': {'type': 'string', 'description': 'Hand-written verdict, present on curated picks only'}, 'domain': {'type': 'string'}, 'pricing': {'enum': ['free', 'freemium', 'paid', 'unknown'], 'type': 'string'}, 'category': {'type': 'string'}, 'linkType': {'enum': ['dofollow', 'nofollow', 'unknown'], 'type': 'string'}, 'submitUrl': {'type': 'string', 'description': 'Where to submit or list'}, 'drCheckedAt': {'type': ['string', 'null'], 'description': 'Day the DR was last checked (YYYY-MM-DD); null = value from the last list sweep'}, 'badgeExchange': {'type': 'boolean', 'description': 'The free listing asks for their badge on your site'}}}}, 'dataUpdatedAt': {'type': 'string', 'description': 'Date link type and price were last swept (YYYY-MM-DD). DR has its own date per row.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'Directory domain or any URL on it, e.g. "uneed.best" or "https://www.producthunt.com/posts/new"'}}}
Schéma de sortie
{'type': 'object', 'required': ['found', 'dataUpdatedAt', 'attribution'], 'properties': {'found': {'type': 'boolean'}, 'directory': {'type': 'object', 'required': ['name', 'domain', 'submitUrl', 'dr', 'linkType', 'pricing', 'category', 'badgeExchange', 'drCheckedAt'], 'properties': {'dr': {'type': 'integer', 'description': 'Ahrefs Domain Rating; 0 means no data, not worthless'}, 'name': {'type': 'string'}, 'note': {'type': 'string', 'description': 'Hand-written verdict, present on curated picks only'}, 'domain': {'type': 'string'}, 'pricing': {'enum': ['free', 'freemium', 'paid', 'unknown'], 'type': 'string'}, 'category': {'type': 'string'}, 'linkType': {'enum': ['dofollow', 'nofollow', 'unknown'], 'type': 'string'}, 'submitUrl': {'type': 'string', 'description': 'Where to submit or list'}, 'drCheckedAt': {'type': ['string', 'null'], 'description': 'Day the DR was last checked (YYYY-MM-DD); null = value from the last list sweep'}, 'badgeExchange': {'type': 'boolean', 'description': 'The free listing asks for their badge on your site'}}}, 'attribution': {'type': 'string'}, 'dataUpdatedAt': {'type': 'string', 'description': 'Date link type and price were last swept (YYYY-MM-DD). DR has its own date per row.'}}}
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', 'required': ['freeCapacityPerWeek', 'weeks'], 'properties': {'weeks': {'type': 'array', 'items': {'type': 'object', 'required': ['weekStart', 'freeRemaining', 'isCurrent'], 'properties': {'isCurrent': {'type': 'boolean'}, 'weekStart': {'type': 'string', 'description': 'Monday, YYYY-MM-DD'}, 'freeRemaining': {'type': 'integer'}}}}, 'freeCapacityPerWeek': {'type': 'integer'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1, 'description': 'How many to return'}, 'period': {'enum': ['week', 'month', 'all_time'], 'type': 'string', 'default': 'week', 'description': "week = this Monday's launch"}, 'category': {'enum': ['ai', 'saas', 'productivity', 'devtools', 'design', 'marketing', 'fintech', 'health', 'mobile', 'games', 'web3', 'molt', 'directories', 'other'], 'type': 'string', 'description': 'Listing category id'}}}
Schéma de sortie
{'type': 'object', 'required': ['listings', 'period'], 'properties': {'period': {'type': 'string'}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'tagline', 'slug', 'category', 'points', 'pageUrl', 'websiteUrl'], 'properties': {'slug': {'type': 'string', 'description': 'Pass to get_listing or find_alternatives'}, 'title': {'type': 'string'}, 'points': {'type': 'integer', 'description': 'Community upvote points'}, 'pageUrl': {'type': 'string', 'description': 'SaaSCity listing page'}, 'tagline': {'type': 'string'}, 'category': {'type': 'string'}, 'websiteUrl': {'type': 'string', 'description': 'The product site'}}}}, 'weekStart': {'type': 'string', 'description': 'Present for period=week'}}}
Schéma d’entrée
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Listing slug, the last part of saascity.io/live/<slug>'}}}
Schéma de sortie
{'type': 'object', 'required': ['found'], 'properties': {'found': {'type': 'boolean'}, 'listing': {'type': 'object', 'required': ['title', 'tagline', 'slug', 'category', 'points', 'pageUrl', 'websiteUrl', 'description', 'linkType'], 'properties': {'slug': {'type': 'string', 'description': 'Pass to get_listing or find_alternatives'}, 'title': {'type': 'string'}, 'points': {'type': 'integer', 'description': 'Community upvote points'}, 'pageUrl': {'type': 'string', 'description': 'SaaSCity listing page'}, 'tagline': {'type': 'string'}, 'category': {'type': 'string'}, 'linkType': {'enum': ['dofollow', 'nofollow'], 'type': 'string'}, 'websiteUrl': {'type': 'string', 'description': 'The product site'}, 'description': {'type': 'string'}}}}}
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', 'required': ['offers'], 'properties': {'offers': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'priceUsd', 'summary'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'summary': {'type': 'string'}, 'priceUsd': {'type': 'number'}}}}}}
Schéma d’entrée
{'type': 'object', 'properties': {'slug': {'type': 'string', 'description': 'Slug of a live listing'}, 'claim_token': {'type': 'string', 'description': 'Token from submit_project (the mcp_... part of the claim URL)'}}}
Schéma de sortie
{'type': 'object', 'required': ['state'], 'properties': {'state': {'enum': ['not_found', 'unclaimed', 'claimed_in_review', 'expired', 'live'], 'type': 'string'}, 'listing': {'type': 'object', 'required': ['title', 'weekStart', 'badge', 'linkType', 'points'], 'properties': {'badge': {'type': 'string'}, 'title': {'type': 'string'}, 'points': {'type': 'integer'}, 'linkType': {'type': 'string'}, 'weekStart': {'type': ['string', 'null']}}}, 'expiresAt': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'free_only': {'type': 'boolean', 'default': False, 'description': 'Only picks with a free or freemium route'}, 'product_type': {'enum': ['any', 'saas', 'ai', 'devtools'], 'type': 'string', 'default': 'any', 'description': 'saas = B2B/B2C software, ai = AI tool or app, devtools = sold to developers, any = general'}}}
Schéma de sortie
{'type': 'object', 'required': ['productType', 'groups', 'dataUpdatedAt', 'attribution'], 'properties': {'groups': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'advice', 'directories'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'advice': {'type': 'string'}, 'directories': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'domain', 'submitUrl', 'dr', 'linkType', 'pricing', 'category', 'badgeExchange', 'drCheckedAt'], 'properties': {'dr': {'type': 'integer', 'description': 'Ahrefs Domain Rating; 0 means no data, not worthless'}, 'name': {'type': 'string'}, 'note': {'type': 'string', 'description': 'Hand-written verdict, present on curated picks only'}, 'domain': {'type': 'string'}, 'pricing': {'enum': ['free', 'freemium', 'paid', 'unknown'], 'type': 'string'}, 'category': {'type': 'string'}, 'linkType': {'enum': ['dofollow', 'nofollow', 'unknown'], 'type': 'string'}, 'submitUrl': {'type': 'string', 'description': 'Where to submit or list'}, 'drCheckedAt': {'type': ['string', 'null'], 'description': 'Day the DR was last checked (YYYY-MM-DD); null = value from the last list sweep'}, 'badgeExchange': {'type': 'boolean', 'description': 'The free listing asks for their badge on your site'}}}}}}}, 'attribution': {'type': 'string'}, 'productType': {'type': 'string'}, 'dataUpdatedAt': {'type': 'string', 'description': 'Date link type and price were last swept (YYYY-MM-DD). DR has its own date per row.'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'sort': {'enum': ['points', 'newest'], 'type': 'string', 'default': 'points', 'description': 'points = most upvoted first'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1, 'description': 'Results per page'}, 'query': {'type': 'string', 'description': 'Keyword matched against title and tagline'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0, 'description': 'Skip this many results (pagination)'}, 'category': {'enum': ['ai', 'saas', 'productivity', 'devtools', 'design', 'marketing', 'fintech', 'health', 'mobile', 'games', 'web3', 'molt', 'directories', 'other'], 'type': 'string', 'description': 'Listing category id'}}}
Schéma de sortie
{'type': 'object', 'required': ['listings', 'offset'], 'properties': {'offset': {'type': 'integer'}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'tagline', 'slug', 'category', 'points', 'pageUrl', 'websiteUrl'], 'properties': {'slug': {'type': 'string', 'description': 'Pass to get_listing or find_alternatives'}, 'title': {'type': 'string'}, 'points': {'type': 'integer', 'description': 'Community upvote points'}, 'pageUrl': {'type': 'string', 'description': 'SaaSCity listing page'}, 'tagline': {'type': 'string'}, 'category': {'type': 'string'}, 'websiteUrl': {'type': 'string', 'description': 'The product site'}}}}}}
Schéma d’entrée
{'type': 'object', 'required': ['title', 'tagline', 'category', 'description', 'website_url'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 10, 'description': 'Up to 10 short keywords (optional)'}, 'title': {'type': 'string', 'maxLength': 60, 'minLength': 3, 'description': 'Product name'}, 'tagline': {'type': 'string', 'maxLength': 100, 'minLength': 10, 'description': 'One line on what it does and for whom'}, 'category': {'enum': ['ai', 'saas', 'productivity', 'devtools', 'design', 'marketing', 'fintech', 'health', 'mobile', 'games', 'web3', 'molt', 'directories', 'other'], 'type': 'string', 'description': 'Listing category id'}, 'github_url': {'type': 'string', 'maxLength': 200, 'description': 'Public repo URL (optional)'}, 'description': {'type': 'string', 'maxLength': 5000, 'minLength': 50, 'description': 'Plain text: the problem, who it is for, what makes it different'}, 'twitter_url': {'type': 'string', 'maxLength': 200, 'description': 'X/Twitter profile URL (optional)'}, 'website_url': {'type': 'string', 'maxLength': 500, 'description': 'Product homepage, https, on its own domain'}}}
Schéma de sortie
{'type': 'object', 'required': ['claimUrl', 'expiresAt', 'claimToken', 'badgeSnippet'], 'properties': {'claimUrl': {'type': 'string', 'description': 'The human must open this to publish the listing'}, 'expiresAt': {'type': 'string', 'description': 'ISO date after which the draft is discarded'}, 'claimToken': {'type': 'string', 'description': 'Pass to get_submission_status'}, 'badgeSnippet': {'type': 'string', 'description': 'HTML that earns a dofollow link once verified with check_badge'}}}
Modifications récentes des outils
Serveurs MCP similaires
Heista
Analyzes video advertising, builds brand intelligence profiles, researches markets, and generates advertising scripts and creativ…
rankparse-mcp
Provides SEO and search marketing research including backlinks, authority, competitor gaps, Google Ads keyword metrics, and Googl…
VarynForge
Supports SEO research and content planning through niche analysis, competitor and keyword research, opportunity discovery, and wr…
sonar
Provides app-store optimization tools for keyword research, rankings, reviews, competitor analysis, alerts, and ASO scoring on iO…
AfterLaunch: the agentic growth marketing engine
Runs growth-marketing workflows covering SEO, AI-search visibility, competitor analysis, content planning, distribution channels,…
Prowlo — Reddit & X for AI agents
Indexes and searches Reddit and X-related social data, discovers communities, monitors keywords, finds engagement opportunities, …
AgentSEO
Provides SEO research and execution tools for SERP analysis, rankings, backlinks, content gaps, technical audits, and AI visibili…
NanoTools
Offers utility APIs alongside web search, scraping, browser rendering, screenshots, SERP data, and SEO audits.