Connects Claude to a PostgreSQL-backed design knowledge base that analyzes websites for layout structure, CSS/JS animations, and quality scoring. Exposes 39 tools across layout extraction (sections, grids, typography with React/Vue/HTML codegen), motion detection (frame-by-frame video capture plus Pixelmatch CLS), semantic search via pgvector HNSW with multilingual embeddings, and part-level analysis of 16 UI component types using DINOv2 visual embeddings. Includes preference profiling with feedback-driven reranking and unified cross-service search. Reach for this when you need to extract reusable design patterns from production sites, search for similar UI implementations semantically or visually, or build a queryable library of web design decisions with structured metadata.
Web design knowledge base platform -- layout analysis, motion detection, and quality evaluation via MCP tools.
For frontend engineers, designers, and AI-agent builders who want to analyze real websites and retrieve reusable UI patterns via Claude or any MCP client.
ReftrixMCPは、Webデザインパターンをベクトル検索(pgvector HNSW)と RAGで検索可能なナレッジベースに集約し、MCPツール経由でClaude等の AIエージェントと統合するプラットフォームです。
主要機能: レイアウト分析 / モーション検出 / 品質評価 / セマンティック検索 / 横断検索 / 画像類似検索 / レスポンシブ解析 / 嗜好プロファイリング / パーツ分析 / レート制限 / 検索キャッシュ / BullMQ UI / SBOM
39のMCPツールを提供: Layout(5) / Motion(2) / Quality(1) / Page(4) / Narrative(1) / Background(1) / Responsive(2) / Preference(3) / Part(3) / Style(1) / Brief(1) / System(1) / Search(2) / Design(5) / Data(2) / Audit(1) / Embedding(1) / Accessibility(1) / Performance(1) / Report(1)
詳細な日本語ドキュメント: docs/README.ja.md
| Layout-aware | Sections, grids, and typography extracted as structured data -- not just screenshots |
| Motion-aware | CSS static analysis + frame-by-frame video capture for real animation behavior |
| Quality-aware | Three-axis scoring with actionable improvement suggestions |
| Searchable | 768-dim multilingual embeddings (e5-base) with HNSW index and hybrid RRF ranking |
| Preference-aware | User preference profiling with feedback-driven reranking across all search tools |
| Part-aware | 16 UI part types extracted with DINOv2 visual embeddings for cross-site component comparison |
| MCP-native | 39 tools purpose-built for Claude Desktop and MCP Client CLI |
Run
page.analyzeon any URL in under 5 minutes.
Node.js 20+, pnpm 10+, Docker & Docker Compose, Ollama
git clone https://github.com/TKMD/ReftrixMCP.git && cd ReftrixMCP
pnpm install # CUDA skip is default; see GPU note below
cp .env.example .env.local # edit DATABASE_URL / REDIS_URL as needed
cp .env.local packages/database/.env # Prisma CLI requires this copy
pnpm docker:up # PostgreSQL 18 + pgvector + Redis
pnpm db:migrate && pnpm db:seed
pnpm build
pnpm exec playwright install chromium # browser for page crawling
pnpm --filter @reftrixmcp/ml download:dinov2 # DINOv2 visual embedding model (~800 MB)
pnpm --filter @reftrixmcp/ml repair:e5-cache --check # (optional) verify multilingual-e5-base ONNX cache (~1.1 GB) integrity
curl -fsSL https://ollama.com/install.sh | sh # install Ollama
ollama pull llama3.2-vision # vision model (~7.9 GB)
ollama serve # keep running in a separate terminal
Note: If you change
.env.local, also updatepackages/database/.env.page.analyzeworkers are auto-forked byWorkerSupervisorwhen the MCP server starts (v0.4.0 PR7d-2+). Manual start viapnpm --filter @reftrixmcp/mcp-server worker:start:pageis developer-only and requiresREFTRIX_ALLOW_MANUAL_WORKER=trueto bypass the Redis-based dual-run guard if the MCP server is also running. See Getting Started for GPU configuration and details.GPU / CUDA: CUDA binary download is skipped by default (CPU fallback). For GPU acceleration setup, see Troubleshooting: CUDA Detection.
Add to your MCP config:
~/Library/Application Support/Claude/claude_desktop_config.json (macOS).mcp.json in the project root or ~/.claude/.mcp.json{
"mcpServers": {
"reftrix": {
"command": "node",
"args": ["/absolute/path/to/ReftrixMCP/apps/mcp-server/dist/index.js"],
"env": {
"NODE_ENV": "development",
"DATABASE_URL": "postgresql://reftrix:change_me@localhost:26432/reftrix?schema=public",
"REDIS_URL": "redis://localhost:27379",
"OLLAMA_BASE_URL": "http://localhost:11434",
"OLLAMA_HOST": "http://localhost:11434",
"ENABLE_SECTION_SCREENSHOT_FALLBACK": "true"
}
}
}
}
Replace
change_mewith a secure password. Port 26432 = standard 5432 + 21000 offset.
OLLAMA_BASE_URLis used by the MCP server process;OLLAMA_HOSTis used by the worker process. Both must match if Ollama runs on a non-default port.
ENABLE_SECTION_SCREENSHOT_FALLBACKenables Playwright-based individual section screenshots for sections outside the initial screenshot range (WebGL/lazy-rendered pages). This significantly improves DINOv2 visual embedding coverage. Set to"false"to disable.Optional environment variables (defaults work out of the box):
MAX_TILES_PER_SECTION(default 20, max 100) -- max tiles per section for multi-tile capture.BLANK_IMAGE_STDDEV_THRESHOLD(default 5.0) -- stddev threshold for blank image detection.DUPLICATE_VECTOR_THRESHOLD(default 0.995) -- cosine similarity threshold for vision embedding dedup.EMBEDDING_IDLE_TIMEOUT_MS(default 30000) -- ONNX Worker VRAM auto-release timer (0 to disable).DINOV2_MODEL_PATH-- custom DINOv2 ViT-B/14 ONNX model path.EMBEDDING_CACHE_ENABLED(default true) -- enable/disable the Layout Embedding disk cache (additive opt-out flag; set"false"to write no cache files).REFTRIX_EMBEDDING_CACHE_ROOT(default/tmp/reftrix-embedding-cache) -- embedding cache root; a root resolving outsideos.tmpdir()is rejected by default (fail-closed). SetREFTRIX_EMBEDDING_CACHE_ROOT_ALLOW_FALLBACK=trueto instead degrade to the default root with a warning.
ReftrixMCP provides 39 MCP tools. Key examples:
layout.ingest -- fetch a web page, take a screenshot, and extract section patternslayout.search -- semantic search over layout sections by natural-language querymotion.detect -- detect CSS/JS animations with video-mode frame capturequality.evaluate -- score design quality on originality, craftsmanship, and contextualitypage.analyze -- unified analysis: layout + motion + quality + responsive in one call (async via BullMQ), with opt-in Phase 7.5: accessibility audit, performance evaluation, and auto snapshotresponsive.search -- search responsive analysis results by viewport and breakpointpreference.hear -- interactive preference hearing sessions with sample presentation and feedback collectionpreference.get -- retrieve preference profiles (with GDPR data portability support)preference.reset -- reset or permanently delete preference profiles (GDPR Right to Erasure)part.search -- semantic search over UI parts with visual (DINOv2) or text embeddingspart.inspect -- get detailed part info including computed styles, bounding box, and accessibilitypart.compare -- compare 2-5 parts side by side on styles, layout, and interactionFull tool reference: MCP Tools Guide
MCP Client (Claude Desktop / Code) --stdio--> MCP Server (<!-- gen:tool-count -->39<!-- /gen:tool-count --> tools, Zod)
+-- Service Layer: Playwright, Sharp+Pixelmatch, DOMPurify
+-- ML Layer: ONNX Runtime (multilingual-e5-base + DINOv2 ViT-B/14, 768-dim)
+-- BullMQ Workers: page.analyze, quality.evaluate
+-- PostgreSQL 18 + pgvector 0.8 (HNSW, tsvector) + Redis 7
| Guide | Description |
|---|---|
| Getting Started | Installation, setup, and first analysis |
| MCP Tools Guide | All 39 tools with usage examples |
| page.analyze Deep Dive | Async analysis flow and data structures |
| Troubleshooting | Common issues and solutions |
onnxruntime-node is an optional dependency; ML features (embedding, visual search) require explicit install: pnpm add onnxruntime-node. Non-ML tools (layout analysis, quality evaluation, code generation) work without itpnpm --filter @reftrixmcp/ml repair:e5-cache --check; pass --repair to re-download on size/SHA-256 mismatch, or --force to always re-downloadpage.analyze workers are auto-forked by WorkerSupervisor when the MCP server starts (v0.4.0 PR7d-2+); manual start is developer-only (REFTRIX_ALLOW_MANUAL_WORKER=true required when MCP server is running)llama3.2-vision running locallyWorkerSupervisorOptions.restartDelayMs field formal removal + env-only canonical SSOT consolidation per ADR-0035 Amendment 1 §Decision 5. The WORKER_RESTART_DELAY_MS and EMBEDDING_BACKFILL_RESTART_DELAY_MS environment variables are now the sole source of truth for per-type restart cooldown values; resolution is performed via getRestartDelayMsForType(workerType). Server version bumped to 0.6.0. / WorkerSupervisorOptions.restartDelayMs フィールドを正式削除し、ADR-0035 Amendment 1 §Decision 5 に従い env-only canonical SSOT へ一元化。WORKER_RESTART_DELAY_MS と EMBEDDING_BACKFILL_RESTART_DELAY_MS 環境変数が per-type restart cooldown 値の唯一の真実源となり、getRestartDelayMsForType(workerType) 経由で解決される。サーバーバージョンを 0.6.0 に bump。AGPL-3.0-only -- see LICENSE.
Network use requires source disclosure per Section 13. Source: github.com/TKMD/ReftrixMCP Commercial license: licence@reftrix.io
See CONTRIBUTING.md.
Report vulnerabilities per SECURITY.md. Privacy: docs/legal/PRIVACY_POLICY.md | Profiling privacy: apps/mcp-server/PRIVACY.md | Data retention: apps/mcp-server/DATA_RETENTION.md | Third-party licenses: THIRDPARTY_LICENSES.md
DATABASE_URL*secretPostgreSQL connection string with pgvector extension
REDIS_URLRedis/Valkey connection URL for BullMQ job queue
OLLAMA_BASE_URLOllama API base URL for Vision LLM integration (default: http://localhost:11434)
miapre/html-to-figma-design-system
ie3jp/illustrator-mcp-server
coding-solo/godot-mcp
ivanmurzak/unity-mcp
yctimlin/mcp_excalidraw
figma/mcp-server-guide