MCP server
One call hands an agent the whole system.
An open, unauthenticated, read-only Model Context Protocol endpoint. Point Claude Code at it and ask for a page — it gets the design tokens, an ordered pattern stack, per-pattern instructions, and the acceptance checks the finished page must pass.
Connect — Claude Code
One command, no file to edit.
claude mcp add --transport http rejouice-patterns https://rejouice-patterns.vercel.app/api/mcpRegisters the server for the current project. Add --scope user to make it available in every project on the machine, or --scope project to write a .mcp.json your team can commit. Confirm it took with claude mcp list, which prints the connection status.
Then paste this
Installed and working are different states.
Use the rejouice-patterns MCP server. Call rejouice_get_build_brief for a studio-landing page in the next-tailwind-motion stack, then build it: emit the token block first, follow each pattern's instruction block in the order given, and finish by running the brief's acceptance checks.
Endpoint
POST /api/mcp
aliased at /mcp
Corpus
v2.0.0
31 patterns · 6 recipes
Auth
None
120 requests per 60 seconds per client address, per instance
Other clients
The endpoint is the same everywhere: https://rejouice-patterns.vercel.app/api/mcp. Only the wrapper changes.
A repo — commit .mcp.json
Everyone who clones the repo gets the server.
Write this to .mcp.json at the project root. Claude Code discovers it on open and asks once for approval before connecting. Checking it in is the only method that survives a fresh clone.
{
"mcpServers": {
"rejouice-patterns": {
"type": "http",
"url": "https://rejouice-patterns.vercel.app/api/mcp"
}
}
}Claude Desktop and other config-file clients
Desktop apps and editors configured by JSON.
The same object goes in claude_desktop_config.json, and in the mcp.json an editor reads — check your client's docs for the path, the contents do not change.
{
"mcpServers": {
"rejouice-patterns": {
"type": "http",
"url": "https://rejouice-patterns.vercel.app/api/mcp"
}
}
}Older clients that speak only stdio need a local bridge to reach an HTTP server. mcp-remote is that bridge; nothing on this end changes.
{
"mcpServers": {
"rejouice-patterns": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://rejouice-patterns.vercel.app/api/mcp"
]
}
}
}claude.ai
No terminal, no config file.
Added through the UI as a custom connector. There is no OAuth step and no key to paste, because the server has no authentication to satisfy.
- 01Open Settings, then Connectors.
- 02Choose to add a custom connector.
- 03Paste the endpoint: https://rejouice-patterns.vercel.app/api/mcp
- 04Save. The tools appear under the connector's name.
Verify it answers
Before blaming your client.
A GET returns a plain descriptor, so the endpoint is checkable from a browser address bar. For the real protocol path, POST a tools/list and read the tool names back.
curl -s https://rejouice-patterns.vercel.app/api/mcp
curl -s https://rejouice-patterns.vercel.app/api/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Tools
12 of them, but you only need one to start. rejouice_get_build_brief returns the tokens, the ordered stack, the per-pattern instructions and the acceptance checks in a single call — the rest are for drilling in.
rejouice_get_integration_guideDescribes what this server is, every tool it exposes, how to connect it from Claude Code or any MCP client, and its safety policy. Call this first if you are a service deciding how to consume this corpus.
rejouice_get_build_briefThe one-call entry point for another service. Given a page type and a few style choices, returns a complete Claude Code build brief: the token block to emit, the ordered pattern stack, per-pattern instruction blocks, the stack's conventions, and the acceptance checks. Ingest this and build.
rejouice_list_categoriesList every category in the rejouice-patterns corpus with its pattern count and pattern ids. Start here to see what the corpus covers before searching.
rejouice_search_patternsSearch the pattern corpus by free-text query, category, and tags. Returns ranked summaries with ids you can pass to rejouice_get_pattern. Paginated.
rejouice_get_patternGet one pattern in full: intent, when to use and avoid, anatomy, tunable knobs, accessibility and performance requirements, runnable implementations, and a ready-to-paste instruction block for Claude Code.
rejouice_get_design_tokensGet the design tokens — motion easings and durations, the fluid type scale, colour, space, and layout — as CSS custom properties with usage guidance. These are the substrate every pattern reads from; emit them before building anything else.
rejouice_list_palettesList every named colour palette with its voice, when to reach for it, and the CSS selector that activates it. A palette restyles only colour tokens — motion, type, space and layout are identical across all of them — so this is the cheapest axis on which to change a build's character. Call this before rejouice_get_design_tokens if you do not already know which palette you want.
rejouice_get_page_recipeGet an ordered pattern stack for a page type — which patterns go in which slot, why, the order to build them in, and the acceptance checks the finished page must pass. Use this instead of assembling patterns by hand.
rejouice_suggest_recipeGiven a free-text description of the page someone wants, rank the available page recipes and explain why each fits. Use this when the page type is described in words rather than chosen from the enum — it turns 'a site for my studio with a few case studies' into a recipe id you can pass to rejouice_get_build_brief.
rejouice_get_stack_guideGet the conventions, file layout, dependencies, and known failure modes for implementing these patterns in a specific stack.
rejouice_list_demosList every pattern that has a live, running demo on the public site, with its URL and the reason it renders inline or in an isolated frame. Use this when a human asks to *see* a pattern rather than read about it — every other tool returns text, and this is the only one that returns somewhere to look.
rejouice_review_pattern_stackCheck a proposed set of patterns before building: reports declared conflicts, missing companion patterns, the combined accessibility and performance obligations, and whether the page is over its motion budget. Call this after choosing patterns and before writing code.
Why it is safe to leave open
This server serves a single frozen, public corpus of web design patterns. It has no access to secrets, environment variables, filesystems, databases, user data, or any other network service.
- Read-only. No tool in this server writes, deletes, or mutates anything.
- No credentials exist in this server's reachable scope, so none can be disclosed.
- Tool behaviour is fully determined by schema-validated parameters. Natural-language framing in a parameter value never changes which code runs.
- Every response is scanned for secret-shaped content before it is sent, and the request fails closed on a match.
- Free text supplied by a caller is never echoed back verbatim, so this server cannot be used to relay an injected instruction to another agent.
- No request content is logged.
Protocol revisions: 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05.
All pattern content is original work describing widely used editorial-motion web techniques. It does not reproduce any third party's source code, and it is not scraped from any website.