Documentation

The swaggin MCP server

189 real websites and apps, 2,429 screenshots, searchable by how a design feels and delivered straight into your agent's vision context. Search and metadata are free, and a free account is all the server asks for.

Connect

One hosted server over Streamable HTTP. Nothing to install: your client registers itself, opens a browser when sign-in is needed, and free previews work from the first call.

one command, then /mcp to sign in
claude mcp add --transport http swaggin https://mcp.swaggin.dev

Any other MCP host takes the same endpoint. If you would rather your agent did the wiring, the setup section has a prompt that configures the connection and verifies the tools.

Sign-in and licences

The hosted server is an OAuth 2.1 resource server. Sign-in happens in a browser, from inside your client.

OAuth, on the hosted server

Your client requests the scopes openid asset:read offline_access and gets an access token issued for this server specifically. In Claude Code, open /mcp. In Codex, run codex mcp login swaggin. Sign in with the email you used at checkout and Pro access applies on its own.

Reconnect after you upgrade

Pro access is stamped into the token when it is issued, so a purchase made mid-session is not visible to a token that predates it. Reconnect the server and the next token carries it.

Where a licence key fits

A key is not a bearer token: the hosted server accepts OAuth access tokens only, and rejects anything else, including a valid key and a valid token issued for another swaggin service. What a key does is link an existing licence to the account you sign in with, which is what you need if you sign in through GitHub with a different address than the one you bought with. The browser flow asks for it at the point it is needed.

CI and headless machines

Where no browser can open, the CLI runs the same tools over stdio and reads a key from the environment instead. An OAuth session still wins when one exists, because it is per-user, short-lived, and revocable, and the key is the fallback.

env wins over a saved key
SWAGGIN_LICENSE=your-key

The CLI is not published to npm yet, so this path means running it from a checkout. Email hi@swaggin.dev if you need it before then.

Access and limits

What it takes to use the connector, and the ceilings it enforces once you are in.

An account, but not a licence

The hosted server authorises every call, so taxonomy, search, and free previews all need a signed-in account. The account itself is free and takes one browser round trip through GitHub or a magic link, which your client starts for you when it first connects. A licence is only the difference between preview resolution and full resolution.

Scope and audience

A token needs the asset:read scope and has to have been issued for this server. A token minted for another swaggin service is refused here even though it is otherwise valid.

Rate and volume

Licensed images are capped at 60 per minute and 10,000 per calendar month for each account, counted in UTC and reset at the start of the next month. Hitting the minute limit returns a retry delay rather than a failure you have to guess at. Search, metadata, taxonomy, and free previews are not counted against either number.

Six images per call

get_screenshots returns at most six images in one call. Extra ids are dropped and the response says so, so shortlist with search_designs first.

No regional restrictions

The server runs at Cloudflare's edge and is available everywhere. There is no country gating, no waitlist, and no per-seat or per-organisation limit: one account can connect from as many clients as you like.

Tools

Five tools, ordered so the expensive one is never called blindly. Read the taxonomy, search it for free, then look at six images at most.

list_taxonomy

Every valid style, category, pattern, platform, and viewport id, with the written cues behind each style. Filters are a controlled vocabulary, so an id that was guessed rather than read from here matches nothing.

Returns Text. No images, no licence needed.

search_designs

Find entries by free text, taxonomy filters, or both. Metadata only, so it is cheap to call broadly and the right way to build a shortlist before spending any image budget.

querystring, optional
Plain words, such as 'a dark terminal-style dev tool' or 'pricing with a comparison table'. Matched against name, description, keywords, styles, and captions, and common words are mapped onto the taxonomy for you.
stylesstring[], optional
Style ids. OR-ed.
categoriesstring[], optional
Category ids. OR-ed.
patternsstring[], optional
Pattern ids. Narrows results to screenshots showing that screen type.
platformsstring[], optional
Platform ids. OR-ed.
limit1 to 50, default 10
How many entries come back.

Returns Text: matching entries with their screenshot ids. No images, no licence needed.

get_screenshots

The images themselves, for the handful of designs worth looking at. Six per call at most, because images are the expensive thing in a context window.

idsstring[], required
Screenshot ids from search_designs, in the form <slug>/<filename>.
includePaidboolean, optional
Omit it and you get licensed assets when the account is licensed, previews otherwise. false forces previews even with a licence. true still requires one.

Returns Images. Low-resolution folds are free. Crisp folds, full-page overviews, and segments need a licence, and licensed objects answer 402 without one.

get_site

The full record for one entry, including every screenshot id and caption. Accepts a slug, a URL, or a product name.

slugstring, required
Registry slug, URL, or name.

Returns Text. No images, no licence needed.

random_inspiration

A sampled set of entries for when the brief is open-ended and you want a starting point rather than an answer.

stylesstring[], optional
Constrain the sample to these styles.
count1 to 10, default 3
How many entries to sample.
seedinteger, optional
Reproduce a previous sample.

Returns Text. No images, no licence needed.

The same reference in the form an agent reads is at the agent guide, also served as llms.txt.

How to prompt

Vague prompts get one search call and no images, which is the same as not using swaggin at all. These are the asks that make it earn its place.

Build something and make it look good

Name what you are building, then tell the agent to look at real examples before it writes any code. That one clause is the whole product.

  • Build the pricing page. Look at some real, well-designed pricing pages first so it does not come out generic.
  • Add an onboarding flow, based on how the best apps actually do onboarding rather than your defaults.

Work out why yours looks worse

The hardest question to answer from memory and the easiest to answer from six screenshots.

  • This page looks amateur and I do not know why. Compare it to some genuinely well-designed versions of the same thing and tell me the five concrete differences.
  • Screenshot our dashboard, then pull up a few dashboards that look expensive. What are they doing that we are not?

Choose a direction before you commit

Three real directions with references beat one description in prose.

  • We are a note-taking app. Show me what we could look like in three different visual directions, with real examples of each, then mock our homepage three ways.
  • Everyone in our category looks the same. Show me what that convention is, and one way to break it that still feels credible.

Turn references into a system

Screenshots are the input. Tokens are the output you keep.

  • Look at a handful of sites with the feel we are going for and turn what they have in common into design tokens: type scale, spacing, radii, shadows, motion.
  • Find some restrained, data-heavy interfaces and tell me the rules they follow about when colour is allowed to appear.

The screens nobody bothers to design

Empty states, error states, changelogs, command palettes. The screens that make a product feel finished.

  • Design our empty states properly. Find examples of apps that treat empty states as real screens.
  • Our error pages are the browser default. Show me some good ones and make ours match the rest of the product.

Free and Pro

The free tier is real. Everything except full-resolution imagery costs nothing, and a free account is the only thing standing in front of it.

Free, with any account

All registry metadata, the full taxonomy, every search, and low-resolution fold previews. The gallery on this site needs no account at all.

What a licence unlocks

Crisp folds, full-page overviews, and page segments. Licensed objects answer HTTP 402 without one, so an agent can detect the boundary from the response instead of guessing at it.

Pricing and fair use

Pro is $9.99 per month and Lifetime is $199 as a single payment. Both include 10,000 image requests per month as fair use. Search, metadata, taxonomy, and free previews do not touch that allowance. See pricing or the FAQ for billing questions.

What you may do with the images

Screenshots belong to the sites they depict. They are reference material for design decisions, not assets to redistribute, and any site owner can request removal.

The server lives at mcp.swaggin.dev. Something here wrong or missing? Email hi@swaggin.dev.