BestSaaSWebDesigns
Server Details
Search 400+ real SaaS marketing websites by category, section, style, stack, palette and font.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a distinct role: list_filters returns taxonomy vocabulary, search_sites returns filtered rich records, get_site fetches one record by slug, and list_site_links returns bare URLs. The search_sites vs list_site_links overlap is explicitly addressed in the descriptions, so an agent can choose correctly.
All four tools use clean snake_case verb_noun form (get_site, list_filters, list_site_links, search_sites) with a small, predictable verb vocabulary. Singular/plural noun variation follows the semantics of the operation rather than being arbitrary.
Four tools is a well-scoped surface for a read-only design-reference catalog: one for filter discovery, two for browsing at different levels of detail, one for single-record retrieval. No tool is redundant or filler.
The read-only lifecycle is essentially covered: discover filters, search, fetch details, and export plain links. Minor gaps exist, such as no explicit unfiltered browse-all endpoint or pagination controls beyond the 50-link cap, but agents can work around these.
Available Tools
4 toolsget_siteGet one siteARead-onlyIdempotentInspect
Get one SaaS website from the catalog by slug (from search_sites): website URL, category, style, stack, colour palette, fonts, captured sections, a link to its screenshots, and links to similar sites by category, style, stack and section.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Site slug, e.g. "linear". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds value beyond them by enumerating the returned payload (URL, category, style, stack, palette, fonts, sections, screenshot link, similar-site links), which matters because there is no output schema. It omits failure behavior for an unknown slug, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that identifies the operation and lookup key before the payload list. The field enumeration is long but earns its place as a substitute for a missing output schema; only slight tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required param, rich annotations and no output schema, the description covers the operation, the key's provenance and the return shape, which is what an agent needs. The only gap is the not-found/error case, which the agent must infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already gives a format example ('linear'), so the baseline is 3. The description adds origin semantics by tying the slug to search_sites results, which is meaning the schema does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource ('Get one SaaS website from the catalog by slug') with the key lookup key stated up front, plus an enumeration of what the record contains. It is clearly distinguishable from search_sites, which is named as the source of the slug.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(from search_sites)' tells the agent this is a follow-up call to a search result, which is a clear usage context. It does not state exclusions (e.g. batching multiple slugs, or when to prefer list_site_links for relationship data), so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filtersList categories, sections, styles and stacksARead-onlyIdempotentInspect
List every category, page section, visual style, tech stack and display font in the BestSaaSWebDesigns catalog of real SaaS marketing websites, with how many sites match each and a link to the gallery page for it. Call this first to learn valid filter values for search_sites.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so safety is covered. The description adds genuine value beyond that by disclosing the return shape (a count of matching sites per value plus a gallery link per value), which the absence of an output schema would otherwise leave unknown.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first defines output contents, the second defines the call sequence. The workflow instruction is placed last where it reads as the actionable takeaway, and no sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input schema properties and no output schema, the description has to carry the return-value burden on its own, and it does: it names every enumerated dimension, the count per value, and the gallery link. Nothing needed to invoke or interpret the call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. It correctly avoids wasting words on nonexistent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and enumerates the exact resources returned: categories, page sections, visual styles, tech stacks and display fonts. It also scopes the domain ('BestSaaSWebDesigns catalog of real SaaS marketing websites'), which cleanly separates it from get_site, list_site_links and search_sites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Call this first to learn valid filter values for search_sites' gives an explicit ordering rule and names the sibling tool that consumes the output. An agent knows both when to call it and what to do with the result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_site_linksList website linksARead-onlyIdempotentInspect
List real SaaS marketing websites as plain links: name and homepage URL only. Same filters as search_sites, up to 50 at a time. Use it when you want a batch of live sites to open and study yourself in a browser; this server never fetches them. Use search_sites or get_site for palettes, fonts, stacks and sections.
| Name | Required | Description | Default |
|---|---|---|---|
| font | No | Font family used on the site, e.g. "Inter". | |
| color | No | Hex colour; matches sites with a close colour in their palette, e.g. "#5e6ad2". | |
| limit | No | ||
| query | No | Free text, e.g. "developer tools", "linear", "video editing". | |
| stack | No | Tech stack of the marketing site, e.g. "Next.js", "Webflow", "Framer". | |
| style | No | Visual style: "dark", "light", "colorful" or "minimal". | |
| section | No | Only sites with this section captured, e.g. "pricing", "heroes", "faq", "footers". | |
| category | No | Product category, e.g. "AI", "Engineering & Infrastructure". See list_filters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld=false. The description adds valuable context beyond them: it returns plain links (name + homepage URL only), never fetches sites itself, and caps at 50 per call. It stops short of covering pagination or rate limits, so it's strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core behavior, then usage routing. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Though there's no output schema, the description specifies the return shape (name and homepage URL only) and the no-fetch behavior. Combined with high schema coverage for filters, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88%, so parameters are already well-documented. The description adds only 'Same filters as search_sites' and 'up to 50 at a time', which lightly reinforces the limit max but doesn't enrich semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List real SaaS marketing websites as plain links: name and homepage URL only.' It also implicitly distinguishes itself from search_sites and get_site by noting it returns links only. An agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states when to use it ('when you want a batch of live sites to open and study yourself in a browser'), a key exclusion ('this server never fetches them'), and routes to alternatives ('use search_sites or get_site for palettes, fonts, stacks and sections'). This is explicit when/when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sitesFind SaaS websitesARead-onlyIdempotentInspect
Find real SaaS marketing websites to use as design references. Filter by category, page section (e.g. sites with a captured pricing page), visual style, tech stack, font or brand colour, and/or a free-text query (product name or industry). Returns each site's website URL, category, style, stack, colour palette, fonts, captured sections, and a link to its screenshots.
| Name | Required | Description | Default |
|---|---|---|---|
| font | No | Font family used on the site, e.g. "Inter". | |
| color | No | Hex colour; matches sites with a close colour in their palette, e.g. "#5e6ad2". | |
| limit | No | ||
| query | No | Free text, e.g. "developer tools", "linear", "video editing". | |
| stack | No | Tech stack of the marketing site, e.g. "Next.js", "Webflow", "Framer". | |
| style | No | Visual style: "dark", "light", "colorful" or "minimal". | |
| section | No | Only sites with this section captured, e.g. "pricing", "heroes", "faq", "footers". | |
| category | No | Product category, e.g. "AI", "Engineering & Infrastructure". See list_filters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds useful substance by listing exactly which fields are returned (URL, category, style, stack, palette, fonts, sections, screenshot link). It stays silent on result ordering, pagination beyond the limit cap, and the combining logic of multiple filters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero padding. The purpose is front-loaded and the second sentence is a compact, high-value enumeration of the response shape rather than restating the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With eight optional parameters and no output schema, the description carries the right load by describing both the filter surface and the return fields. Gaps remain on how multiple filters compose and what happens when the query matches nothing, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 88%, so the schema already documents nearly every parameter, which sets the baseline at 3. The description does contribute beyond schema by glossing the semantics of `section` ("sites with a captured pricing page") and `query` ("product name or industry") and by implying filters are AND-combined with "and/or"; `limit` receives no mention anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Find real SaaS marketing websites") plus its intended use as design references, and enumerates the returned fields so the agent knows exactly what it gets back. It does not explicitly name its siblings (get_site for a single site, list_filters for facet values), so the differentiation is implied by the plural search framing rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when the tool applies (browsing sites as design references, with an explicit list of admissible filter facets) and even points to list_filters for the category vocabulary. It stops short of saying when to prefer get_site or list_site_links instead, so there are no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_site - First observed
list_filters - First observed
list_site_links - First observed
search_sites
Related MCP Connectors
- A1 GalleryOAuthgallery.a1
Search hand-curated website designs by style, font, colour, section and technology.
Search 400k+ SaaS and software companies by category, technology, country, pricing, and more.
- mcpOAuthcom.gummble
Search 300k+ real app screens, flows, and UX microcopy from 1,500+ shipped products.
Search curated design styles, real product screens, and user flows for evidence-based design work.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides curated real website design references with structured JSON data on type, spacing, palette, and layout. Enables AI agents to search, browse, and analyze over 1,000 sites and their sections.1MIT
- AlicenseNot gradedqualityCmaintenanceStructured design references from 1,000+ curated websites for AI-powered web design. Retrieve real CSS values, typography specs, color palettes, and design rationale via MCP.1MIT
- AlicenseAqualityCmaintenanceEnables AI agents to keyword-search and browse curated UI/UX design inspiration — landing pages, iOS apps, and website templates — and view full-page or per-section screenshots without needing an API key.5MIT

Duchampofficial
AlicenseNot gradedqualityBmaintenanceGives coding agents a curated, reviewable library of landing pages, hero sections, image prompts, motion-video recipes, logo and pitch-deck recipes, fonts and motion backgrounds that they can search, inspect and fetch, then rebuild locally from code. Searches and reference inspection are uncounted, while template, UI and asset fetches share a daily free limit under OAuth sign-in with no API key.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.