ReftrixMCP
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.
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
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
Related MCP server: firecrawl-mcp-server
Why ReftrixMCP
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 |
Quickstart
Run
page.analyzeon any URL in under 5 minutes.
Prerequisites
Node.js 20+, pnpm 10+, Docker & Docker Compose, Ollama
Setup
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)
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 terminalNote: 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.
Connect to Claude
Add to your MCP config:
Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)MCP Client CLI:
.mcp.jsonin 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.
Example tools
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 interaction
Full tool reference: MCP Tools Guide
Architecture
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 7Documentation
Guide | Description |
Installation, setup, and first analysis | |
All 39 tools with usage examples | |
Async analysis flow and data structures | |
Common issues and solutions |
Known limitations
onnxruntime-nodeis 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 itCPU-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 ~400 MB model (multilingual-e5-base)
page.analyzeworkers are auto-forked byWorkerSupervisorwhen the MCP server starts (v0.4.0 PR7d-2+); manual start is developer-only (REFTRIX_ALLOW_MANUAL_WORKER=truerequired when MCP server is running)Vision analysis (layout, motion, narrative) requires Ollama +
llama3.2-visionrunning locallyDINOv2 visual embedding model requires ~800 MB download (ViT-B/14 ONNX)
License
AGPL-3.0-only -- see LICENSE.
Network use requires source disclosure per Section 13. Source: github.com/TKMD/ReftrixMCP Commercial license: licence@reftrix.io
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
Available Tools
40 toolsaccessibility.auditARead-onlyIdempotent
WCAG 2.1 accessibility audit using axe-core with contrast ratio checking. Analyzes HTML or URL for WCAG A/AA/AAA compliance, detects violations with severity classification, calculates accessibility score (0-100), and checks text/background contrast ratios.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL to audit (mutually exclusive with html). SSRF-validated. | |
| html | No | HTML content to audit directly (max 10MB, mutually exclusive with url). | |
| level | No | WCAG conformance level to check (default: AA). | AA |
| include_passes | No | Include passed accessibility rules in response (default: false). | |
| include_contrast | No | Include OKLCH-based contrast ratio check for text/background pairs (default: true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, openWorldHint. Description adds behavioral context: uses axe-core engine, checks contrast ratios, calculates accessibility score (0-100), and detects violations with severity classification. No contradictions. Adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph, front-loaded with the primary purpose. No wasted words, but could be more structured (e.g., bullet points) to improve scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description adequately explains the return values (violations, severity, score, contrast ratios). The 5 parameters are well-documented in the schema. Description is sufficiently complete for an agent to understand usage and outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. Description adds context about scoring and contrast ratio checking but does not significantly enhance parameter understanding beyond the schema's descriptions and constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states a specific verb and resource: 'WCAG 2.1 accessibility audit using axe-core' with contrast ratio checking. It enumerates specific outputs (violations, severity, score, contrast ratios) and distinguishes from siblings like 'audit.query' and 'quality.evaluate' by being highly specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use for accessibility audit but does not provide explicit guidance on when to use this tool versus alternatives (e.g., audit.query or quality.evaluate). No when-not-to-use or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit.queryBRead-onlyIdempotent
監査ログを検索します。GDPR Art.30に基づく処理活動記録の閲覧。Query audit logs. View records of processing activities per GDPR Art.30.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 結果上限(最大100、デフォルト20) / Result limit (max 100, default 20) | |
| action | No | アクションフィルタ(例: data.delete, page.analyze) / Action filter (e.g., data.delete, page.analyze) | |
| end_date | No | 終了日時(ISO 8601形式) / End date (ISO 8601 format) | |
| start_date | No | 開始日時(ISO 8601形式) / Start date (ISO 8601 format) | |
| target_type | No | ターゲットタイプフィルタ(例: web_page, preference_profile) / Target type filter (e.g., web_page, preference_profile) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds GDPR context but does not disclose other behaviors like pagination or rate limits. Given annotations, the description provides adequate additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with the purpose in both Japanese and English. Every sentence adds value with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a query with 5 parameters, no output schema, and annotations covering safety, the description is minimally adequate but lacks details on return format or usage examples. It could be more complete for a query tool without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have descriptions in the input schema (100% coverage), so the schema already explains parameter meaning. The description does not add extra value beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as querying audit logs and references GDPR Art.30, which is specific. However, it does not strongly differentiate from sibling tools like search.unified, but the audit log domain is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as search.unified or data.delete. There is no mention of prerequisites or applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
background.searchARead-onlyIdempotent
BackgroundDesignをセマンティック検索します。グラデーション、グラスモーフィズム、SVG背景等の背景デザインパターンを自然言語で検索できます。designType(14種類)やwebPageIdでフィルタリング可能です。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 取得件数(1-50、デフォルト: 10) | |
| query | Yes | 検索クエリ(自然言語、1-500文字) | |
| offset | No | オフセット(0以上、デフォルト: 0) | |
| filters | No | 検索フィルター | |
| profile_id | No | 嗜好プロファイルID(検索結果のリランキングに使用) / Preference profile ID (used for search result reranking) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true, which the description does not contradict. The description adds context about semantic search and filter capabilities, reinforcing the non-destructive, read-only nature. No behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading the core purpose. Every sentence adds value: first states the action, second explains filtering capability. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage and annotations, the description completes the picture for a search tool. It lacks mention of result format or pagination, but these are typical for search and can be inferred from the schema's limit/offset parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so each parameter is already well-documented. The description only mentions query and two filter fields, adding minimal extra meaning. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs semantic search for background designs, specifying types like gradients, glassmorphism, and SVG backgrounds. It distinguishes from siblings such as design.search_by_image and layout.search by focusing on background design patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for natural language search of background designs and mentions filtering, but does not explicitly state when to use this tool versus alternatives like design.search_by_image or search.facets. No exclusion criteria or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brief.validateARead-onlyIdempotent
Validate design brief and return completeness score with improvement suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| brief | Yes | Design brief to validate | |
| strictMode | No | Strict mode: require description, tone, colorPreferences, references (2+) (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, indicating safe, idempotent behavior. The description adds that it returns a completeness score and improvement suggestions, but this is consistent and adds moderate transparency. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action and result. It is concise but could be slightly expanded to mention the strictMode parameter. Still, it earns its place without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a basic understanding of the output (completeness score and suggestions), but lacks details on validation criteria or return format. Given the complexity of the input schema and no output schema, more context would be helpful. Score 3 is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents each parameter. The description does not add additional semantic meaning beyond what is in the schema, which is acceptable per guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'validate' with the resource 'design brief' and mentions the return of a completeness score and improvement suggestions. This clearly states the tool's function and distinguishes it from sibling tools like 'accessibility.audit' or 'quality.evaluate'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, but the tool's unique purpose among siblings implies its usage. A score of 3 reflects that usage is implied rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data.deleteA
GDPR Art.17「忘れられる権利」/ CCPA §1798.105 に基づくデータ完全削除。page(全関連テーブルCASCADE DELETE)、profile(嗜好プロファイル完全削除)、all_user_data(全ユーザーデータ一括削除)から選択。confirm: true 必須。target=page / all_user_data では DB 削除前に embedding-backfill Queue の滞留ジョブ(7カテゴリ)も削除し、非同期 backfill による削除済みデータ復活を防止する。GDPR Art.17 / CCPA §1798.105 Right to Erasure. Permanently deletes all data for the specified target. Supports page (CASCADE DELETE), profile (hard delete), all_user_data (bulk delete). confirm: true is required. For target=page / all_user_data, embedding-backfill queue jobs (7 categories) are also removed before DB deletion to prevent async backfill from resurrecting erased data.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 対象ID(UUIDv7形式) / Target ID (UUIDv7 format). page → web_page.id, profile/all_user_data → preference_profile.id | |
| reason | Yes | 削除理由(GDPR監査要件、1-500文字) / Deletion reason (GDPR audit requirement, 1-500 chars) | |
| target | Yes | 削除対象 / Deletion target: page (web page + all related data), profile (preference profile + signals), all_user_data (all pages + profile) | |
| confirm | Yes | 削除確認フラグ(true必須、誤削除防止) / Deletion confirmation flag (must be true) | |
| page_ids | No | ページID配列(target=all_user_data時のみ、最大100件) / Page IDs (only for target=all_user_data, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show readOnlyHint=false and idempotentHint=false, matching destructive nature. Description adds critical details: cascade delete, queue job removal to prevent resurrection. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is bilingual (Japanese first, then English), which adds redundancy. While comprehensive, it could be more concise by merging both languages into one. Core info is front-loaded but length may reduce readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description does not mention what the tool returns (e.g., success message, deleted count). An agent cannot know the response format. This is a significant gap for a destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions. The description adds value by explaining the embedding-backfill queue removal for target=page/all_user_data and clarifying that confirm:true is mandatory, supplementing the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool performs permanent data deletion under GDPR/CCPA for specific targets (page, profile, all_user_data). Verb 'delete' plus resource 'data' with explicit legal context. Siblings include only data.export (export, not delete), so no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains when to use (GDPR/CCPA deletion) and provides target-specific guidance. No explicit when-not-to or alternatives (e.g., preference.reset might be softer), but context is clear enough for an agent to differentiate from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data.exportARead-onlyIdempotent
GDPR Art.20「データポータビリティの権利」に基づくデータエクスポート。指定されたpage/profileの全関連データをJSON形式でエクスポート。PII情報を明示的にマーキング。GDPR Art.20 Right to Data Portability. Exports all related data for the specified target in JSON format. PII fields are explicitly marked.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 対象ID(UUIDv7形式) / Target ID (UUIDv7 format) | |
| target | Yes | エクスポート対象 / Export target: page (web page + all related data), profile (preference profile + signals) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true, indicating safe behavior. Description adds valuable context: exports 'all related data', JSON format, and PII marking. Does not contradict annotations. Could be more specific about scope limits or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is succinct, starting with the core purpose (GDPR export), then details (target, format, PII). Two languages but no wasted sentences. Every part adds value and is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given tool simplicity (2 params, no output schema) and rich annotations, description covers export purpose, target, format, and PII marking. Missing details like return behavior (file vs stream) or error scenarios, but overall adequate for a compliance tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description adds context by expanding on enum values for 'target' (e.g., 'page (web page + all related data)') and explaining UUID format, enriching beyond schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states tool exports data under GDPR Art.20 for data portability, specifying targets (page/profile), format (JSON), and PII marking. This distinctively separates it from sibling tools like data.delete (deletion) and audit.query (querying), establishing a unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly links tool usage to GDPR Art.20 right to data portability, giving clear context for when to use. However, does not explicitly state when not to use or mention alternative tools for general data retrieval, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design.compareARead-onlyIdempotent
2-5件のWebページをレイアウト・視覚・品質・カラーの4軸で比較し、ペアワイズ類似度スコア(0-1)を算出します。include_detailsで共通パターンと差分ポイントも取得可能。 / Compare 2-5 web pages across layout, visual, quality, and color dimensions. Returns pairwise similarity scores (0-1). Set include_details for common patterns and key differences.
| Name | Required | Description | Default |
|---|---|---|---|
| page_ids | Yes | 比較対象ページID(2-5件、UUID形式) / Page IDs to compare (2-5, UUID format) | |
| dimensions | No | 比較次元(デフォルト: 全4次元) / Comparison dimensions (default: all 4) | |
| include_details | No | 共通パターン・差分ポイントを含めるか(デフォルト: false) / Include details (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds value by explaining the return format (pairwise scores) and optional details. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences per language, front-loaded with purpose and result. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description covers return values (pairwise scores, optional details). Parameters are fully documented. Sufficient for agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description adds meaning beyond schema by clarifying that include_details yields common patterns and key differences, and that scores range from 0 to 1. The bilingual repetition reinforces understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Bilingual description clearly states the tool compares 2-5 web pages across 4 specific dimensions (layout, visual, quality, color) and returns pairwise similarity scores (0-1). Differentiates from siblings like design.track_changes and design.similar_site by specifying multi-page pairwise comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains when to use (comparing 2-5 pages across design dimensions) and what to expect. However, it does not explicitly exclude use cases or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design.regression_testARead-onlyIdempotent
ベースラインスナップショットと現在のWebページをPixelmatchでピクセルレベル比較し、閾値ベースのpass/fail判定を行います。diff画像(Base64 PNG)と変更ピクセル割合を返却します。design.track_changesのsnapshotアクションで保存したスナップショットをベースラインとして使用します。 / Pixel-level comparison between baseline snapshot and current web page via Pixelmatch. Returns threshold-based pass/fail, diff image (Base64 PNG), and change percentage. Use snapshots from design.track_changes snapshot action as baseline.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 比較対象のWebページURL / Target web page URL | |
| threshold | No | pass/fail閾値(デフォルト0.001 = 0.1%) / Threshold (default 0.001 = 0.1%) | |
| viewport_width | No | ビューポート幅 / Viewport width | |
| viewport_height | No | ビューポート高さ / Viewport height | |
| baseline_snapshot_id | Yes | ベースラインスナップショットID(design.track_changesで取得) / Baseline snapshot ID (from design.track_changes) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description does not need to restate those. It adds information about the comparison algorithm (Pixelmatch) and output format (diff image, change percentage). No contradictions, but no additional behavioral details beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences that front-load purpose and output. Every sentence adds value: the first explains what the tool does and returns, the second specifies where the baseline comes from. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains return values (diff image, change percentage, pass/fail). It also covers parameter usage, prerequisite (baseline snapshot source), and algorithm. The tool is fully described for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all 5 parameters. The description adds context that baseline_snapshot_id comes from design.track_changes, but overall does not significantly enhance meaning beyond the parameter descriptions in the schema. Baseline score 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs pixel-level comparison between a baseline snapshot and current web page using Pixelmatch, and returns threshold-based pass/fail, diff image, and change percentage. It distinguishes from siblings by specifying the use of snapshots from design.track_changes, making it unique among similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite: use snapshots from design.track_changes snapshot action as baseline. It implies the use case for regression testing. However, it does not explicitly state when not to use this tool or compare with alternatives like design.compare.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design.search_by_imageARead-onlyIdempotent
画像から視覚的に類似したデザインセクションを検索します。Base64エンコード画像またはHTTPS画像URLを入力として受け付けます。DINOv2 visual embeddingを使用したHNSW検索で類似デザインを発見します。オプションのテキストクエリを指定すると、RRF 3-source融合(text 40% + vision 30% + fulltext 30%)でハイブリッド検索を実行します。
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | Base64エンコードされた画像データ(data:image/...;base64,... 形式も可)またはHTTPS画像URL | |
| limit | No | 取得件数(1-50、デフォルト: 10) | |
| query | No | オプションのテキストクエリ(ハイブリッド検索用、日本語/英語対応、1-500文字) | |
| section_type | No | セクションタイプフィルタ(hero, feature, cta, testimonial, pricing, footer等) | |
| min_similarity | No | 最小類似度閾値(0-1、デフォルト: 0.3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds technical detail (HNSW, DINOv2, fusion weights) and hybrid search behavior, enriching beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and input types, succinctly covering technical method and optional hybrid search. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers input, optional text, search method, and technical details. No output schema, but description doesn't need return format. Lacks error handling or pagination, but sufficient for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description adds context for image (Base64/URL), query (hybrid search explanation), limit, and min_similarity. Adds value beyond schema, though section_type lacks further detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it searches for visually similar design sections from an image, detailing input formats (Base64 or HTTPS URL) and technology (DINOv2, HNSW). Distinct from siblings like 'design.similar_site' or 'layout.search'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage through hybrid search description but lacks explicit when-to-use vs siblings like 'design.similar_site' or 'background.search'. No when-not or alternative names provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design.similar_siteARead-onlyIdempotent
URLを入力として、DB内の類似デザインのWebサイトを検索します。指定URLのページのセクションembedding(DINOv2 vision + e5-base text)のmean poolingでページレベルの代表ベクトルを生成し、pgvector HNSW検索で類似サイトを発見します。RRF 3-source fusion(text 40% + vision 30% + fulltext 30%)で総合スコアを算出。 / Searches for similar website designs in DB given a URL. Generates page-level representative vectors via mean pooling of section embeddings (DINOv2 vision + e5-base text) and finds similar sites using pgvector HNSW search.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 検索対象のURL。DB内のweb_pagesに存在する必要があります(未分析URLは404) | |
| limit | No | 取得件数(1-20、デフォルト: 5) | |
| include_details | No | 詳細情報(共通パターン・差分)を含めるか(デフォルト: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint and idempotentHint. The description adds rich context: embedding methods (DINOv2 vision, e5-base text), mean pooling, pgvector HNSW search, and RRF fusion with percentages, far exceeding annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bilingual and includes detailed technical steps, but it is well-structured with purpose first. Slightly verbose but still clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly explains the search methodology and parameter constraints. However, it lacks explicit description of the return format or ranking, which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds crucial constraints: 'url must exist in web_pages' and explains 'include_details' as common patterns/differences, adding value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and the resource 'similar website designs'. It differentiates from sibling tools like 'design.search_by_image' by specifying URL input and embedding technique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parameter description for 'url' specifies it must exist in DB, but there is no explicit when-to-use or alternatives compared to siblings. Usage guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design.track_changesA
同一URLのデザイン変更を時系列で追跡します。スナップショット保存、embedding diffによる変更検出、履歴管理、自動変更検出の4つのアクションを提供します。変更度スコア(0=同一、1=完全に異なる)とセクション単位の変更カテゴリ(added/removed/modified/unchanged)で変更を可視化します。 / Tracks design changes of the same URL over time. Provides 4 actions: snapshot (save), compare (embedding diff), history (list), detect (auto-detect). Visualizes changes with change score (0=identical, 1=completely different) and per-section categories (added/removed/modified/unchanged).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 対象WebページのURL / Target web page URL | |
| limit | No | history アクション時の取得件数(デフォルト10) / Result limit for history (default 10) | |
| action | Yes | 実行するアクション / Action to execute: snapshot|compare|history|detect | |
| snapshot_ids | No | compare アクション時のスナップショットID(2件) / Snapshot IDs for compare (exactly 2) | |
| auto_snapshot | No | page.analyze後の自動スナップショット / Auto-snapshot after page.analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and idempotentHint=false, so the tool is expected to perform mutations. The description adds context by detailing the change score (0-1) and per-section categories (added/removed/modified/unchanged), which helps the agent understand the behavioral output beyond the basic action listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary purpose. It uses bilingual text but each version is succinct. There is no redundant information, though the bilingual format doubles length unnecessarily for a single-agent scenario. Still, it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has five parameters, two required, and no output schema. The description explains the actions and the change visualization metrics, but does not cover return values in detail (e.g., structure of history results, error conditions). The information provided is adequate but not fully comprehensive for a no-output-schema tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All five parameters have schema descriptions covering 100% of them. The tool description provides overall context (e.g., actions, change visualization) but does not add semantic detail beyond what the schema already provides for individual parameters. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool tracks design changes of the same URL over time, listing four specific actions (snapshot, compare, history, detect) and providing metrics (change score, per-section categories). This distinguishes it from siblings like design.compare, which likely handles one-off comparisons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists the actions but does not explicitly state when to use this tool versus alternatives. No guidance is given on when not to use it or which sibling tool to choose for different tasks. The actions themselves imply usage scenarios, but explicit direction is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
embedding.qualityARead-onlyIdempotent
Embedding品質を監視します。DINOv2/e5-baseのカバレッジ、異常検出、ドリフト検出を実行。Monitor embedding quality. Runs coverage, anomaly detection, and drift detection for DINOv2/e5-base.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | 監視スコープ(all: セクション+パーツ、sections: セクションのみ、parts: パーツのみ) / Monitoring scope (all: sections+parts, sections: sections only, parts: parts only) | all |
| web_page_id | No | 特定ページに限定(UUID) / Filter by specific web page ID (UUID) | |
| include_distribution | No | 分布統計を含める(mean, std, min, max, L2 norm) / Include distribution statistics (mean, std, min, max, L2 norm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds specific behavioral details (coverage, anomaly detection, drift detection) that go beyond the annotations, though it does not disclose potential side effects or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using bilingual text with no unnecessary words. It front-loads the purpose in Japanese and then in English, resembling a tagline format that is efficient for AI parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks information about return values or output format, which is critical since no output schema is provided. It also does not summarize default parameter behaviors, leaving the agent with incomplete context for invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add additional meaning beyond the schema descriptions; it merely restates the tool's high-level function without elaborating on how parameters affect behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool monitors embedding quality and runs coverage, anomaly detection, and drift detection for specific models (DINOv2/e5-base), providing a specific verb-resource pair that distinguishes it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or comparison with sibling tools like quality.evaluate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layout.batch_ingestA
Batch ingest multiple URLs for layout analysis. Processes URLs in parallel with configurable concurrency. Supports skip/abort modes for error handling.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Array of URLs to ingest (1-100 items) | |
| options | No | Batch processing options |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and idempotentHint=false, implying mutation and non-idempotency. The description adds value by explaining parallel processing, concurrency, and error handling modes, which go beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant words. The first sentence front-loads the primary purpose, and the second sentence adds key behavioral details. Every sentence is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested parameter structure and no output schema, the description covers the essential aspects: input, parallel execution, and error handling. However, it does not mention the return type or what the agent should expect after execution, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal extra meaning beyond the schema, briefly clarifying the intent of concurrency and error modes but not significantly enhancing parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('batch ingest') and resource ('multiple URLs for layout analysis'). It distinguishes from sibling tools like layout.ingest by emphasizing batch processing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives (e.g., layout.ingest for single URLs), nor does it provide exclusion criteria. The batch nature is implied, but guidelines are minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layout.generate_codeAIdempotent
セクションパターンからReact/Vue/Svelte/Astro/HTMLコードを生成します。パターンIDを指定して、選択したフレームワーク(React, Vue, Svelte, Astro, HTML)でコードを出力できます。TypeScript/JavaScript、Tailwind CSS/Vanilla CSSの選択も可能です。
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | コード生成オプション | |
| patternId | Yes | セクションパターンID(UUID形式、必須) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true, and the description aligns with that. However, the description does not add additional behavioral context such as whether code is persisted or just returned, authentication needs, or side effects. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph, front-loaded with purpose, no extraneous words. Every sentence adds value. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and parameters. However, it omits the output format (no output schema) and does not explain how to obtain patternId (referring to sibling tools). Given schema richness and nested complexity, more context would improve completeness, but it's adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description restates some parameter options (framework, typescript, tailwind) but adds no new meaning beyond the schema. Nested options and their interrelations are not elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('generate code'), the input ('section patterns' via patternId), and the output frameworks (React, Vue, etc.). It uniquely positions the tool among siblings by focusing on code generation, not ingestion or inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage for generating code from patterns, but it lacks explicit guidance on when to use this tool versus alternatives (e.g., layout.search for finding patterns). No 'when not to use' or context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layout.ingestB
Fetch HTML/screenshot from URL for layout analysis. SSRF protection blocks private IPs/metadata services. HTML is sanitized.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL (https:// or http://) | |
| options | No | Options | |
| source_type | No | Source type: award_gallery or user_provided | user_provided |
| usage_scope | No | Usage scope: inspiration_only or owned_asset | inspiration_only |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context about SSRF protection and sanitization, but does not disclose side effects like database writes when save_to_db is enabled. Annotations (readOnlyHint=false) suggest mutation, but description doesn't elaborate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is two sentences, front-loaded with essential information. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with many nested options and no output schema, the description lacks detail on return format, error handling, and behavioral nuances. Not complete enough for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all parameters. The description adds little beyond what the schema provides, so baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Fetch HTML/screenshot from URL'), the resource, and the purpose ('for layout analysis'). It also mentions SSRF protection and sanitization, distinguishing it from sibling tools like layout.batch_ingest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like layout.batch_ingest or layout.inspect. Does not mention scenarios, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layout.inspectBRead-onlyIdempotent
Parse HTML and extract section structure, grid, typography info
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | WebPage ID (from DB) | |
| html | No | Direct HTML input | |
| options | No | Parse options |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds no further behavioral details beyond what's in the schema options, missing opportunities to explain output structure or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with front-loaded verb and clear object. No unnecessary words, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema provided. Description covers the main extraction types but does not specify return format or additional behaviors. Adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The description does not add new meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's verb ('Parse HTML and extract section structure, grid, typography info') and resource. It distinguishes from siblings like layout.ingest or layout.search by focusing on inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like layout.ingest or layout.search. Context is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layout.searchARead-onlyIdempotent
セクションパターンを自然言語クエリでセマンティック検索します。日本語・英語の両方に対応しています。hero、feature、cta、testimonial、pricing、footer等のセクションタイプでフィルタリングできます。use_vision_search=trueでvision_embeddingを使用したハイブリッド検索(RRF: 60% vision + 40% text)が可能です。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 取得件数(1-50、デフォルト: 10) | |
| query | Yes | 検索クエリ(日本語または英語、1-500文字) | |
| offset | No | オフセット(0以上、デフォルト: 0) | |
| filters | No | 検索フィルター | |
| profile_id | No | 嗜好プロファイルID(検索結果のリランキングに使用) / Preference profile ID (used for search result reranking) | |
| includeHtml | No | HTMLスニペットを含めるか(デフォルト: false)- レガシー互換、include_html推奨 | |
| search_mode | No | 検索モード。text_only: text_embeddingのみを使用(デフォルト)。vision_only: vision_embeddingのみを使用。combined: 両方を使用してRRF統合検索。 | text_only |
| include_html | No | HTMLスニペットを含めるか(デフォルト: false)- snake_case正式形式 | |
| include_preview | No | サニタイズ済みHTMLプレビューを含めるか(デフォルト: true) | |
| project_context | No | プロジェクトコンテキスト解析オプション。プロジェクトのデザインパターンを検出し、検索結果の適合度を評価します。 | |
| use_vision_search | No | Vision検索を有効化。vision_embeddingを使用したセマンティック検索を行います(デフォルト: false) | |
| multimodal_options | No | マルチモーダルオプション。search_mode='combined'時のRRF統合パラメータ。 | |
| preview_max_length | No | HTMLプレビューの最大文字数(100-1000、デフォルト: 500) | |
| auto_detect_context | No | クエリから業界・スタイルコンテキストを自動推論し、結果をブーストします。推論されたコンテキスト(業界: technology/ecommerce/healthcare等、スタイル: minimal/bold/corporate等)にマッチする結果の類似度スコアが最大0.15ブーストされます(デフォルト: true) | |
| vision_search_query | No | Vision検索クエリ(use_vision_search=true時に使用) | |
| vision_search_options | No | Vision検索オプション(use_vision_search=true時に使用) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations, such as language support, filter options, and the hybrid search formula (60% vision + 40% text). It does not contradict the readOnly and idempotent hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences) and front-loaded with the main purpose. It efficiently conveys key features but includes some technical detail (RRF percentages) that could be more accessible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 16 parameters with nested objects, the description covers the main search and filter capabilities but does not explain the return value format or all advanced options (e.g., auto_detect_context, profile_id). It is moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The tool description adds a little extra context (e.g., vision search usage), but most parameter details are already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches section patterns via semantic natural language queries, lists supported section types, and mentions bilingual support. It distinguishes from sibling search tools (background.search, part.search) by specifying 'section patterns' and advanced vision search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (semantic search of section patterns with filtering and optional vision search). However, it does not explicitly state when not to use it or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion.detectCRead-onlyIdempotent
Detect/classify motion patterns from web page. Parses CSS animations, transitions, keyframes. Warns about performance/accessibility issues.
| Name | Required | Description | Default |
|---|---|---|---|
| css | No | Additional CSS content (max 5MB) | |
| url | No | Target URL for video/runtime/hybrid modes. Required when detection_mode='video', 'runtime', or 'hybrid'. | |
| html | No | HTML content (direct, max 10MB) | |
| pageId | No | WebPage ID (UUID, from DB) | |
| baseUrl | No | Base URL for resolving relative CSS paths (required if fetchExternalCss is true) | |
| timeout | No | Overall timeout in milliseconds (30000-600000, default: 180000 = 3 minutes). On timeout, returns partial results with warnings (graceful degradation). | |
| verbose | No | Verbose mode: include rawCss (default: false) | |
| save_to_db | No | Save detected patterns to motion_patterns table with embeddings (default: true) | |
| maxPatterns | No | Max patterns to detect (default: 100) | |
| minDuration | No | Minimum duration to detect (ms, default: 0) | |
| min_severity | No | Minimum severity level to include in warnings (default: info) | info |
| detection_mode | No | Detection mode: 'css' (requires html/pageId) for static CSS parsing without browser, 'video' (default, requires url) for visual motion detection with frame capture, 'runtime' (requires url) for JS-driven animations, 'hybrid' (requires url) for CSS+runtime combined. | video |
| includeSummary | No | Include summary (default: true) | |
| includeWarnings | No | Include warnings (default: true) | |
| fetchExternalCss | No | Fetch external CSS from <link> tags (default: true) | |
| externalCssOptions | No | Options for external CSS fetching | |
| includeStyleSheets | No | Parse stylesheets (default: true) | |
| includeInlineStyles | No | Parse inline styles (default: true) | |
| detect_js_animations | No | Enable JavaScript animation detection via CDP + Web Animations API. Requires Playwright. Default: false (disabled for performance). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent, but description is misleading by only mentioning CSS parsing, while tool supports multiple detection modes (video, runtime, hybrid) and has network dependencies. Missing crucial behavioral traits like graceful degradation on timeout, dependency on Playwright for JS animation detection, and requirement for baseUrl when fetching external CSS. Description does not add value beyond annotations; it contradicts the full scope of the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, very concise and front-loaded with main purpose. However, it sacrifices necessary detail for extreme brevity, missing critical behavioral context. Still, structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given tool complexity (19 params, multiple modes, no output schema), description is insufficient. Does not explain detection modes, required inputs (url vs html vs pageId), return format (list of patterns? warnings?), or side effects like saving to DB (save_to_db param). Agent cannot fully understand tool without reading all parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds no parameter-level meaning beyond 'CSS animations, transitions, keyframes' which only hints at detection_mode. Does not help agent understand parameter relationships or required inputs for different modes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Detect/classify motion patterns from web page' with specific mention of CSS animations, transitions, keyframes, and warnings. Clearly identifies the action and resource, but does not explicitly distinguish from sibling tools like motion.search, which is implied by different verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not mention prerequisites, such as requiring a pageId or URL depending on detection_mode, nor any conditions for using different modes. Agent lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion.searchARead-onlyIdempotent
モーションパターンを類似検索、または実装コードを生成します。action: search(デフォルト)で検索、action: generateでCSS/JS実装コードを生成します。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 結果制限(1-50、デフォルト: 10)。action: searchで使用。 | |
| query | No | 検索クエリ(自然言語、1-500文字)。action: searchで使用。 | |
| action | No | アクション: search(デフォルト)= モーション検索、generate = 実装コード生成 | search |
| format | No | 出力フォーマット(デフォルト: css)。action: generateで使用。 | css |
| filters | No | 検索フィルター。action: searchで使用。 | |
| options | No | 生成オプション。action: generateで使用。 | |
| pattern | No | モーションパターン定義。action: generateで必須。 | |
| profile_id | No | 嗜好プロファイルID(検索結果のリランキングに使用) / Preference profile ID (used for search result reranking) | |
| minSimilarity | No | 最小類似度しきい値(0-1、デフォルト: 0.5)。action: searchで使用。 | |
| samplePattern | No | サンプルパターンで類似検索。action: searchで使用。 | |
| js_animation_filters | No | JSアニメーション検索フィルター。action: searchで使用。 | |
| include_js_animations | No | JSアニメーションパターンを検索結果に含める(デフォルト: true)。action: searchで使用。 | |
| include_implementation | No | 検索結果に実装コード(@keyframes, animation, tailwindクラス)を含める(デフォルト: false)。action: searchで使用。 | |
| webgl_animation_filters | No | WebGLアニメーション検索フィルター。action: searchで使用。 | |
| include_webgl_animations | No | WebGLアニメーションパターンを検索結果に含める(デフォルト: true)。action: searchで使用。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true, which the description does not contradict. The description adds behavioral context by noting that 'generate' produces CSS/JS code (a read-only operation). No hidden side effects are mentioned, and the description aligns well with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences—with no redundant information. It front-loads the core purpose and action distinction, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the schema fully details parameters, the description omits what the tool returns (e.g., search results or generated code format). For a complex tool with no output schema, mentioning the return type would improve completeness. The description covers the essential split but lacks output context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to detail parameters. However, it adds value by summarizing the two modes (search/generate) and their default action, helping agents quickly grasp the tool's operation beyond individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's two main functions: searching for similar motion patterns and generating implementation code. It explicitly maps actions to functions ('action: search' for search, 'action: generate' for code generation), distinguishing it from sibling tools like motion.detect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use each action (search vs. generate), but does not explicitly contrast this tool with alternatives like motion.detect or other search tools. The context is sufficient for the agent to decide basic usage, but lacks exclusionary advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
narrative.searchBRead-onlyIdempotent
世界観・レイアウト構成でセマンティック検索します。自然言語クエリ(例: "サイバーセキュリティ感のあるダークなデザイン")または768次元Embeddingで検索可能。Hybrid Search(Vector + Full-text)でRRF統合。
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | 検索クエリ(queryまたはembeddingのいずれか必須) | |
| filters | No | ||
| options | No | ||
| embedding | No | 直接Embedding指定(768次元、queryまたはembeddingのいずれか必須) | |
| profile_id | No | 嗜好プロファイルID(検索結果のリランキングに使用) / Preference profile ID (used for search result reranking) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, so core safety is covered. Description adds value by explaining search modes (hybrid, RRF) but does not disclose return format or pagination behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences in Japanese, front-loading the purpose. No extraneous information, though could benefit from more structured detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and moderate complexity (hybrid search, filters, reranking), the description provides a good overview but lacks details on filters, profile_id, result structure, and pagination. Adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 60% description coverage (moderate), but the description does not add significant meaning beyond schema. It mentions query/embedding and hybrid search, but filters and options are not further explained. Baseline 3 given schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it performs semantic search on worldview/layout composition using natural language or embeddings, with hybrid search. Implicitly differentiates from siblings like layout.search or part.search by focusing on worldview, but does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs siblings (e.g., background.search, search.unified) or when to choose query vs embedding. Does not specify prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page.analyzeARead-onlyIdempotent
Analyze a web page URL with layout detection, motion pattern extraction, and quality evaluation. Executes layout.ingest, motion.detect, and quality.evaluate in parallel and returns unified results. Supports MCP streaming progress via _meta.progressToken for real-time phase notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL to analyze (required) | |
| async | No | Async mode (default: auto). true: enqueue a BullMQ job and return a jobId immediately (poll with page.getJobStatus). false: synchronous processing. When omitted, auto-enabled if Vision is on and Redis is available (Vision LLM exceeds the MCP timeout in CPU mode). Requires Redis when true. | |
| summary | No | Return summary response (default: true). Set to false for full details. | |
| timeout | No | Overall timeout in ms (default: 600000) | |
| features | No | Feature flags for analysis (default: all true) | |
| waitUntil | No | Page load completion criteria (default: networkidle) | networkidle |
| auto_retry | No | Enable staged auto-retry on HTML fetch failure (default: true). Retries with progressively longer timeouts and relaxed waitUntil. | |
| sourceType | No | Source type: award_gallery or user_provided (default) | user_provided |
| usageScope | No | Usage scope: inspiration_only (default) or owned_asset | inspiration_only |
| max_retries | No | Maximum retry attempts when auto_retry is true (default: 3). | |
| auto_timeout | No | Enable Pre-flight Probe for dynamic timeout calculation (v0.1.0). Analyzes page complexity (WebGL, SPA, heavy frameworks) before analysis and calculates optimal timeout. Results are included in preflightProbe response field. | |
| layout_first | No | Layout-first mode for WebGL/Three.js sites (default: auto). auto: prioritise layout when WebGL is detected. always: always prioritise layout. never: legacy parallel processing. | auto |
| auto_snapshot | No | Auto-save design snapshot after analysis (default: false). Creates a point-in-time record for design.track_changes comparison. | |
| layoutOptions | No | Layout analysis options | |
| layoutTimeout | No | Per-phase timeout for layout analysis in ms (default: 120000). | |
| motionOptions | No | Motion detection options | |
| motionTimeout | No | Per-phase timeout for motion detection in ms (default: 300000). | |
| visionOptions | No | Vision CPU completion-guarantee options (Phase 3). Controls Vision model (Ollama llama3.2-vision) inference timeout, image optimisation, CPU forcing, and graceful degradation. | |
| qualityOptions | No | Quality evaluation options | |
| qualityTimeout | No | Per-phase timeout for quality evaluation in ms (default: 60000). | |
| partial_results | No | Allow partial results on timeout (default: true). When true, returns results from completed phases on timeout. | |
| narrativeOptions | No | Narrative analysis options. Analyzes the page's worldview/atmosphere and layout structure. enabled=true to activate. | |
| timeout_strategy | No | Timeout strategy. strict: fail completely on timeout. progressive: return partial results on timeout (default). | progressive |
| responsiveOptions | No | Responsive layout analysis options. Captures layouts at multiple viewport sizes (desktop/tablet/mobile) and detects differences in typography, spacing, navigation, and layout structure. | |
| performanceOptions | No | Performance evaluation options (v0.3.0 Phase 7.5b, opt-in). Core Web Vitals (LCP/FID/CLS/INP/TTFB) measurement. Timeout: 40s. Disabled by default. | |
| respect_robots_txt | No | Respect robots.txt (RFC 9309). Set to false to ignore. | |
| accessibilityOptions | No | Accessibility audit options (v0.3.0 Phase 7.5a, opt-in). WCAG 2.1 AA compliance audit via axe-core. Timeout: 10s. Disabled by default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Aligns with annotations (readOnlyHint, openWorldHint, idempotentHint). Adds behavioral details: parallel execution, MCP streaming progress, async mode, timeouts. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with no wasted words. Two sentences cover purpose, execution model, and streaming support.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 27 parameters, nested objects, and no output schema, the description is too brief. It lacks return value description, error handling, and guidance on interpreting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal extra meaning beyond the schema, such as explaining the three phases that the 'features' parameter controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb 'Analyze', the resource 'web page URL', and the three main analysis phases (layout, motion, quality). It also differentiates itself from sibling tools like layout.ingest and motion.detect by being a unified parallel execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use page.analyze versus calling the individual sub-tools directly. Missing when-not-to-use or alternatives for partial analyses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page.batch_analyzeA
Batch analyze multiple URLs in parallel. Submits all URLs as async BullMQ jobs and returns immediately with a batch ID.
Features:
Up to 50 URLs per batch
Configurable concurrency (1-5, default: 3)
SSRF validation for all URLs before submission
Graceful degradation: individual failures don't affect the batch
Progress tracking via page.getBatchStatus
Rate limiting within analysis tier (10 RPM)
Use page.getBatchStatus to poll for results.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Target URLs to analyze (1-50) | |
| timeout | No | Batch-level timeout in ms (default: 1800000 = 30min) | |
| features | No | Shared analysis features (default: all enabled) | |
| on_error | No | Behavior on individual job failure: 'skip' (continue) or 'abort' (stop batch) | |
| concurrency | No | Parallel jobs within batch (1-5, default: 3) | |
| layoutOptions | No | Shared layout options for all URLs | |
| respect_robots_txt | No | Respect robots.txt (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, openWorldHint=true) are consistent with a mutation tool. The description adds valuable behavioral details: async submission, SSRF validation, graceful degradation, rate limiting (10 RPM), and progress tracking. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with bullet points and clear sections. Every sentence adds value: main purpose, key features, and a direct call to action for polling. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 params, nested objects, no output schema), the description covers all essential aspects: parallelism limits, error handling, rate limiting, and follow-up polling. The missing output schema is compensated by describing the return of a batch ID.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds extra context: concurrency default (3), timeout default (30min), features default (all enabled), and rate limit hint. This is helpful beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Batch analyze multiple URLs in parallel' and distinguishes it from siblings like page.analyze (single) and page.getBatchStatus (polling). The verb+resource+scope is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use page.getBatchStatus for polling, implies when to use (batch analysis), but does not explicitly state when not to use it or mention alternatives beyond the sibling. Still, context is sufficient for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page.getBatchStatusARead-onlyIdempotent
Check the status of a batch analysis job submitted via page.batch_analyze.
Returns:
Batch state (waiting, active, completed, failed, partial)
Progress percentage (0-100)
Summary (total, completed, failed, skipped counts)
Individual job results with states and webPageIds
Use the batch_id returned by page.batch_analyze to query status.
| Name | Required | Description | Default |
|---|---|---|---|
| batch_id | Yes | Batch job ID returned by page.batch_analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds limited behavioral context beyond confirming it is a status check. It does not disclose any additional behavioral traits or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, using bullet points. It is front-loaded with the purpose. Could be slightly more terse but is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, no output schema) and informative annotations, the description provides all necessary context: what it does, what it returns, and how to use it. It is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter batch_id is already well-described in the schema with 100% coverage. The description reinforces its origin from page.batch_analyze but does not add significant new semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Check the status of a batch analysis job' and lists the returned fields (state, progress, summary, individual results). It distinguishes from siblings like page.batch_analyze and page.getJobStatus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use the batch_id from page.batch_analyze, providing clear context for when to use this tool. However, it does not explicitly mention when not to use it or list alternatives like page.getJobStatus for individual jobs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page.getJobStatusARead-onlyIdempotent
Check the status of an async page analysis job.
Use this tool to poll for the status and results of a job that was submitted with page.analyze(async=true).
Returns:
Job state (waiting, active, completed, failed)
Progress percentage (0-100)
Result summary when completed
Error details when failed
Note: Requires Redis to be running. Jobs are retained for 24 hours after completion.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job ID returned by page.analyze(async=true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. Description adds Redis requirement and job retention, which are beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with bullet points for returns. Could be slightly more compact but is effective and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, prerequisites, and return fields. No output schema, so the return description is adequate. Complete for a simple polling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear description of job_id. The tool description does not add new semantics for the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Check the status of an async page analysis job' with specific verb and resource. It distinguishes from siblings like page.analyze and page.getBatchStatus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use this tool to poll after submitting a job with page.analyze(async=true). Also notes prerequisite (Redis running) and job retention (24 hours).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
part.compareARead-onlyIdempotent
2-5個のUIパーツをスタイル・レイアウト・インタラクション・アクセシビリティで並列比較。デフォルトはstyles+layout。各プロパティの同一性も判定。 / Compare 2-5 UI parts on styles, layout, interaction, and accessibility. Default: styles + layout. Reports property-level identity.
| Name | Required | Description | Default |
|---|---|---|---|
| part_ids | Yes | 比較対象パーツID(2-5個) / 2-5 part IDs to compare | |
| compare_aspects | No | 比較観点(デフォルト: styles, layout) / Aspects to compare (default: styles, layout) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds that the tool reports property-level identity, which is useful behavioral context beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences in both Japanese and English, front-loaded with the core purpose and key details. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (2 params, no output schema, annotations provided), the description is adequate. It covers purpose, parameters, and behavior. Minor gap: no description of output format, but the tool's simplicity mitigates this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description reinforces the parameter constraints (2-5 parts, default aspects) and adds the 'property-level identity' reporting, which adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool compares 2-5 UI parts on four specified aspects (styles, layout, interaction, accessibility), defaults to styles+layout, and reports property-level identity. It effectively distinguishes from sibling tools like design.compare or layout.inspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying the number of parts and default aspects, but does not explicitly state when to use this tool over alternatives like design.compare or layout.inspect. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
part.inspectARead-onlyIdempotent
特定のUIコンポーネントパーツの詳細情報を取得します。スタイル、HTML、バウンディングボックス、インタラクション情報、Embedding有無等を返します。 / Inspect a specific UI component part by ID. Returns styles, HTML, bounding box, interaction info, embedding status, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| part_id | Yes | パーツID(UUID) / Part ID (UUID) | |
| include_html | No | サニタイズ済みHTMLスニペットを含める / Include sanitized HTML snippet | |
| include_embedding | No | Embedding有無情報を含める / Include embedding availability info |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds value by listing specific return fields (styles, HTML, bounding box, etc.), which supplements the annotation's safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, bilingual, and front-loaded with the action. Every word is necessary and no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately lists return fields. Parameter coverage is complete. However, it could briefly mention the required part_id, but the schema already handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and provides clear parameter descriptions (part_id as UUID, include_html/embedding as booleans with defaults). The tool description does not add extra semantic meaning beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool inspects a UI component part by ID and lists the returned information (styles, HTML, bounding box, etc.). It differentiates from siblings like part.compare and part.search by focusing on inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for getting detailed info on a single part, but lacks explicit guidance on when to use versus alternatives like part.compare or part.search. No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
part.searchBRead-onlyIdempotent
UIコンポーネントパーツ(ボタン、カード、リンク等)をセマンティック検索します。テキストクエリ(e5-base + full-text)によるハイブリッド検索を提供。partType(16種類)やsearchMode(visual/text/hybrid)でフィルタリング可能です。 / Search UI component parts (buttons, cards, links, etc.) by text query. Provides hybrid search via e5-base + full-text. Filterable by partType (16 types) and searchMode (visual/text/hybrid).
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | タグフィルター / Tag filter | |
| limit | No | 取得件数(1-100、デフォルト: 20) / Result limit (1-100, default: 20) | |
| query | No | テキスト検索クエリ(1-500文字) / Text search query (1-500 chars) | |
| offset | No | オフセット(0以上、デフォルト: 0) / Offset (0+, default: 0) | |
| audience | No | ターゲットオーディエンス(例: b2b, b2c, enterprise) / Target audience filter | |
| industry | No | 業種フィルター(例: tech, finance, healthcare) / Industry filter | |
| image_url | No | 画像URLによるビジュアル検索(将来対応予定) / Visual search by image URL (future support) | |
| part_type | No | パーツタイプでフィルター(16種類) / Filter by part type (16 types) | |
| search_mode | No | 検索モード(デフォルト: hybrid) / Search mode (default: hybrid) | hybrid |
| web_page_id | No | WebページIDでフィルター / Filter by web page ID | |
| min_similarity | No | 最小類似度閾値(0-1、デフォルト: 0.3) / Min similarity threshold (0-1, default: 0.3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent. The description adds details about the search models (e5-base, full-text) and future support for image search, but does not disclose additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with key information. However, it includes bilingual content that could be streamlined for brevity, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, no output schema), the description covers the purpose and main filters but does not explain the return format, pagination, or edge cases. Annotations help but the description could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema description coverage is 100%, so the description adds no extra meaning beyond parameter names and types. It mentions partType and searchMode but these are already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs semantic search of UI component parts with hybrid search, and lists filtering options. It distinguishes from sibling tools by focusing on UI parts, but does not explicitly differentiate from other search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks guidance on when to use this tool vs alternatives. It does not mention when not to use it or provide context for choosing it over other search tools on the server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
performance.evaluateARead-onlyIdempotent
Evaluate web page performance using Core Web Vitals (LCP, FID, CLS, INP, TTFB) via Playwright PerformanceObserver API. Returns a score (0-100), grade, and optional improvement recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL for performance evaluation (SSRF validated). Must be an external URL (private IPs blocked). | |
| budget | No | Custom performance budget. Defaults to Google recommended values: LCP < 2.5s, CLS < 0.1, FID < 100ms, TTFB < 800ms, INP < 200ms. | |
| include_details | No | Include budget comparisons and improvement recommendations (default: false). Set to true for detailed performance analysis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds context that it uses Playwright PerformanceObserver, returns a score/grade/recommendations, and mentions optional improvement recommendations, which complements the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first defines purpose and method, second describes output. Every word is essential, no redundancy. Perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers return format (score, grade, recommendations). It explains the evaluation metrics and optional details. Could mention error handling or limitations, but sufficient for the complexity of a performance evaluation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds value by explaining the tool's purpose and output format (score 0-100, grade, recommendations), which helps agents understand what parameters like include_details affect. The description enriches the semantics beyond the schema's field-level descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the tool evaluates web page performance using Core Web Vitals (LCP, FID, CLS, INP, TTFB) via Playwright PerformanceObserver API, and returns a score, grade, and recommendations. This clearly distinguishes it from siblings like accessibility.audit or quality.evaluate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for performance evaluation but does not provide explicit guidance on when to use it versus other sibling tools like quality.evaluate or page.analyze. No when-not-to-use or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preference.getARead-onlyIdempotent
現在の嗜好プロファイルを取得します。profile_id省略時はデフォルトプロファイルを返します。Get current preference profile. Returns default profile when profile_id is omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | プロファイルID(省略時はデフォルト) / Profile ID (default if omitted) | |
| include_signals | No | シグナルデータを含める(GDPRデータポータビリティ対応) / Include signal data (GDPR data portability compliance) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. The description adds useful context about default profile selection. No unexpected side effects are indicated, and the description aligns with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, bilingual but still concise. Every part adds value, though the bilingual repetition could be streamlined for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple getter with full schema coverage and informative annotations, the description adequately covers the primary behavior and default handling. No output schema exists, but return structure is not critical here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% and both parameters have clear descriptions. The tool description adds no new meaning beyond what the schema already provides for profile_id's default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get current preference profile' and specifies the default behavior when profile_id is omitted. It is a specific verb-resource combination. However, it does not differentiate from sibling tools like preference.hear or preference.reset beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description only explains parameter behavior, not usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preference.hearA
ユーザー嗜好ヒアリングセッション。feedbackなしでサンプル提示、feedbackありで嗜好プロファイル更新。User preference hearing session. Present samples without feedback, update profile with feedback.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返却サンプル数(デフォルト1件) / Number of samples to return (default 1) | |
| offset | No | スキップ数 / Number of samples to skip | |
| feedback | No | フィードバック配列(存在する場合はモードB) / Feedback array (Mode B if present) | |
| profile_id | No | プロファイルID(省略時は新規作成) / Profile ID (create new if omitted) | |
| exclude_ids | No | 除外するサンプルID配列(既評価済み) / Sample IDs to exclude (already evaluated) | |
| preference_text | No | 嗜好テキスト(Claudeエージェントが自然言語フィードバックから生成、10-1000文字) / Preference text (generated by Claude agent from natural language feedback, 10-1000 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false). The description adds context about two modes, but lacks details on side effects, return values, or error handling, especially given no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences covering both modes. It is front-loaded and every word adds value. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters and two modes, the description covers the core functionality but is incomplete. It does not explain return values (no output schema), error conditions, or detailed behavior when both feedback and profile_id are omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers all 6 parameters (100% coverage). The description adds no additional parameter-specific information, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's dual purpose: presenting samples without feedback and updating the preference profile with feedback. It differentiates from sibling tools like 'preference.get' and 'preference.reset' by focusing on interactive sessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implicitly tells when to use each mode (present samples vs. update profile), but does not explicitly state when not to use it or mention alternatives (e.g., 'preference.get' for retrieving the profile).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preference.resetAIdempotent
嗜好プロファイルをリセットします。confirm: trueが必須です。preference_signalsもCASCADE削除されます。Reset preference profile. confirm: true is required. preference_signals are CASCADE deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | リセット確認フラグ(trueでリセット実行) / Reset confirmation flag (true to execute reset) | |
| profile_id | Yes | プロファイルID(必須) / Profile ID (required) | |
| hard_delete | No | 完全削除フラグ(trueでプロファイルとシグナルを完全に削除、GDPR忘れられる権利対応) / Hard delete flag (true to permanently delete profile and signals, GDPR Right to Erasure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: confirm is required and preference_signals are CASCADE deleted. Annotations indicate idempotentHint=true and readOnlyHint=false, which align with the description. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but includes bilingual text (Japanese and English), which adds length. It is front-loaded with the main purpose and then covers requirements and side effects efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the tool's effects (reset and CASCADE delete). Parameters are well-documented in schema. The description is sufficient for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds value by clarifying that 'confirm: true' is required and explaining the CASCADE deletion effect, which is not fully captured in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resets a preference profile and cascading deletes preference_signals. It uses a specific verb (reset) and resource (preference profile), distinguishing it from siblings like preference.get and preference.hear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly requires 'confirm: true' and warns about CASCADE deletion, providing clear usage context. It implies a destructive action but does not explicitly state when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quality.evaluateBRead-onlyIdempotent
Evaluate web design quality on 3 axes (originality, craftsmanship, contextuality) with AI cliche detection
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | HTML content (direct, max 10MB) | |
| pageId | No | WebPage ID (UUID, from DB) | |
| strict | No | Strict mode: stricter AI cliche detection (default: false) | |
| context | No | Evaluation context (v0.1.0) | |
| summary | No | Lightweight mode: exclude detailed info and return summary only (v0.1.0 MCP-RESP-01, v0.1.0 default true). When true (default): recommendations max 3, contextualRecommendations max 3, patternAnalysis arrays max 3, axeAccessibility.violations max 5, clicheDetection.patterns max 3. Set to false for full details. | |
| weights | No | Axis weights (sum 1.0) | |
| targetAudience | No | Target audience (e.g. enterprise, consumer, professionals) | |
| targetIndustry | No | Target industry (e.g. healthcare, finance, technology) | |
| use_playwright | No | Use Playwright for runtime aXe accessibility testing (default: false, uses JSDOM) | |
| patternComparison | No | Pattern comparison options for pattern-driven evaluation (v0.1.0) | |
| responsive_evaluation | No | Responsive quality evaluation using Playwright (v0.1.0). Measures touch targets, readability, overflow, and responsive images across viewports. | |
| includeRecommendations | No | Include recommendations (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, which align with evaluation. The description adds no further behavioral traits beyond the axes, so it meets the minimal bar but provides no extra value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with core purpose. However, it is very brief and could benefit from more structured detail without excessive length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, nested objects, and no output schema, the description is far too minimal. It does not explain return values, nor does it guide on using complex optional parameters like patternComparison or responsive_evaluation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add meaningful parameter semantics beyond the schema, merely listing the axes without explaining how to use parameters effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool evaluates web design quality on three specific axes (originality, craftsmanship, contextuality) and mentions AI cliche detection. It distinguishes from sibling tools like accessibility.audit or design.compare by focusing on quality evaluation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, no prerequisites, and no scenarios where it should not be used. The description only states what the tool does without context on appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report.generateARead-onlyIdempotent
分析済みWebページのレポートをHTML(インタラクティブ)またはPDF(印刷用)形式で生成します。セクション構成、モーションパターン、品質スコア、スクリーンショットを集約したクライアント納品可能なレポートを出力します。 / Generates analysis reports in HTML (interactive) or PDF (printable) format. Aggregates sections, motion patterns, quality scores, and screenshots into a client-deliverable report.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | レポートタイトル(省略時は自動生成) / Report title (optional) | |
| format | Yes | 出力フォーマット / Output format: html or pdf | |
| web_page_id | Yes | レポート対象のWebページID / Web page ID for report | |
| include_motion | No | モーションパターン / Include motion patterns | |
| include_quality | No | 品質評価 / Include quality evaluation | |
| include_screenshot | No | スクリーンショット埋め込み / Include screenshot |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. The description adds context about output formats and content aggregation, but does not disclose potential side effects like file storage or resource consumption. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences in English and Japanese, front-loaded with key action and format, and every sentence adds meaningful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, complete schema coverage, and no output schema, the description adequately explains what the report contains and the formats. However, it lacks details about the response (e.g., file reference or download link) and does not cover error conditions or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are documented in the schema (100% coverage). The description adds value by explaining that the parameters control aggregation of sections, motion, quality, and screenshots, but does not provide deeper semantics beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates analysis reports in HTML or PDF format, aggregating sections, motion patterns, quality scores, and screenshots. It specifies the verb 'generates' and the resource 'report', making the purpose distinct from sibling tools that analyze individual aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (client-deliverable report) but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
responsive.captureARead-onlyIdempotent
3ビューポート(desktop 1920x1080, tablet 768x1024, mobile 375x812)でWebページを同時キャプチャし、レスポンシブレイアウトの差分を分析します。セクション表示/非表示、フォントサイズ変化、グリッドカラム変化、スペーシング変化を検出し、差分スコア(0-100)を返します。
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | キャプチャ対象URL / Target URL for capture | |
| viewports | No | カスタムビューポート配列(任意、最大4つ。未指定時: desktop 1920x1080, tablet 768x1024, mobile 375x812) / Custom viewports (optional, max 4) | |
| include_diff | No | レスポンシブ差分分析を含めるか(デフォルト: true) / Include responsive diff analysis (default: true) | |
| include_screenshots | No | スクリーンショットサイズを結果に含めるか(デフォルト: false) / Include screenshot sizes in result (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds behavioral details: default viewports, detection of section visibility, font size changes, grid columns, spacing, and a diff score (0-100). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and then specifics. No filler words, efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers tool purpose, default behavior, output score, and detection items. Lacks exact output structure (e.g., JSON format) but sufficient for most agents. Given no output schema, it provides enough context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds value by explaining default viewports and the analysis details (diff score, detection items) beyond schema, especially for 'include_diff' and 'url' context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it captures a web page at three viewports and analyzes responsive layout differences, with specific detection items and a diff score. This distinguishes it from siblings like 'responsive.search' which likely searches in captures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing responsive design differences but does not explicitly state when to use or avoid this tool, nor mention alternatives like 'design.compare'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
responsive.searchARead-onlyIdempotent
レスポンシブデザイン分析結果をセマンティック検索します。ビューポート間の差異(レイアウト変化、ナビゲーション変化、表示切替等)を自然言語で検索できます。差異カテゴリ、ビューポートペア、ブレークポイント範囲、スクリーンショット差分率でフィルタリング可能です。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 取得件数(1-50、デフォルト: 10) | |
| query | Yes | 検索クエリ(自然言語、1-500文字)。例: "モバイルでハンバーガーメニューに変わるサイト" | |
| offset | No | オフセット(0以上、デフォルト: 0) | |
| filters | No | 検索フィルター | |
| profile_id | No | 嗜好プロファイルID(検索結果のリランキングに使用) / Preference profile ID (used for search result reranking) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds behavioral context about filtering by various attributes (categories, viewport pairs, etc.), which is valuable beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences that cover the tool's purpose and filtering options without redundancy. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema, the description explains the search domain and available filters but does not hint at the result format (e.g., structured data). Still, it is fairly complete given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already documents all parameters. The description mentions filtering capabilities but does not add significant meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs semantic search on responsive design analysis results, specifically for differences between viewports. It distinguishes itself from sibling tools like layout.search or design.compare by focusing on responsive differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies when to use (search for responsive differences), it does not explicitly mention when not to use or provide alternatives. However, the context from sibling tool names and the specific focus makes usage fairly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search.facetsARead-onlyIdempotent
[DEPRECATED: Use search.unified with include_facets: true instead] ファセット検索(絞り込みカウント表示)。検索結果をsectionType・industry・audience・tagsで分類し、各値の件数を返却します。検索結果の絞り込みUIやフィルタ選択に使用します。代替: search.unified({ query: '...', include_facets: true, facet_fields: ['sectionType'], enable_reranking: false, limit: 50 }) / Faceted search with filter counts. Classifies search results by sectionType, industry, audience, and tags, returning counts per value. Used for search result refinement UI and filter selection.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | タグフィルター / Tags filter | |
| limit | No | ファセット算出のベース結果数(1-50、デフォルト: 50) / Base result limit for facet computation (1-50, default: 50) | |
| query | Yes | 検索クエリ(自然言語、1-500文字) / Search query (natural language, 1-500 chars) | |
| audience | No | ターゲットオーディエンスフィルター / Target audience filter (e.g., 'Developer') | |
| industry | No | 業種フィルター / Industry filter (e.g., 'SaaS', 'E-commerce') | |
| webPageId | No | WebページIDでフィルター / Filter by web page ID | |
| facet_fields | No | ファセットフィールド(デフォルト: 全フィールド) / Facet fields (default: all). sectionType: セクション/パーツタイプ, industry: 業種, audience: ターゲット, tags: タグ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint), the description adds that the tool performs faceted search returning counts, and lists the specific facet fields. It also discloses the deprecation status, which is important behavioral information not captured by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with two sentences in each language. The deprecation notice is front-loaded, and every sentence serves a clear purpose (deprecation, functionality, use case, migration path). No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated tool with full schema coverage and annotations, the description adequately covers purpose, usage, and migration. It does not specify return format (no output schema), but that is acceptable given the deprecation and the alternative provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parameters well. The description does not add significant semantic value beyond listing the four facet fields, which are also in the schema. Baseline is 3, and there is no substantial improvement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a faceted search that returns counts for specific fields (sectionType, industry, audience, tags) and is used for UI refinement. It also distinguishes itself from the deprecated status and directs to search.unified, a sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly marks the tool as deprecated and provides the exact alternative call using search.unified with include_facets and relevant parameters. It also describes typical use cases (filter selection), giving clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search.unifiedARead-onlyIdempotent
Layout(セクション)・Part(UIコンポーネント)・Motion(アニメーション)・Background(背景デザイン)・Narrative(世界観)を横断的にセマンティック検索します。個別検索ツールを並列実行し、結果をsimilarityスコア順にマージして返却します。 / Cross-component semantic search across Layout sections, UI Parts, Motion patterns, Background designs, and Narratives. Executes individual search tools in parallel and merges results by similarity score.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | タグフィルター / Tags filter | |
| limit | No | 取得件数(1-50、デフォルト: 10) / Result limit (1-50, default: 10) | |
| query | Yes | 検索クエリ(自然言語、1-500文字) / Search query (natural language, 1-500 chars) | |
| types | No | 検索対象タイプ(デフォルト: 全タイプ) / Target types (default: all types) | |
| audience | No | ターゲットオーディエンスフィルター / Target audience filter (e.g., 'Developer', 'Enterprise') | |
| industry | No | 業種フィルター / Industry filter (e.g., 'SaaS', 'E-commerce') | |
| webPageId | No | WebページIDでフィルター / Filter by web page ID | |
| profile_id | No | 嗜好プロファイルID(検索結果のリランキングに使用) / Preference profile ID | |
| query_type | No | クエリタイプ(auto: 自動分類、visual: 見た目、structural: レイアウト構造、functional: 機能、stylistic: スタイル) / Query type (auto: auto-classify) | auto |
| facet_fields | No | ファセットフィールド指定(指定時はinclude_facetsが暗黙的にtrue)。未指定時は全4フィールド / Facet fields to compute (implicitly enables include_facets). Defaults to all 4 fields when omitted. sectionType: セクション/パーツタイプ, industry: 業種, audience: ターゲット, tags: タグ | |
| include_facets | No | ファセットカウント付与(デフォルト: false)。trueにすると sectionType/industry/audience/tags のカウントを返却 / Include facet counts (default: false). Returns counts for sectionType/industry/audience/tags when true | |
| enable_reranking | No | Cross-Encoderリランキング有効化(デフォルト: true) / Enable Cross-Encoder reranking (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations (readOnlyHint, idempotentHint) by detailing the parallel execution and merging by similarity score. It discloses key behavioral traits like semantic search and cross-component scope. However, it omits potential side effects or performance considerations, but for a read-only, idempotent operation this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with only two sentences (Japanese and English) that front-load the key purpose and mechanism. Every word is informative and no extraneous content exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool having 12 parameters with extensive filtering, faceting, reranking, and query type options, the description only covers cross-component search and merging. It fails to mention key capabilities like filtering by webPageId, industry, tags, or the inclusion of facets and reranking, leaving agents unaware of the full functionality without examining the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having clear descriptions. The tool description does not add additional meaning beyond what the schema provides. Baseline score of 3 is appropriate as the schema already handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs cross-component semantic search across five domains (Layout, Parts, Motion, Background, Narrative) and explains it executes individual search tools in parallel and merges results by similarity score. This distinguishes it from sibling single-domain search tools like layout.search or motion.search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies it is used for multi-domain searches, it does not explicitly state when to use this tool versus individual search tools. No direct guidance on exclusions or prerequisites is provided, relying on the agent to infer from sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
section.inspectARead-onlyIdempotent
セクションパターンIDからセクションのメタデータ(section_type / position 等)とサニタイズ済み構造プレビューを取得します。セクションハンドル reftrix:page//section/ の解決に使用します。high-PII セクションの構造は秘匿されます。 / Inspect a section by section_pattern_id. Returns section metadata (section_type, position, etc.) and a sanitized structure preview, for resolving a section handle reftrix:page//section/. High-PII section structure is redacted.
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes | セクションパターンID(UUID) / Section pattern ID (UUID) | |
| include_parts_summary | No | セクション内パーツのサマリを含める(high-PII は redaction) / Include section parts summary (high-PII redacted) | |
| include_structure_preview | No | サニタイズ済み構造プレビューを含める(high-PII は秘匿) / Include sanitized structure preview (redacted for high-PII) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds that high-PII sections have redacted structure, which is behavioral context beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description includes both Japanese and English, which adds length. While the content is clear, it is slightly redundant. Every sentence serves a purpose but could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters and 100% schema coverage, the description covers the basics. It mentions return types (metadata, sanitized structure preview) and usage context. However, it lacks details on error handling or exact response format, which would be expected for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a description. The tool description adds context about usage for resolving handles, but does not add meaning beyond the existing parameter descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool inspects a section by section_pattern_id, returns metadata and a sanitized structure preview, and is used for resolving a section handle. It distinguishes from sibling inspect tools like layout.inspect and part.inspect by specifying 'section'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the tool is for resolving a section handle. While it doesn't explicitly state when not to use or alternatives, the context of sibling tools implies usage for sections. Clear context is provided without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
style.get_paletteARead-onlyIdempotent
Get brand palette. Specify ID for details or no params for list. Includes OKLCH color values and gradient definitions.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Palette ID (UUID). Returns palette details when specified. | |
| mode | No | Filter by palette mode. light/dark/both (default: both) | both |
| brand_name | No | Partial match search by brand name. | |
| gradient_options | No | Options for auto-generating gradients. | |
| include_gradients | No | Include gradient info when ID specified (default: true) | |
| auto_generate_gradients | No | Auto-generate gradients from color tokens (default: false). When true, generates gradients based on token pairs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only and idempotent. The description adds value by disclosing that the response includes 'OKLCH color values and gradient definitions,' which is useful behavioral context beyond the annotations. It does not describe potential limitations (e.g., pagination or large lists), but the core behavior is well-communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The first sentence front-loads the verb and resource, the second adds specific output details. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, nested objects) and no output schema, the description covers the essential usage modes and key output features. It does not mention search by brand_name or mode filtering, but the schema covers those. The description is sufficient for an agent to decide when to use each parameter, though it could be slightly more detailed about the auto_generate_gradients option.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the description's role is minimal. It does not elaborate on individual parameters beyond referencing 'ID' and 'no params.' The schema already provides detailed descriptions, types, and defaults. The description adds only the high-level mode distinction, which is already implied by the optional id parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get brand palette' with a specific verb and resource. It distinguishes two modes: listing all palettes (no params) and retrieving details for a specific palette (with ID). This sets it apart from sibling tools, which cover different domains like accessibility, audit, design, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use each mode: 'Specify ID for details or no params for list.' This tells the agent exactly how to invoke the tool to get either a list or a single palette. Although it doesn't mention alternatives, no sibling serves the same purpose, making the guidance clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system.healthARead-onlyIdempotent
Run MCP server health check. Checks MCP tool metrics, embedding cache stats, service initialization status, pattern services health, and returns diagnostics.
| Name | Required | Description | Default |
|---|---|---|---|
| include_metrics | No | Include MCP tool metrics (requests, errors, response times). Default: true | |
| include_cache_stats | No | Include embedding cache statistics (hits, misses, hit rate). Default: true | |
| include_tools_status | No | Include tool-level operational status (operational/unavailable, full/fallback mode). Default: true (REFTRIX-HEALTH-01) | |
| include_vision_hardware | No | Include Vision hardware status (force CPU mode, detected hardware type). Default: true (Vision CPU completion guarantee diagnostics) | |
| include_pattern_services | No | Include pattern services health (patternMatcher, benchmarkService, patternDrivenEvaluation). Default: true (REFTRIX-PATTERN-01) | |
| include_initialization_status | No | Include service initialization status (initialized categories, skipped, errors). Default: true (MCP-INIT-02) | |
| include_css_analysis_cache_stats | No | Include CSS analysis cache statistics (layout.inspect/motion.detect cache hits, misses, hit rate). Default: true (MCP-CACHE-02) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral context by detailing exactly which health components are checked (metrics, cache, initialization, pattern services, etc.), which goes beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action, and lists the checks concisely without any redundant or extraneous information. Every sentence adds value with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool checks and mentions 'returns diagnostics' but does not specify the return format (e.g., JSON structure). Since there is no output schema, some guidance on the response structure would be beneficial, but the description is sufficient for understanding the tool's purpose. The seven optional parameters are well-covered in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter having a clear description and defaults. The description provides a high-level grouping of parameters into categories (metrics, cache stats, etc.), which adds some context but does not significantly enhance what the schema already provides for individual parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a health check on the MCP server, listing specific components checked (metrics, cache stats, initialization, pattern services). It uses a specific verb-resource combination ('Run MCP server health check') and distinguishes from sibling tools that focus on specific functionalities like accessibility, design, or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. There is no mention of when not to use it or which scenarios it is best suited for. The description only states what it does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.6.0- Changed
page.analyze32 fields changed- added
Input schema / properties / asyncAdded value: +{ + "description": "Async mode (default: auto). true: enqueue a BullMQ job and return a jobId immediately (poll with page.getJobStatus). false: synchronous processing. When omitted, auto-enabled if Vision is on and Redis is available (Vision LLM exceeds the MCP timeout in CPU mode). Requires Redis when true.", + "type": "boolean" +} - added
Input schema / properties / auto_retryAdded value: +{ + "default": true, + "description": "Enable staged auto-retry on HTML fetch failure (default: true). Retries with progressively longer timeouts and relaxed waitUntil.", + "type": "boolean" +} - added
Input schema / properties / layoutOptions / properties / perSectionVisionAdded value: +{ + "default": true, + "description": "Enable per-section Vision analysis for more accurate semantic search. Requires useVision=true. Increases processing time. (default: true) / セクション単位のVision解析を有効化(処理時間増加、デフォルト: true)", + "type": "boolean" +} - added
Input schema / properties / layoutOptions / properties / scrollVisionAdded value: +{ + "default": true, + "description": "Scroll-position Smart Capture + Vision analysis at section boundaries (async mode only, default: true) / スクロール位置スマートキャプチャ + Vision解析(asyncモードのみ、デフォルト: true)", + "type": "boolean" +} - added
Input schema / properties / layoutOptions / properties / scrollVisionMaxCapturesAdded value: +{ + "default": 10, + "description": "Maximum number of scroll positions to capture (default: 10) / キャプチャするスクロール位置の最大数(デフォルト: 10)", + "maximum": 20, + "minimum": 2, + "type": "number" +} - added
Input schema / properties / layoutOptions / properties / visionBatchSizeAdded value: +{ + "default": 5, + "description": "Maximum concurrent Vision API calls when perSectionVision is enabled (default: 5) / perSectionVision有効時の最大並列Vision API呼び出し数(デフォルト: 5)", + "maximum": 10, + "minimum": 1, + "type": "number" +} - added
Input schema / properties / layoutTimeoutAdded value: +{ + "default": 120000, + "description": "Per-phase timeout for layout analysis in ms (default: 120000).", + "maximum": 300000, + "minimum": 5000, + "type": "number" +} - added
Input schema / properties / layout_firstAdded value: +{ + "default": "auto", + "description": "Layout-first mode for WebGL/Three.js sites (default: auto). auto: prioritise layout when WebGL is detected. always: always prioritise layout. never: legacy parallel processing.", + "enum": [ + "auto", + "always", + "never" + ], + "type": "string" +} - added
Input schema / properties / max_retriesAdded value: +{ + "default": 3, + "description": "Maximum retry attempts when auto_retry is true (default: 3).", + "maximum": 3, + "minimum": 1, + "type": "number" +} - added
Input schema / properties / motionOptions / properties / detect_webgl_animationsAdded value: +{ + "default": true, + "description": "Enable WebGL/Canvas animation detection (Three.js etc.) via frame-based analysis (requires Playwright, default: true) / WebGL/Canvasアニメーション検出(Three.js等、Playwright必要、デフォルト: true)", + "type": "boolean" +} - changed
Input schema / properties / motionOptions / properties / js_animation_options / properties / waitTime / defaultPrevious value: -1000New value: +2000 - changed
Input schema / properties / motionOptions / properties / js_animation_options / properties / waitTime / descriptionPrevious value: -"Wait time in ms after page load before detecting animations (default: 1000)"New value: +"Wait time in ms after page load before detecting animations (default: 2000)" - changed
Input schema / properties / motionOptions / properties / maxPatterns / defaultPrevious value: -100New value: +500 - changed
Input schema / properties / motionOptions / properties / maxPatterns / descriptionPrevious value: -"Maximum patterns to detect (default: 100)"New value: +"Maximum patterns to detect (default: 500)" - added
Input schema / properties / motionOptions / properties / runtime_optionsAdded value: +{ + "description": "Runtime detection options (active when detection_mode='runtime' or 'hybrid') / ランタイム検出オプション(detection_mode='runtime'または'hybrid'時のみ有効)", + "properties": { + "wait_for_animations": { + "default": 5000, + "description": "Animation wait time in ms (default: 5000) / アニメーション待機時間", + "maximum": 30000, + "minimum": 0, + "type": "number" + } + }, + "type": "object" +} - changed
Input schema / properties / motionOptions / properties / timeout / defaultPrevious value: -180000New value: +300000 - changed
Input schema / properties / motionOptions / properties / timeout / descriptionPrevious value: -"Motion detection timeout in milliseconds. MCP Protocol has a 60-second tool call limit. In async mode (page.analyze with async=true), this limit does not apply, allowing longer detection times for heavy WebGL/Three.js sites. (default: 180000 = 3 minutes, max: 600000 = 10 minutes)"New value: +"Motion detection timeout in milliseconds. MCP Protocol has a 60-second tool call limit. In async mode (page.analyze with async=true), this limit does not apply, allowing longer detection times for heavy WebGL/Three.js sites. (default: 300000 = 5 minutes, max: 600000 = 10 minutes)" - added
Input schema / properties / motionOptions / properties / video_optionsAdded value: +{ + "description": "Video recording + frame analysis options (active when detection_mode='video') / 動画録画+フレーム解析オプション(detection_mode='video'時のみ有効)", + "properties": { + "frame_analysis": { + "description": "Frame analysis options / フレーム解析オプション", + "properties": { + "change_threshold": { + "default": 0.005, + "description": "Change detection threshold (0-1, default: 0.005) / 変化検出閾値", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "fps": { + "default": 15, + "description": "Frame rate (1-30fps, default: 15) / フレームレート", + "maximum": 30, + "minimum": 1, + "type": "number" + }, + "gap_tolerance_ms": { + "default": 50, + "description": "Gap tolerance in ms (default: 50) / ギャップ許容時間", + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "min_motion_duration_ms": { + "default": 50, + "description": "Minimum motion duration in ms (default: 50) / 最小モーション継続時間", + "maximum": 10000, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "move_mouse": { + "default": true, + "description": "Perform mouse-move operations (default: true) / マウス移動操作を行うか", + "type": "boolean" + }, + "record_duration": { + "default": 10000, + "description": "Recording duration in ms (default: 10000) / 録画時間", + "maximum": 60000, + "minimum": 1000, + "type": "number" + }, + "scroll_page": { + "default": true, + "description": "Perform scroll operations (default: true) / スクロール操作を行うか", + "type": "boolean" + }, + "timeout": { + "default": 30000, + "description": "Page load timeout in ms (default: 30000) / ページ読み込みタイムアウト", + "maximum": 120000, + "minimum": 1000, + "type": "number" + }, + "viewport": { + "description": "Viewport size / ビューポートサイズ", + "properties": { + "height": { + "maximum": 4096, + "minimum": 240, + "type": "number" + }, + "width": { + "maximum": 4096, + "minimum": 320, + "type": "number" + } + }, + "type": "object" + }, + "wait_until": { + "default": "domcontentloaded", + "description": "Page load completion strategy (default: domcontentloaded) / ページロード完了待機戦略", + "enum": [ + "load", + "domcontentloaded", + "networkidle" + ], + "type": "string" + } + }, + "type": "object" +} - added
Input schema / properties / motionOptions / properties / webgl_animation_optionsAdded value: +{ + "description": "WebGL animation detection options (active when detect_webgl_animations=true) / WebGLアニメーション検出オプション(detect_webgl_animations=true時のみ有効)", + "properties": { + "change_threshold": { + "default": 0.005, + "description": "Change detection threshold (0.001-0.5, default: 0.005) / 変化検出閾値", + "maximum": 0.5, + "minimum": 0.001, + "type": "number" + }, + "sample_frames": { + "default": 50, + "description": "Number of frames to sample (default: 50) / サンプリングフレーム数", + "maximum": 100, + "minimum": 5, + "type": "number" + }, + "sample_interval_ms": { + "default": 100, + "description": "Frame interval in ms (default: 100) / フレーム間隔", + "maximum": 500, + "minimum": 50, + "type": "number" + }, + "timeout_ms": { + "default": 120000, + "description": "Detection timeout in ms (default: 120000) / 検出タイムアウト", + "maximum": 180000, + "minimum": 5000, + "type": "number" + } + }, + "type": "object" +} - added
Input schema / properties / motionTimeoutAdded value: +{ + "default": 300000, + "description": "Per-phase timeout for motion detection in ms (default: 300000).", + "maximum": 300000, + "minimum": 5000, + "type": "number" +} - added
Input schema / properties / narrativeOptionsAdded value: +{ + "description": "Narrative analysis options. Analyzes the page's worldview/atmosphere and layout structure. enabled=true to activate.", + "properties": { + "enabled": { + "default": true, + "description": "Enable narrative analysis (default: true)", + "type": "boolean" + }, + "generateEmbedding": { + "default": true, + "description": "Generate embeddings as part of narrative analysis (default: true)", + "type": "boolean" + }, + "includeVision": { + "default": true, + "description": "Use Vision LLM for higher-precision narrative analysis (default: true)", + "type": "boolean" + }, + "saveToDb": { + "default": true, + "description": "Save narrative analysis results to DB (default: true)", + "type": "boolean" + }, + "visionTimeoutMs": { + "default": 300000, + "description": "Narrative Vision analysis timeout in ms (default: 300000).", + "maximum": 600000, + "minimum": 30000, + "type": "number" + } + }, + "type": "object" +} - added
Input schema / properties / partial_resultsAdded value: +{ + "default": true, + "description": "Allow partial results on timeout (default: true). When true, returns results from completed phases on timeout.", + "type": "boolean" +} - added
Input schema / properties / qualityTimeoutAdded value: +{ + "default": 60000, + "description": "Per-phase timeout for quality evaluation in ms (default: 60000).", + "maximum": 60000, + "minimum": 5000, + "type": "number" +} - added
Input schema / properties / respect_robots_txtAdded value: +{ + "description": "Respect robots.txt (RFC 9309). Set to false to ignore.", + "type": "boolean" +} - added
Input schema / properties / responsiveOptions / properties / breakpoint_resolutionAdded value: +{ + "default": "range", + "description": "Breakpoint resolution: 'range' (CSS media query + VP diff estimate) or 'precise' (binary search, ±8px, 3-5x slower). (default: range) / ブレークポイント解像度(preciseは処理時間3-5倍)", + "enum": [ + "range", + "precise" + ], + "type": "string" +} - changed
Input schema / properties / timeout / defaultPrevious value: -60000New value: +600000 - changed
Input schema / properties / timeout / descriptionPrevious value: -"Overall timeout in ms (default: 60000)"New value: +"Overall timeout in ms (default: 600000)" - changed
Input schema / properties / timeout / maximumPrevious value: -300000New value: +600000 - added
Input schema / properties / timeout_strategyAdded value: +{ + "default": "progressive", + "description": "Timeout strategy. strict: fail completely on timeout. progressive: return partial results on timeout (default).", + "enum": [ + "strict", + "progressive" + ], + "type": "string" +} - added
Input schema / properties / visionOptionsAdded value: +{ + "description": "Vision CPU completion-guarantee options (Phase 3). Controls Vision model (Ollama llama3.2-vision) inference timeout, image optimisation, CPU forcing, and graceful degradation.", + "properties": { + "visionEnableProgress": { + "default": false, + "description": "Enable progress reporting during long Vision processing (default: false).", + "type": "boolean" + }, + "visionFallbackToHtmlOnly": { + "default": true, + "description": "Continue with HTML-only analysis when Vision times out / fails (Graceful Degradation, default: true) / Vision失敗時にHTML解析のみで続行(Graceful Degradation、デフォルト: true)", + "type": "boolean" + }, + "visionForceCpu": { + "default": false, + "description": "Force CPU mode even when a GPU is available (default: false).", + "type": "boolean" + }, + "visionImageMaxSize": { + "description": "Maximum image size in bytes passed to Vision analysis. Larger images are auto-compressed.", + "maximum": 10000000, + "minimum": 1024, + "type": "number" + }, + "visionTimeoutMs": { + "description": "Vision analysis timeout in ms. Auto-calculated from hardware detection when omitted.", + "maximum": 1200000, + "minimum": 1000, + "type": "number" + } + }, + "type": "object" +} - changed
Input schema / properties / waitUntil / defaultPrevious value: -"load"New value: +"networkidle" - changed
Input schema / properties / waitUntil / descriptionPrevious value: -"Page load completion criteria (default: load)"New value: +"Page load completion criteria (default: networkidle)"
- Added
section.inspect
4 tool updates
v0.3.1- Added
design.regression_test - Added
page.batch_analyze - Added
page.getBatchStatus - Added
report.generate
26 tool updates
v0.3.0- Added
accessibility.audit - Added
audit.query - Changed
background.search4 fields changed- added
Input schema / properties / filters / properties / audienceAdded value: +{ + "description": "ターゲットオーディエンス(例: b2b, b2c, enterprise) / Target audience filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / filters / properties / industryAdded value: +{ + "description": "業種フィルター(例: tech, finance, healthcare) / Industry filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / filters / properties / tagsAdded value: +{ + "description": "タグフィルター / Tag filter", + "items": { + "maxLength": 50, + "type": "string" + }, + "maxItems": 10, + "type": "array" +} - added
Input schema / properties / filters / properties / webPageUrlAdded value: +{ + "description": "WebページURLでフィルター / Filter by web page URL", + "format": "uri", + "type": "string" +}
- Added
data.delete - Added
data.export - Added
design.compare - Added
design.search_by_image - Added
design.similar_site - Added
design.track_changes - Added
embedding.quality - Changed
layout.generate_code2 fields changed- changed
Input schema / properties / options / properties / framework / descriptionPrevious value: -"出力フレームワーク(デフォルト: react)"New value: +"出力フレームワーク(デフォルト: react)。Svelte: .svelteファイル、Astro: .astroファイルを生成します。" - changed
Input schema / properties / options / properties / framework / enumPrevious value: -[ - "react", - "vue", - "html" -]New value: +[ + "react", + "vue", + "html", + "svelte", + "astro" +]
- Changed
layout.search5 fields changed- added
Input schema / properties / filters / properties / audienceAdded value: +{ + "description": "ターゲットオーディエンス(例: b2b, b2c, enterprise) / Target audience filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / filters / properties / industryAdded value: +{ + "description": "業種フィルター(例: tech, finance, healthcare) / Industry filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / filters / properties / tagsAdded value: +{ + "description": "タグフィルター / Tag filter", + "items": { + "maxLength": 50, + "type": "string" + }, + "maxItems": 10, + "type": "array" +} - added
Input schema / properties / filters / properties / webPageIdAdded value: +{ + "description": "WebページIDでフィルター / Filter by web page ID", + "format": "uuid", + "type": "string" +} - added
Input schema / properties / filters / properties / webPageUrlAdded value: +{ + "description": "WebページURLでフィルター / Filter by web page URL", + "format": "uri", + "type": "string" +}
- Changed
motion.detect1 field changed- changed
Input schema / requiredPrevious value: -[ - "html" -]New value: +[]
- Changed
motion.search5 fields changed- added
Input schema / properties / filters / properties / audienceAdded value: +{ + "description": "ターゲットオーディエンス(例: b2b, b2c, enterprise) / Target audience filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / filters / properties / industryAdded value: +{ + "description": "業種フィルター(例: tech, finance, healthcare) / Industry filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / filters / properties / tagsAdded value: +{ + "description": "タグフィルター / Tag filter", + "items": { + "maxLength": 50, + "type": "string" + }, + "maxItems": 10, + "type": "array" +} - added
Input schema / properties / filters / properties / webPageIdAdded value: +{ + "description": "WebページIDでフィルター / Filter by web page ID", + "format": "uuid", + "type": "string" +} - added
Input schema / properties / filters / properties / webPageUrlAdded value: +{ + "description": "WebページURLでフィルター / Filter by web page URL", + "format": "uri", + "type": "string" +}
- Changed
narrative.search5 fields changed- added
Input schema / properties / filters / properties / audienceAdded value: +{ + "description": "ターゲットオーディエンス(例: b2b, b2c, enterprise) / Target audience filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / filters / properties / industryAdded value: +{ + "description": "業種フィルター(例: tech, finance, healthcare) / Industry filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / filters / properties / tagsAdded value: +{ + "description": "タグフィルター / Tag filter", + "items": { + "maxLength": 50, + "type": "string" + }, + "maxItems": 10, + "type": "array" +} - added
Input schema / properties / filters / properties / webPageIdAdded value: +{ + "description": "WebページIDでフィルター / Filter by web page ID", + "format": "uuid", + "type": "string" +} - added
Input schema / properties / filters / properties / webPageUrlAdded value: +{ + "description": "WebページURLでフィルター / Filter by web page URL", + "format": "uri", + "type": "string" +}
- Changed
page.analyze3 fields changed- added
Input schema / properties / accessibilityOptionsAdded value: +{ + "description": "Accessibility audit options (v0.3.0 Phase 7.5a, opt-in). WCAG 2.1 AA compliance audit via axe-core. Timeout: 10s. Disabled by default.", + "properties": { + "enabled": { + "default": false, + "description": "Enable accessibility audit (default: false)", + "type": "boolean" + }, + "include_contrast": { + "default": true, + "description": "Include OKLCH contrast ratio check (default: true)", + "type": "boolean" + }, + "level": { + "default": "AA", + "description": "WCAG conformance level (default: AA)", + "enum": [ + "A", + "AA", + "AAA" + ], + "type": "string" + }, + "save_to_db": { + "default": true, + "description": "Save audit results to DB (default: true)", + "type": "boolean" + } + }, + "type": "object" +} - added
Input schema / properties / auto_snapshotAdded value: +{ + "default": false, + "description": "Auto-save design snapshot after analysis (default: false). Creates a point-in-time record for design.track_changes comparison.", + "type": "boolean" +} - added
Input schema / properties / performanceOptionsAdded value: +{ + "description": "Performance evaluation options (v0.3.0 Phase 7.5b, opt-in). Core Web Vitals (LCP/FID/CLS/INP/TTFB) measurement. Timeout: 40s. Disabled by default.", + "properties": { + "budget": { + "description": "Custom performance budget (default: Google recommended LCP<2.5s, CLS<0.1, FID<100ms, TTFB<800ms, INP<200ms)", + "type": "object" + }, + "enabled": { + "default": false, + "description": "Enable performance evaluation (default: false)", + "type": "boolean" + }, + "include_screenshots": { + "default": false, + "description": "Include screenshots in response (default: false)", + "type": "boolean" + }, + "save_to_db": { + "default": true, + "description": "Save evaluation results to DB (default: true)", + "type": "boolean" + } + }, + "type": "object" +}
- Changed
part.search3 fields changed- added
Input schema / properties / audienceAdded value: +{ + "description": "ターゲットオーディエンス(例: b2b, b2c, enterprise) / Target audience filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / industryAdded value: +{ + "description": "業種フィルター(例: tech, finance, healthcare) / Industry filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / tagsAdded value: +{ + "description": "タグフィルター / Tag filter", + "items": { + "maxLength": 50, + "type": "string" + }, + "maxItems": 10, + "type": "array" +}
- Added
performance.evaluate - Removed
project.get - Removed
project.list - Removed
quality.batch_evaluate - Removed
quality.getJobStatus - Added
responsive.capture - Changed
responsive.search4 fields changed- added
Input schema / properties / filters / properties / audienceAdded value: +{ + "description": "ターゲットオーディエンス(例: b2b, b2c, enterprise) / Target audience filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / filters / properties / industryAdded value: +{ + "description": "業種フィルター(例: tech, finance, healthcare) / Industry filter", + "maxLength": 100, + "type": "string" +} - added
Input schema / properties / filters / properties / tagsAdded value: +{ + "description": "タグフィルター / Tag filter", + "items": { + "maxLength": 50, + "type": "string" + }, + "maxItems": 10, + "type": "array" +} - added
Input schema / properties / filters / properties / webPageUrlAdded value: +{ + "description": "WebページURLでフィルター / Filter by web page URL", + "format": "uri", + "type": "string" +}
- Added
search.facets - Added
search.unified
26 tool updates
v0.1.8- Added
background.search - Added
brief.validate - Added
layout.batch_ingest - Added
layout.generate_code - Added
layout.ingest - Added
layout.inspect - Added
layout.search - Added
motion.detect - Added
motion.search - Added
narrative.search - Added
page.analyze - Added
page.getJobStatus - Added
part.compare - Added
part.inspect - Added
part.search - Added
preference.get - Added
preference.hear - Added
preference.reset - Added
project.get - Added
project.list - Added
quality.batch_evaluate - Added
quality.evaluate - Added
quality.getJobStatus - Added
responsive.search - Added
style.get_palette - Added
system.health
TDQS
Multiple tools have overlapping or ambiguous purposes, causing potential confusion. For example, 'design.search_by_image', 'design.similar_site', 'layout.search', 'part.search', 'background.search', 'motion.search', 'narrative.search', and 'search.unified' all perform semantic searches across different design aspects, making it hard for an agent to choose the right one without deep domain knowledge. Tools like 'page.analyze' and 'layout.ingest' also overlap in fetching and analyzing web pages, further blurring boundaries.
Tool names mostly follow a consistent dot-separated pattern (e.g., 'layout.ingest', 'design.track_changes'), with clear categorization by domain (layout, design, part, etc.). However, there are minor deviations, such as 'page.getJobStatus' using camelCase instead of dots, and some tools like 'audit.query' mixing languages in descriptions, though naming itself remains structured. Overall, the pattern is predictable and aids in organization.
With 35 tools, the count is excessive for a single server, leading to bloat and complexity. Many tools could be consolidated (e.g., multiple search tools into a unified one with parameters), and the broad scope covering accessibility, design, layout, performance, GDPR, and more makes it feel like multiple servers combined. This overwhelms agents and reduces usability, indicating poor scoping.
The tool set offers comprehensive coverage for web design analysis, including layout, design, performance, accessibility, and GDPR compliance, with CRUD-like operations for data management. However, there are minor gaps, such as limited update/delete tools for design elements (e.g., no 'design.update' or 'layout.delete') and reliance on async jobs for some analyses without clear sync alternatives. Overall, it supports core workflows but could be more streamlined.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- mcpOAuthcom.screenshotink
Screenshot, diff, audit and sitemap-capture any web page — 5 MCP tools for AI agents.
- RampifyOAuthdev.rampify
SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.
MCP server for visual regression testing: triage a PR's UI diffs from your coding agent.
9118One MCP for the Web. Easily search, crawl, navigate, and extract websites without getting blocked.…
Related MCP Servers
- -licenseNot gradedqualityFmaintenanceThis server provides cloud browser automation capabilities using Browserbase, Puppeteer, and Stagehand. This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a cloud browser environment.5,3333,406MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol (MCP) server implementation that integrates with FireCrawl for advanced web scraping capabilities.2640,1397,395MIT

Playwright MCP Serverofficial
AlicenseBqualityAmaintenanceA Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.2245,881,52736,824Apache 2.0- AlicenseAqualityDmaintenanceA comprehensive MCP server providing 15 web tools including search, scraping, screenshots, SEO audits, and DNS/SSL checks through a single installation. It delivers clean, LLM-optimized outputs so AI agents can focus on reasoning rather than parsing raw HTML.1515MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TKMD/ReftrixMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server