Reftrixmcp

io.github.TKMD由 GitHub 帳號 TKMD 發布v0.1.8更新於 Oct 27, 2026

Web design analysis with 26 MCP tools: layout, motion, quality, semantic search via pgvector

概覽

AI 產生的概覽

本機 MCP 伺服器,可抓取真實網站並建立可檢索的網頁設計知識庫,涵蓋版面、動態效果、品質與 UI 元件樣式。

可以做什麼
  • 抓取並分析頁面:截圖、辨識區塊、格線與排版,並產生 React、Vue 或 HTML 程式碼
  • 偵測 CSS/JS 動畫並逐格擷取,從原創性、工藝與情境契合度三面向為設計評分
  • 對版面、動態、敘事、背景、響應式與 UI 元件資料進行語意搜尋,並支援影像相似度搜尋
  • 檢視並比較按鈕、圖示、標題等 UI 元件的樣式與版面,執行響應式及無障礙/效能檢查
  • 透過回饋工作階段管理設計偏好檔案,並據此重新排序搜尋結果
適用情境
適合前端工程師、設計師與代理程式開發者,希望助理分析線上網站、擷取可重用的 UI 樣式,並依自然語言或視覺相似度檢索,而不只是看截圖。
執行需求
以本機 Node.js 程序執行(Node.js 20+、pnpm),需 Docker 提供含 pgvector 的 PostgreSQL 18 與 Redis,並安裝 Playwright Chromium。需要 DATABASE_URL(PostgreSQL 連線字串),通常還需 REDIS_URL 與 OLLAMA_BASE_URL;視覺功能需本機 Ollama 與 llama3.2-vision。模型需下載數百 MB 至 1 GB 以上,記憶體至少 16 GB。
安裝前請注意
DATABASE_URL 是機密連線字串,須設定強密碼。伺服器會抓取任意網址,並把分析資料、向量與偏好檔案寫入你的資料庫;重設偏好會永久刪除檔案。頁面內容會送往本機 Ollama,截圖與向量會寫入磁碟,使用前請查閱隱私與資料保留文件。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Reftrixmcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

ReftrixMCP

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.

[License: AGPL-3.0-only] [TypeScript] [PostgreSQL] [MCP] [pnpm]

[ReftrixMCP MCP server]
Japanese / 日本語の概要

ReftrixMCPは、Webデザインパターンをベクトル検索(pgvector HNSW)と RAGで検索可能なナレッジベースに集約し、MCPツール経由でClaude等の AIエージェントと統合するプラットフォームです。

主要機能: レイアウト分析 / モーション検出 / 品質評価 / セマンティック検索 / 横断検索 / 画像類似検索 / レスポンシブ解析 / 嗜好プロファイリング / パーツ分析 / レート制限 / 検索キャッシュ / BullMQ UI / SBOM

40の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

What it does

  • Layout analysis -- auto-detect sections (hero, feature, CTA, etc.), extract grid/typography, and generate React/Vue/HTML code
  • Motion detection -- discover CSS/JS animations with frame capture (15 px/frame video mode), CLS detection via Pixelmatch
  • Quality evaluation -- score designs on three axes (originality, craftsmanship, contextuality) with anti-AI-cliche detection
  • Semantic search -- find layout, motion, narrative, background, and responsive patterns via pgvector HNSW hybrid search
  • Preference profiling -- learn user design preferences through feedback sessions and personalize search results via reranking (GDPR-compliant)
  • Part-level analysis -- extract 16 UI part types (button, icon, heading, etc.) with DINOv2 visual embeddings for visual similarity search
  • Vision integration -- Ollama llama3.2-vision for richer layout, motion, and narrative understanding
  • Section post-processing -- auto merge/split sections by type, heading, and height (Rule 1-4) for optimal structure
  • Multi-tile capture -- split large sections (>viewport height) into tiles for complete DINOv2 visual coverage
  • Blank image detection -- detect lazy-loading unrendered sections and re-capture via Playwright for full coverage
  • Code generation -- convert analyzed sections to React, Vue, or plain HTML with matched motion patterns
  • Unified search -- cross-service search across layout, part, motion, background, and narrative patterns in a single query
  • Image similarity search -- find visually similar designs via DINOv2 embeddings from Base64/URL input (RRF 3-source)
  • Rate limiting -- Token Bucket + Redis Lua (CWE-770 DoS prevention), 3-tier (analysis 10 RPM / search 120 RPM / default 60 RPM)
  • Search cache -- LRU in-memory cache (lru-cache v11) with TTL-based natural expiry (5 min)
  • BullMQ UI -- Bull Board dashboard for monitoring async page.analyze jobs (port 21080)
  • SBOM -- CycloneDX 1.6 auto-generation for EU CRA vulnerability reporting compliance

