MCP server that gives AI agents access to saaspo.com — the SaaS web design inspiration library. Search 3,000+ landing pages and 700+ sections by style, industry and section type, and pull screenshots straight into the agent's context.
Saaspo MCP demonstrates solid tool design with clear naming, comprehensive descriptions, and well-structured schemas. All 6 tools follow verb_noun conventions (get_, search_). Descriptions are detailed and contextual (avg ~180 chars), exceeding the 10-1024 char baseline. Input schemas use Zod with proper type definitions and parameter descriptions. However, output schemas are not formally documented, responses are JSON-stringified without explicit schema declarations. Error handling is minimal; tools return results or fail silently without recovery guidance. No tool annotations (readOnlyHint, destructiveHint) despite all being read-only operations. Pagination is well-implemented (limit, offset, totalMatches). Parameter naming is consistent and clear.
Lists every filter value the library understands — page types, visual styles (e.g. Dark Mode, Bento, Neobrutalism, Gradients, Big Type), industries, asset styles, tech stacks, section types and section tags — with how many examples exist for each. Call this FIRST to translate a design brief or 'vibe' into concrete search filters.
Full record for one page: live website URL, all tags, screenshot variants, the company's other pages in the library, and any individually-captured sections from the same company.
Random pages from the library — useful for divergent exploration when the brief is open-ended, or to escape a local maximum of taste.
Returns the actual screenshot image of a page or section so you can SEE the design. For pages choose a variant: 'desktop' (above-the-fold, default), 'full' (entire page top to bottom — tall, delivered in segments; iterate the segment parameter to walk down the page), or 'og' (social image). Section slugs return the section capture. Always view references before designing from them.
Search full SaaS pages (landing, pricing, about, …) by style, industry, page type, stack and free text. styles/assets must ALL match (use them to narrow, e.g. ['Dark Mode','Bento']); industries match ANY. Returns compact summaries — follow up with get_page_details and get_screenshot on the promising ones.
Output schemas not formally documented. Tools return JSON-stringified responses without explicit schema declarations. LLMs cannot reliably parse or plan downstream calls based on response structure.
No tool annotations despite all tools being read-only. Missing readOnlyHint annotations prevent agents from understanding which tools are safe to call speculatively without side effects.
Minimal error handling. Tools return results or fail silently without actionable recovery guidance. No categorization of errors as retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Search individual page sections (Hero, Pricing, Testimonials, Footer, FAQs, CTA, Features, How It Works, …) — perfect for mixing and matching: take the hero pattern from one product and the pricing table from another. tags must ALL match.
get_screenshot variant parameter uses enum but not formally declared as such in schema. Enum values (desktop|full|og) are documented in description but not in JSON Schema type.
Parameter descriptions reference external discovery (get_design_vocabulary) but do not include inline examples of valid values. LLMs may hallucinate invalid filter values.