Why ReftrixMCP

Layout-awareSections, grids, and typography extracted as structured data -- not just screenshots
Motion-awareCSS static analysis + frame-by-frame video capture for real animation behavior
Quality-awareThree-axis scoring with actionable improvement suggestions
Searchable768-dim multilingual embeddings (e5-base) with HNSW index and hybrid RRF ranking
Preference-awareUser preference profiling with feedback-driven reranking across all search tools
Part-aware16 UI part types extracted with DINOv2 visual embeddings for cross-site component comparison
MCP-native40 tools purpose-built for Claude Desktop and MCP Client CLI

Quickstart

Run page.analyze on any URL in under 5 minutes.

Prerequisites

Node.js ^22.23.4 || ^24.22.1 || ^26.12.1, pnpm 10+, Docker & Docker Compose, Ollama

Setup

bash
git clone https://github.com/TKMD/ReftrixMCP.git && cd ReftrixMCPpnpm install                                     # CUDA skip is default; see GPU note belowcp .env.example .env.local                       # edit DATABASE_URL / REDIS_URL as neededcp .env.local packages/database/.env             # Prisma CLI requires this copypnpm docker:up                                   # PostgreSQL 18 + pgvector + Redispnpm db:migrate && pnpm db:seedpnpm buildpnpm exec playwright install chromium            # browser for page crawlingpnpm --filter @reftrixmcp/ml download:dinov2        # DINOv2 visual embedding model (~330 MB)pnpm --filter @reftrixmcp/ml repair:e5-cache --check # (optional) verify multilingual-e5-base ONNX cache (~1.1 GB) integritycurl -fsSL https://ollama.com/install.sh | sh    # install Ollamaollama pull llama3.2-vision                      # vision model (~7.9 GB)ollama serve                                     # keep running in a separate terminal

Note: If you change .env.local, also update packages/database/.env. page.analyze workers are auto-forked by WorkerSupervisor when the MCP server starts (v0.4.0 PR7d-2+). Manual start via pnpm --filter @reftrixmcp/mcp-server worker:start:page is developer-only and requires REFTRIX_ALLOW_MANUAL_WORKER=true to 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.

pnpm "Ignored build scripts": On pnpm install, pnpm 10 prints Ignored build scripts: @prisma/client, esbuild, sharp, ... and suggests Run "pnpm approve-builds". This is expected, not an error — pnpm 10 blocks dependency build/lifecycle scripts by default as a supply-chain safeguard. Setup still completes because sharp and esbuild ship prebuilt binaries, and the Prisma client is generated by the @reftrixmcp/database workspace package's own postinstall (prisma generate) during pnpm install — a workspace lifecycle script, which pnpm does not gate behind the dependency build-script allowlist. Only run pnpm approve-builds if you have a specific reason to let one of these blocked dependencies run its own native build step (onnxruntime-node is already allow-listed via pnpm.onlyBuiltDependencies, so it never appears in the ignored list; and CUDA acceleration is a separate opt-in — see the GPU / CUDA note above — not pnpm approve-builds).

Connect to Claude

Add to your MCP config:

  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
  • MCP Client CLI: .mcp.json in the project root or ~/.claude/.mcp.json
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_me with a secure password. Port 26432 = standard 5432 + 21000 offset.

OLLAMA_BASE_URL is used by the MCP server process; OLLAMA_HOST is used by the worker process. Both must match if Ollama runs on a non-default port.

ENABLE_SECTION_SCREENSHOT_FALLBACK enables 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 outside os.tmpdir() is rejected by default (fail-closed). Set REFTRIX_EMBEDDING_CACHE_ROOT_ALLOW_FALLBACK=true to instead degrade to the default root with a warning.

Example tools

ReftrixMCP provides 40 MCP tools. Key examples:

  • layout.ingest -- fetch a web page, take a screenshot, and extract section patterns
  • layout.search -- semantic search over layout sections by natural-language query
  • motion.detect -- detect CSS/JS animations with video-mode frame capture
  • quality.evaluate -- score design quality on originality, craftsmanship, and contextuality
  • page.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 snapshot
  • responsive.search -- search responsive analysis results by viewport and breakpoint
  • preference.hear -- interactive preference hearing sessions with sample presentation and feedback collection
  • preference.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 embeddings
  • part.inspect -- get detailed part info including computed styles, bounding box, and accessibility
  • part.compare -- compare 2-5 parts side by side on styles, layout, and interaction

Full tool reference: MCP Tools Guide

Architecture

MCP Client (Claude Desktop / Code)  --stdio-->  MCP Server (<!-- gen:tool-count -->40<!-- /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

Documentation

GuideDescription
Getting StartedInstallation, setup, and first analysis
MCP Tools GuideAll 40 tools with usage examples
page.analyze Deep DiveAsync analysis flow and data structures
TroubleshootingCommon issues and solutions

Known limitations

  • onnxruntime-node is an optional dependency that pnpm install installs by default (it powers the ML features — embedding and visual search). If it fails to install on an unsupported platform, or you skip it with pnpm install --no-optional, the non-ML tools (layout analysis, quality evaluation, code generation) still work
  • CPU-mode embedding takes ~2-5 s per text; GPU recommended for batch workloads
  • Minimum 16 GB RAM; 32 GB recommended for concurrent analysis with Ollama Vision
  • First embedding call downloads ~1.1 GB ONNX model (multilingual-e5-base, FP32) into the transformers.js cache. Verify integrity at any time with pnpm --filter @reftrixmcp/ml repair:e5-cache --check; pass --repair to re-download on size/SHA-256 mismatch, or --force to always re-download
  • page.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)
  • Vision analysis (layout, motion, narrative) requires Ollama + llama3.2-vision running locally
  • DINOv2 visual embedding model requires ~330 MB download (ViT-B/14 ONNX)

Release notes / リリースノート

  • npm publish automation — Trusted Publishing / OIDC (2026-07-12): npm publishing is now driven by CI. Creating a GitHub Release for a v* tag triggers .github/workflows/publish.yml, which publishes the 5 packages (@reftrixmcp/core, @reftrixmcp/database, @reftrixmcp/ml, @reftrixmcp/webdesign-core, @reftrixmcp/mcp-server) in dependency order via npm Trusted Publishing (OIDC) — no NPM_TOKEN secret is used, and every package is published with --provenance. A verify job builds and validates all tarballs first; a publish job runs only after the npm-publish GitHub Environment's required-reviewer approval. / npm 公開自動化 — Trusted Publishing / OIDC(2026-07-12): npm 公開は CI 駆動になりました。v* タグの GitHub Release を作成すると .github/workflows/publish.yml が起動し、5 パッケージ(@reftrixmcp/core・@reftrixmcp/database・@reftrixmcp/ml・@reftrixmcp/webdesign-core・@reftrixmcp/mcp-server)を依存順に npm Trusted Publishing (OIDC) で公開します — NPM_TOKEN シークレットは使用せず、各パッケージは --provenance 付きで公開されます。verify job が先に全 tarball を build・検証し、publish job は npm-publish GitHub Environment の required-reviewer 承認の後にのみ実行されます。
  • Plan v4.4 PR-N (2026-05-17): WorkerSupervisorOptions.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。

License

AGPL-3.0-only -- see LICENSE.

Network use requires source disclosure per Section 13. Source: github.com/TKMD/ReftrixMCP Commercial license: [email protected]

Contributing

See CONTRIBUTING.md.

Security

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

來源:README.md,提交 52ef3b8

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.8最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分