diff --git a/.gitignore b/.gitignore index 22787c5..9245a96 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ __pycache__/ *.pyc node_modules/ +dist/ .next/ .DS_Store backups/ diff --git a/mcp/dist/api-client.d.ts b/mcp/dist/api-client.d.ts deleted file mode 100644 index 3529ee4..0000000 --- a/mcp/dist/api-client.d.ts +++ /dev/null @@ -1,144 +0,0 @@ -/** - * REST API client for Web Inspector backend. - * Uses native fetch (Node 20+) with AbortController timeout. - */ -export declare class ApiClient { - private baseUrl; - constructor(baseUrl: string); - startInspection(url: string, accessibilityStandard?: string): Promise<{ - inspection_id: string; - status: string; - }>; - getInspection(inspectionId: string): Promise; - getIssues(inspectionId: string, category?: string, severity?: string): Promise; - getInspections(url?: string, limit?: number): Promise; - startSiteInspection(url: string, maxPages?: number, maxDepth?: number, accessibilityStandard?: string): Promise<{ - site_inspection_id: string; - status: string; - }>; - getSiteInspection(siteInspectionId: string): Promise; - getSiteInspections(limit?: number): Promise; - private get; - private post; - private request; -} -export interface Issue { - code: string; - category: string; - severity: "critical" | "major" | "minor" | "info"; - message: string; - element?: string; - line?: number; - suggestion: string; - wcag_criterion?: string; - kwcag_criterion?: string; - kwcag_name?: string; - kwcag_principle?: string; -} -export interface CategoryResult { - score: number; - grade: string; - total_issues: number; - critical: number; - major: number; - minor: number; - info: number; - issues: Issue[]; - wcag_level?: string; -} -export interface InspectionResult { - inspection_id: string; - url: string; - status: "running" | "completed" | "error"; - created_at: string; - completed_at?: string; - duration_seconds?: number; - overall_score: number; - grade: string; - accessibility_standard?: string; - categories: { - html_css: CategoryResult; - accessibility: CategoryResult; - seo: CategoryResult; - performance_security: CategoryResult; - }; - summary: { - total_issues: number; - critical: number; - major: number; - minor: number; - info: number; - }; -} -export interface IssuesResult { - inspection_id: string; - total: number; - filters: Record; - issues: Issue[]; -} -export interface InspectionsListResult { - items: Array<{ - inspection_id: string; - url: string; - created_at: string; - overall_score: number; - grade: string; - total_issues: number; - }>; - total: number; - page: number; - limit: number; - total_pages: number; -} -export interface SiteInspectionResult { - site_inspection_id: string; - root_url: string; - domain: string; - status: "crawling" | "inspecting" | "completed" | "error"; - created_at: string; - completed_at?: string; - config: { - max_pages: number; - max_depth: number; - concurrency: number; - accessibility_standard: string; - }; - discovered_pages: Array<{ - url: string; - depth: number; - parent_url?: string; - inspection_id?: string; - status: string; - title?: string; - overall_score?: number; - grade?: string; - }>; - aggregate_scores?: { - overall_score: number; - grade: string; - html_css: number; - accessibility: number; - seo: number; - performance_security: number; - total_issues: number; - pages_inspected: number; - pages_total: number; - }; -} -export interface SiteInspectionsListResult { - items: Array<{ - site_inspection_id: string; - root_url: string; - domain: string; - status: string; - created_at: string; - pages_total: number; - pages_inspected: number; - overall_score?: number; - grade?: string; - }>; - total: number; - page: number; - limit: number; - total_pages: number; -} diff --git a/mcp/dist/api-client.js b/mcp/dist/api-client.js deleted file mode 100644 index abada65..0000000 --- a/mcp/dist/api-client.js +++ /dev/null @@ -1,83 +0,0 @@ -/** - * REST API client for Web Inspector backend. - * Uses native fetch (Node 20+) with AbortController timeout. - */ -const DEFAULT_TIMEOUT = 120_000; // 120 seconds -export class ApiClient { - baseUrl; - constructor(baseUrl) { - this.baseUrl = baseUrl; - // Strip trailing slash - this.baseUrl = baseUrl.replace(/\/+$/, ""); - } - // ── Single-page inspection ────────────────────────────── - async startInspection(url, accessibilityStandard) { - const body = { url }; - if (accessibilityStandard) - body.accessibility_standard = accessibilityStandard; - return this.post("/api/inspections", body); - } - async getInspection(inspectionId) { - return this.get(`/api/inspections/${inspectionId}`); - } - async getIssues(inspectionId, category, severity) { - const params = new URLSearchParams(); - if (category) - params.set("category", category); - if (severity) - params.set("severity", severity); - const qs = params.toString(); - return this.get(`/api/inspections/${inspectionId}/issues${qs ? `?${qs}` : ""}`); - } - async getInspections(url, limit = 10) { - const params = new URLSearchParams({ limit: String(limit) }); - if (url) - params.set("url", url); - return this.get(`/api/inspections?${params.toString()}`); - } - // ── Site-wide inspection ──────────────────────────────── - async startSiteInspection(url, maxPages, maxDepth, accessibilityStandard) { - const body = { url }; - if (maxPages !== undefined) - body.max_pages = maxPages; - if (maxDepth !== undefined) - body.max_depth = maxDepth; - if (accessibilityStandard) - body.accessibility_standard = accessibilityStandard; - return this.post("/api/site-inspections", body); - } - async getSiteInspection(siteInspectionId) { - return this.get(`/api/site-inspections/${siteInspectionId}`); - } - async getSiteInspections(limit = 10) { - return this.get(`/api/site-inspections?limit=${limit}`); - } - // ── HTTP helpers ──────────────────────────────────────── - async get(path) { - return this.request("GET", path); - } - async post(path, body) { - return this.request("POST", path, body); - } - async request(method, path, body) { - const controller = new AbortController(); - const timer = setTimeout(() => controller.abort(), DEFAULT_TIMEOUT); - try { - const res = await fetch(`${this.baseUrl}${path}`, { - method, - headers: body ? { "Content-Type": "application/json" } : undefined, - body: body ? JSON.stringify(body) : undefined, - signal: controller.signal, - }); - if (!res.ok) { - const text = await res.text().catch(() => ""); - throw new Error(`API ${method} ${path} failed: ${res.status} ${text}`); - } - return (await res.json()); - } - finally { - clearTimeout(timer); - } - } -} -//# sourceMappingURL=api-client.js.map \ No newline at end of file diff --git a/mcp/dist/api-client.js.map b/mcp/dist/api-client.js.map deleted file mode 100644 index 6d95cf8..0000000 --- a/mcp/dist/api-client.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/mcp/dist/i18n/en.d.ts b/mcp/dist/i18n/en.d.ts deleted file mode 100644 index 6d3c8e0..0000000 --- a/mcp/dist/i18n/en.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const en: Record; diff --git a/mcp/dist/i18n/en.js b/mcp/dist/i18n/en.js deleted file mode 100644 index c9c2878..0000000 --- a/mcp/dist/i18n/en.js +++ /dev/null @@ -1,49 +0,0 @@ -export const en = { - // --- Tool descriptions --- - "inspect_page.description": "Inspect a single web page for HTML/CSS quality, accessibility (WCAG/KWCAG), SEO, and performance/security. Returns scores, grades, and top issues. Takes 10-30 seconds.", - "inspect_page.param.url": "The URL of the web page to inspect (must start with http:// or https://)", - "inspect_page.param.standard": "Accessibility standard to check against (default: wcag_2.1_aa)", - "inspect_site.description": "Start a site-wide crawl and inspection. Crawls links from the root URL and inspects each page. Returns a site_inspection_id for tracking. Use get_inspection to check results later.", - "inspect_site.param.url": "Root URL of the site to crawl and inspect", - "inspect_site.param.max_pages": "Maximum number of pages to crawl (default: 20, max: 500, 0: unlimited)", - "inspect_site.param.max_depth": "Maximum link depth to crawl (default: 2, max: 3)", - "get_inspection.description": "Get detailed inspection results by inspection ID. Works for both single-page and site inspections.", - "get_inspection.param.id": "The inspection_id or site_inspection_id to retrieve", - "get_issues.description": "Get a filtered list of issues found during an inspection. Filter by category and/or severity.", - "get_issues.param.id": "The inspection_id to get issues for", - "get_issues.param.category": "Filter by category: html_css, accessibility, seo, or performance_security", - "get_issues.param.severity": "Filter by severity: critical, major, minor, or info", - "get_history.description": "List recent inspection history. Optionally filter by URL substring.", - "get_history.param.url": "Optional URL substring to filter results", - "get_history.param.limit": "Number of results to return (default: 10)", - "common.param.language": "Response language: 'en' for English, 'ko' for Korean", - // --- Result formatting --- - "result.title": "Web Inspection Result", - "result.overall_score": "Overall Score", - "result.duration": "Duration", - "result.standard": "Standard", - "result.category_scores": "Category Scores", - "result.category": "Category", - "result.score": "Score", - "result.grade": "Grade", - "result.issues": "Issues", - "result.issue_summary": "Issue Summary", - "result.total": "Total", - "result.top_issues": "Top Issues (Critical/Major)", - "result.message": "Message", - "result.element": "Element", - "result.suggestion": "Suggestion", - "result.severity": "Severity", - "result.more_issues_hint": "Use `get_issues` with inspection_id '{inspectionId}' to see all issues with filtering.", - // --- Tool responses --- - "inspect_page.timeout": "Inspection timed out for {url}. Inspection ID: {inspectionId}. Try get_inspection later.", - "inspect_site.started": "Site inspection started successfully.", - "inspect_site.follow_up_hint": "The crawl is running in the background. Use `get_inspection` with ID '{id}' to check the result after a few minutes.", - "get_inspection.not_found": "Inspection '{id}' not found.", - "get_issues.title": "Issue List", - "get_issues.total": "Total Issues", - "get_issues.filters": "Filters", - "get_history.title": "Inspection History", - "get_history.total": "Total Records", -}; -//# sourceMappingURL=en.js.map \ No newline at end of file diff --git a/mcp/dist/i18n/en.js.map b/mcp/dist/i18n/en.js.map deleted file mode 100644 index 96d0fc3..0000000 --- a/mcp/dist/i18n/en.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,EAAE,GAA2B;IACxC,4BAA4B;IAC5B,0BAA0B,EACxB,yKAAyK;IAC3K,wBAAwB,EACtB,0EAA0E;IAC5E,6BAA6B,EAC3B,gEAAgE;IAClE,0BAA0B,EACxB,sLAAsL;IACxL,wBAAwB,EAAE,2CAA2C;IACrE,8BAA8B,EAC5B,wEAAwE;IAC1E,8BAA8B,EAC5B,kDAAkD;IACpD,4BAA4B,EAC1B,oGAAoG;IACtG,yBAAyB,EACvB,qDAAqD;IACvD,wBAAwB,EACtB,+FAA+F;IACjG,qBAAqB,EAAE,qCAAqC;IAC5D,2BAA2B,EACzB,2EAA2E;IAC7E,2BAA2B,EACzB,qDAAqD;IACvD,yBAAyB,EACvB,qEAAqE;IACvE,uBAAuB,EAAE,0CAA0C;IACnE,yBAAyB,EAAE,2CAA2C;IACtE,uBAAuB,EAAE,sDAAsD;IAE/E,4BAA4B;IAC5B,cAAc,EAAE,uBAAuB;IACvC,sBAAsB,EAAE,eAAe;IACvC,iBAAiB,EAAE,UAAU;IAC7B,iBAAiB,EAAE,UAAU;IAC7B,wBAAwB,EAAE,iBAAiB;IAC3C,iBAAiB,EAAE,UAAU;IAC7B,cAAc,EAAE,OAAO;IACvB,cAAc,EAAE,OAAO;IACvB,eAAe,EAAE,QAAQ;IACzB,sBAAsB,EAAE,eAAe;IACvC,cAAc,EAAE,OAAO;IACvB,mBAAmB,EAAE,6BAA6B;IAClD,gBAAgB,EAAE,SAAS;IAC3B,gBAAgB,EAAE,SAAS;IAC3B,mBAAmB,EAAE,YAAY;IACjC,iBAAiB,EAAE,UAAU;IAC7B,yBAAyB,EACvB,wFAAwF;IAE1F,yBAAyB;IACzB,sBAAsB,EACpB,0FAA0F;IAC5F,sBAAsB,EAAE,uCAAuC;IAC/D,6BAA6B,EAC3B,sHAAsH;IACxH,0BAA0B,EAAE,8BAA8B;IAC1D,kBAAkB,EAAE,YAAY;IAChC,kBAAkB,EAAE,cAAc;IAClC,oBAAoB,EAAE,SAAS;IAC/B,mBAAmB,EAAE,oBAAoB;IACzC,mBAAmB,EAAE,eAAe;CACrC,CAAC"} \ No newline at end of file diff --git a/mcp/dist/i18n/index.d.ts b/mcp/dist/i18n/index.d.ts deleted file mode 100644 index 0bf4526..0000000 --- a/mcp/dist/i18n/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Translate a key with optional interpolation. - * Usage: t("inspect_page.description", "ko") - * t("result.title", "en", { url: "..." }) - */ -export declare function t(key: string, lang: "en" | "ko", params?: Record): string; diff --git a/mcp/dist/i18n/index.js b/mcp/dist/i18n/index.js deleted file mode 100644 index a0c5794..0000000 --- a/mcp/dist/i18n/index.js +++ /dev/null @@ -1,18 +0,0 @@ -import { en } from "./en.js"; -import { ko } from "./ko.js"; -const messages = { en, ko }; -/** - * Translate a key with optional interpolation. - * Usage: t("inspect_page.description", "ko") - * t("result.title", "en", { url: "..." }) - */ -export function t(key, lang, params) { - let text = messages[lang]?.[key] || messages["en"]?.[key] || key; - if (params) { - for (const [k, v] of Object.entries(params)) { - text = text.replace(new RegExp(`\\{${k}\\}`, "g"), String(v)); - } - } - return text; -} -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/mcp/dist/i18n/index.js.map b/mcp/dist/i18n/index.js.map deleted file mode 100644 index 86ed677..0000000 --- a/mcp/dist/i18n/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,MAAM,QAAQ,GAA2C,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAEpE;;;;GAIG;AACH,MAAM,UAAU,CAAC,CACf,GAAW,EACX,IAAiB,EACjB,MAAwC;IAExC,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IACjE,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"} \ No newline at end of file diff --git a/mcp/dist/i18n/ko.d.ts b/mcp/dist/i18n/ko.d.ts deleted file mode 100644 index f600a08..0000000 --- a/mcp/dist/i18n/ko.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const ko: Record; diff --git a/mcp/dist/i18n/ko.js b/mcp/dist/i18n/ko.js deleted file mode 100644 index 8c04d85..0000000 --- a/mcp/dist/i18n/ko.js +++ /dev/null @@ -1,49 +0,0 @@ -export const ko = { - // --- 도구 설명 --- - "inspect_page.description": "단일 웹 페이지의 HTML/CSS 품질, 접근성(WCAG/KWCAG), SEO, 성능/보안을 검사합니다. 점수, 등급, 주요 이슈를 반환합니다. 10-30초 소요.", - "inspect_page.param.url": "검사할 웹 페이지 URL (http:// 또는 https://로 시작)", - "inspect_page.param.standard": "접근성 검사 표준 (기본값: wcag_2.1_aa)", - "inspect_site.description": "사이트 전체 크롤링 및 검사를 시작합니다. 루트 URL에서 링크를 따라가며 각 페이지를 검사합니다. site_inspection_id를 반환하며, get_inspection으로 결과를 확인할 수 있습니다.", - "inspect_site.param.url": "크롤링 및 검사할 사이트의 루트 URL", - "inspect_site.param.max_pages": "최대 크롤링 페이지 수 (기본값: 20, 최대: 500, 0: 무제한)", - "inspect_site.param.max_depth": "최대 크롤링 깊이 (기본값: 2, 최대: 3)", - "get_inspection.description": "검사 ID로 상세 결과를 조회합니다. 단일 페이지 및 사이트 검사 모두 지원.", - "get_inspection.param.id": "조회할 inspection_id 또는 site_inspection_id", - "get_issues.description": "검사에서 발견된 이슈 목록을 필터링하여 조회합니다. 카테고리 및 심각도로 필터링 가능.", - "get_issues.param.id": "이슈를 조회할 inspection_id", - "get_issues.param.category": "카테고리 필터: html_css, accessibility, seo, performance_security", - "get_issues.param.severity": "심각도 필터: critical, major, minor, info", - "get_history.description": "최근 검사 이력을 조회합니다. URL로 필터링 가능.", - "get_history.param.url": "결과를 필터링할 URL (부분 문자열)", - "get_history.param.limit": "반환할 결과 수 (기본값: 10)", - "common.param.language": "응답 언어: 'en' 영어, 'ko' 한국어", - // --- 결과 포맷 --- - "result.title": "웹 검사 결과", - "result.overall_score": "종합 점수", - "result.duration": "소요 시간", - "result.standard": "검사 표준", - "result.category_scores": "카테고리별 점수", - "result.category": "카테고리", - "result.score": "점수", - "result.grade": "등급", - "result.issues": "이슈", - "result.issue_summary": "이슈 요약", - "result.total": "전체", - "result.top_issues": "주요 이슈 (Critical/Major)", - "result.message": "메시지", - "result.element": "요소", - "result.suggestion": "개선 제안", - "result.severity": "심각도", - "result.more_issues_hint": "`get_issues` 도구에 inspection_id '{inspectionId}'를 사용하여 모든 이슈를 필터링해서 확인할 수 있습니다.", - // --- 도구 응답 --- - "inspect_page.timeout": "{url} 검사가 시간 초과되었습니다. Inspection ID: {inspectionId}. 나중에 get_inspection으로 확인해 보세요.", - "inspect_site.started": "사이트 검사가 성공적으로 시작되었습니다.", - "inspect_site.follow_up_hint": "크롤링이 백그라운드에서 실행 중입니다. 몇 분 후 `get_inspection`에 ID '{id}'를 사용하여 결과를 확인하세요.", - "get_inspection.not_found": "검사 '{id}'를 찾을 수 없습니다.", - "get_issues.title": "이슈 목록", - "get_issues.total": "전체 이슈 수", - "get_issues.filters": "필터", - "get_history.title": "검사 이력", - "get_history.total": "전체 레코드", -}; -//# sourceMappingURL=ko.js.map \ No newline at end of file diff --git a/mcp/dist/i18n/ko.js.map b/mcp/dist/i18n/ko.js.map deleted file mode 100644 index a0db81f..0000000 --- a/mcp/dist/i18n/ko.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ko.js","sourceRoot":"","sources":["../../src/i18n/ko.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,EAAE,GAA2B;IACxC,gBAAgB;IAChB,0BAA0B,EACxB,6FAA6F;IAC/F,wBAAwB,EACtB,yCAAyC;IAC3C,6BAA6B,EAC3B,8BAA8B;IAChC,0BAA0B,EACxB,oHAAoH;IACtH,wBAAwB,EAAE,uBAAuB;IACjD,8BAA8B,EAC5B,yCAAyC;IAC3C,8BAA8B,EAC5B,2BAA2B;IAC7B,4BAA4B,EAC1B,6CAA6C;IAC/C,yBAAyB,EACvB,yCAAyC;IAC3C,wBAAwB,EACtB,kDAAkD;IACpD,qBAAqB,EAAE,uBAAuB;IAC9C,2BAA2B,EACzB,6DAA6D;IAC/D,2BAA2B,EACzB,sCAAsC;IACxC,yBAAyB,EACvB,+BAA+B;IACjC,uBAAuB,EAAE,uBAAuB;IAChD,yBAAyB,EAAE,oBAAoB;IAC/C,uBAAuB,EAAE,0BAA0B;IAEnD,gBAAgB;IAChB,cAAc,EAAE,SAAS;IACzB,sBAAsB,EAAE,OAAO;IAC/B,iBAAiB,EAAE,OAAO;IAC1B,iBAAiB,EAAE,OAAO;IAC1B,wBAAwB,EAAE,UAAU;IACpC,iBAAiB,EAAE,MAAM;IACzB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,sBAAsB,EAAE,OAAO;IAC/B,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,wBAAwB;IAC7C,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,IAAI;IACtB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,KAAK;IACxB,yBAAyB,EACvB,gFAAgF;IAElF,gBAAgB;IAChB,sBAAsB,EACpB,oFAAoF;IACtF,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAC3B,0EAA0E;IAC5E,0BAA0B,EAAE,uBAAuB;IACnD,kBAAkB,EAAE,OAAO;IAC3B,kBAAkB,EAAE,SAAS;IAC7B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,OAAO;IAC5B,mBAAmB,EAAE,QAAQ;CAC9B,CAAC"} \ No newline at end of file diff --git a/mcp/dist/index.d.ts b/mcp/dist/index.d.ts deleted file mode 100644 index b798801..0000000 --- a/mcp/dist/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -export {}; diff --git a/mcp/dist/index.js b/mcp/dist/index.js deleted file mode 100644 index 06cc4c0..0000000 --- a/mcp/dist/index.js +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env node -import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; -import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js"; -import express from "express"; -import { createServer } from "./server.js"; -const TRANSPORT = process.env.TRANSPORT || "stdio"; -const API_URL = process.env.API_URL || "http://localhost:8011"; -const PORT = parseInt(process.env.PORT || "3100", 10); -const LANGUAGE = (process.env.LANGUAGE || "en"); -async function main() { - const server = createServer(API_URL, LANGUAGE); - if (TRANSPORT === "http") { - await startHttp(server, PORT); - } - else { - await startStdio(server); - } -} -async function startStdio(server) { - const transport = new StdioServerTransport(); - await server.connect(transport); - console.error(`[web-inspector-mcp] stdio mode, API: ${API_URL}`); -} -async function startHttp(server, port) { - const app = express(); - app.use(express.json()); - app.post("/mcp", async (req, res) => { - const transport = new StreamableHTTPServerTransport({ - sessionIdGenerator: undefined, - }); - res.on("close", () => { - transport.close(); - }); - await server.connect(transport); - await transport.handleRequest(req, res, req.body); - }); - app.get("/mcp", async (req, res) => { - res.writeHead(405).end(JSON.stringify({ error: "Use POST for MCP requests" })); - }); - app.delete("/mcp", async (req, res) => { - res.writeHead(405).end(JSON.stringify({ error: "Session management not supported" })); - }); - // Health check - app.get("/health", (_req, res) => { - res.json({ status: "ok", transport: "http", api_url: API_URL }); - }); - app.listen(port, () => { - console.error(`[web-inspector-mcp] HTTP mode on port ${port}, API: ${API_URL}`); - }); -} -main().catch((err) => { - console.error("Fatal error:", err); - process.exit(1); -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/mcp/dist/index.js.map b/mcp/dist/index.js.map deleted file mode 100644 index c1efa45..0000000 --- a/mcp/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/mcp/dist/server.d.ts b/mcp/dist/server.d.ts deleted file mode 100644 index 0d4d329..0000000 --- a/mcp/dist/server.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Server } from "@modelcontextprotocol/sdk/server/index.js"; -type Lang = "en" | "ko"; -export declare function createServer(apiUrl: string, defaultLang: Lang): Server; -export {}; diff --git a/mcp/dist/server.js b/mcp/dist/server.js deleted file mode 100644 index 5034b88..0000000 --- a/mcp/dist/server.js +++ /dev/null @@ -1,197 +0,0 @@ -import { Server } from "@modelcontextprotocol/sdk/server/index.js"; -import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js"; -import { ApiClient } from "./api-client.js"; -import { t } from "./i18n/index.js"; -import { inspectPage } from "./tools/inspect-page.js"; -import { inspectSite } from "./tools/inspect-site.js"; -import { getInspection } from "./tools/get-inspection.js"; -import { getIssues } from "./tools/get-issues.js"; -import { getHistory } from "./tools/get-history.js"; -const STANDARDS = [ - "wcag_2.0_a", - "wcag_2.0_aa", - "wcag_2.1_aa", - "wcag_2.2_aa", - "kwcag_2.1", - "kwcag_2.2", -]; -export function createServer(apiUrl, defaultLang) { - const client = new ApiClient(apiUrl); - const server = new Server({ name: "web-inspector-mcp", version: "1.0.0" }, { capabilities: { tools: {} } }); - // ── List tools ────────────────────────────────────────── - server.setRequestHandler(ListToolsRequestSchema, async () => ({ - tools: [ - { - name: "inspect_page", - description: t("inspect_page.description", defaultLang), - inputSchema: { - type: "object", - properties: { - url: { - type: "string", - description: t("inspect_page.param.url", defaultLang), - }, - accessibility_standard: { - type: "string", - enum: STANDARDS, - description: t("inspect_page.param.standard", defaultLang), - }, - language: { - type: "string", - enum: ["en", "ko"], - description: t("common.param.language", defaultLang), - }, - }, - required: ["url"], - }, - }, - { - name: "inspect_site", - description: t("inspect_site.description", defaultLang), - inputSchema: { - type: "object", - properties: { - url: { - type: "string", - description: t("inspect_site.param.url", defaultLang), - }, - max_pages: { - type: "number", - description: t("inspect_site.param.max_pages", defaultLang), - }, - max_depth: { - type: "number", - description: t("inspect_site.param.max_depth", defaultLang), - }, - accessibility_standard: { - type: "string", - enum: STANDARDS, - description: t("inspect_page.param.standard", defaultLang), - }, - language: { - type: "string", - enum: ["en", "ko"], - description: t("common.param.language", defaultLang), - }, - }, - required: ["url"], - }, - }, - { - name: "get_inspection", - description: t("get_inspection.description", defaultLang), - inputSchema: { - type: "object", - properties: { - id: { - type: "string", - description: t("get_inspection.param.id", defaultLang), - }, - language: { - type: "string", - enum: ["en", "ko"], - description: t("common.param.language", defaultLang), - }, - }, - required: ["id"], - }, - }, - { - name: "get_issues", - description: t("get_issues.description", defaultLang), - inputSchema: { - type: "object", - properties: { - id: { - type: "string", - description: t("get_issues.param.id", defaultLang), - }, - category: { - type: "string", - enum: [ - "html_css", - "accessibility", - "seo", - "performance_security", - ], - description: t("get_issues.param.category", defaultLang), - }, - severity: { - type: "string", - enum: ["critical", "major", "minor", "info"], - description: t("get_issues.param.severity", defaultLang), - }, - language: { - type: "string", - enum: ["en", "ko"], - description: t("common.param.language", defaultLang), - }, - }, - required: ["id"], - }, - }, - { - name: "get_history", - description: t("get_history.description", defaultLang), - inputSchema: { - type: "object", - properties: { - url: { - type: "string", - description: t("get_history.param.url", defaultLang), - }, - limit: { - type: "number", - description: t("get_history.param.limit", defaultLang), - }, - language: { - type: "string", - enum: ["en", "ko"], - description: t("common.param.language", defaultLang), - }, - }, - }, - }, - ], - })); - // ── Call tool ──────────────────────────────────────────── - server.setRequestHandler(CallToolRequestSchema, async (request) => { - const { name, arguments: args = {} } = request.params; - const lang = args.language || defaultLang; - try { - let text; - switch (name) { - case "inspect_page": - text = await inspectPage(client, args.url, lang, args.accessibility_standard); - break; - case "inspect_site": - text = await inspectSite(client, args.url, lang, args.max_pages, args.max_depth, args.accessibility_standard); - break; - case "get_inspection": - text = await getInspection(client, args.id, lang); - break; - case "get_issues": - text = await getIssues(client, args.id, lang, args.category, args.severity); - break; - case "get_history": - text = await getHistory(client, lang, args.url, args.limit); - break; - default: - return { - content: [{ type: "text", text: `Unknown tool: ${name}` }], - isError: true, - }; - } - return { content: [{ type: "text", text }] }; - } - catch (error) { - const message = error instanceof Error ? error.message : String(error); - return { - content: [{ type: "text", text: `Error: ${message}` }], - isError: true, - }; - } - }); - return server; -} -//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/mcp/dist/server.js.map b/mcp/dist/server.js.map deleted file mode 100644 index 41f6511..0000000 --- a/mcp/dist/server.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/mcp/dist/tools/get-history.d.ts b/mcp/dist/tools/get-history.d.ts deleted file mode 100644 index 448ed9e..0000000 --- a/mcp/dist/tools/get-history.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { ApiClient } from "../api-client.js"; -export declare function getHistory(client: ApiClient, lang: "en" | "ko", url?: string, limit?: number): Promise; diff --git a/mcp/dist/tools/get-history.js b/mcp/dist/tools/get-history.js deleted file mode 100644 index 378b69c..0000000 --- a/mcp/dist/tools/get-history.js +++ /dev/null @@ -1,31 +0,0 @@ -import { t } from "../i18n/index.js"; -export async function getHistory(client, lang, url, limit) { - const result = await client.getInspections(url, limit || 10); - const lines = []; - lines.push(`# ${t("get_history.title", lang)}`); - lines.push(`**${t("get_history.total", lang)}**: ${result.total}`); - if (url) { - lines.push(`**Filter**: ${url}`); - } - lines.push(""); - if (result.items.length === 0) { - lines.push("No inspection records found."); - return lines.join("\n"); - } - lines.push("| # | URL | Score | Grade | Issues | Date |"); - lines.push("|---|---|---|---|---|---|"); - for (let i = 0; i < result.items.length; i++) { - const item = result.items[i]; - const date = item.created_at.split("T")[0]; - const urlShort = item.url.length > 50 ? item.url.slice(0, 47) + "..." : item.url; - lines.push(`| ${i + 1} | ${urlShort} | ${item.overall_score} | ${item.grade} | ${item.total_issues} | ${date} |`); - } - lines.push(""); - // Include inspection IDs for follow-up - lines.push("## Inspection IDs"); - for (const item of result.items) { - lines.push(`- ${item.url}: \`${item.inspection_id}\``); - } - return lines.join("\n"); -} -//# sourceMappingURL=get-history.js.map \ No newline at end of file diff --git a/mcp/dist/tools/get-history.js.map b/mcp/dist/tools/get-history.js.map deleted file mode 100644 index 68e6daa..0000000 --- a/mcp/dist/tools/get-history.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-history.js","sourceRoot":"","sources":["../../src/tools/get-history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiB,EACjB,IAAiB,EACjB,GAAY,EACZ,KAAc;IAEd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAE7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,IAAI,GAAG,EAAE,CAAC;QACR,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GACZ,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAClE,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,GAAG,CAAC,MAAM,QAAQ,MAAM,IAAI,CAAC,aAAa,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,YAAY,MAAM,IAAI,IAAI,CACtG,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,uCAAuC;IACvC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"} \ No newline at end of file diff --git a/mcp/dist/tools/get-inspection.d.ts b/mcp/dist/tools/get-inspection.d.ts deleted file mode 100644 index a7901d3..0000000 --- a/mcp/dist/tools/get-inspection.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { ApiClient } from "../api-client.js"; -export declare function getInspection(client: ApiClient, id: string, lang: "en" | "ko"): Promise; diff --git a/mcp/dist/tools/get-inspection.js b/mcp/dist/tools/get-inspection.js deleted file mode 100644 index c48f18d..0000000 --- a/mcp/dist/tools/get-inspection.js +++ /dev/null @@ -1,93 +0,0 @@ -import { t } from "../i18n/index.js"; -export async function getInspection(client, id, lang) { - // Try single-page first, then site inspection - try { - const r = await client.getInspection(id); - return formatSingleResult(r, lang); - } - catch { - // Might be a site inspection ID - } - try { - const r = await client.getSiteInspection(id); - return formatSiteResult(r, lang); - } - catch { - return t("get_inspection.not_found", lang, { id }); - } -} -function formatSingleResult(r, lang) { - const lines = []; - const duration = r.duration_seconds - ? `${r.duration_seconds.toFixed(1)}s` - : "—"; - lines.push(`# ${t("result.title", lang)}`); - lines.push(`**URL**: ${r.url}`); - lines.push(`**Status**: ${r.status}`); - lines.push(`**Inspection ID**: ${r.inspection_id}`); - if (r.status !== "completed") { - return lines.join("\n"); - } - lines.push(`**${t("result.overall_score", lang)}**: ${r.overall_score}/100 (${r.grade})`); - lines.push(`**${t("result.duration", lang)}**: ${duration}`); - if (r.accessibility_standard) { - lines.push(`**${t("result.standard", lang)}**: ${r.accessibility_standard}`); - } - lines.push(""); - // Category scores - lines.push(`## ${t("result.category_scores", lang)}`); - lines.push(`| ${t("result.category", lang)} | ${t("result.score", lang)} | ${t("result.grade", lang)} | ${t("result.issues", lang)} |`); - lines.push("|---|---|---|---|"); - for (const [key, label] of [ - ["html_css", "HTML/CSS"], - ["accessibility", "Accessibility"], - ["seo", "SEO"], - ["performance_security", "Performance/Security"], - ]) { - const cat = r.categories[key]; - if (!cat) - continue; - lines.push(`| ${label} | ${cat.score} | ${cat.grade} | ${cat.total_issues} |`); - } - lines.push(""); - lines.push(`> ${t("result.more_issues_hint", lang, { inspectionId: r.inspection_id })}`); - return lines.join("\n"); -} -function formatSiteResult(r, lang) { - const lines = []; - lines.push(`# Site ${t("result.title", lang)}`); - lines.push(`**Root URL**: ${r.root_url}`); - lines.push(`**Domain**: ${r.domain}`); - lines.push(`**Status**: ${r.status}`); - lines.push(`**Site Inspection ID**: ${r.site_inspection_id}`); - if (r.aggregate_scores) { - const a = r.aggregate_scores; - lines.push(""); - lines.push(`**${t("result.overall_score", lang)}**: ${a.overall_score}/100 (${a.grade})`); - lines.push(`**Pages**: ${a.pages_inspected}/${a.pages_total}`); - lines.push(""); - lines.push(`## ${t("result.category_scores", lang)}`); - lines.push(`| ${t("result.category", lang)} | ${t("result.score", lang)} |`); - lines.push("|---|---|"); - lines.push(`| HTML/CSS | ${a.html_css} |`); - lines.push(`| Accessibility | ${a.accessibility} |`); - lines.push(`| SEO | ${a.seo} |`); - lines.push(`| Performance/Security | ${a.performance_security} |`); - lines.push(""); - lines.push(`**Total Issues**: ${a.total_issues}`); - } - // Page list - if (r.discovered_pages.length > 0) { - lines.push(""); - lines.push("## Pages"); - lines.push("| URL | Score | Grade | Status |"); - lines.push("|---|---|---|---|"); - for (const p of r.discovered_pages) { - const score = p.overall_score !== undefined ? String(p.overall_score) : "—"; - const grade = p.grade || "—"; - lines.push(`| ${p.url} | ${score} | ${grade} | ${p.status} |`); - } - } - return lines.join("\n"); -} -//# sourceMappingURL=get-inspection.js.map \ No newline at end of file diff --git a/mcp/dist/tools/get-inspection.js.map b/mcp/dist/tools/get-inspection.js.map deleted file mode 100644 index 1d5e6df..0000000 --- a/mcp/dist/tools/get-inspection.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-inspection.js","sourceRoot":"","sources":["../../src/tools/get-inspection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/mcp/dist/tools/get-issues.d.ts b/mcp/dist/tools/get-issues.d.ts deleted file mode 100644 index c39a3a5..0000000 --- a/mcp/dist/tools/get-issues.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { ApiClient } from "../api-client.js"; -export declare function getIssues(client: ApiClient, id: string, lang: "en" | "ko", category?: string, severity?: string): Promise; diff --git a/mcp/dist/tools/get-issues.js b/mcp/dist/tools/get-issues.js deleted file mode 100644 index 3f6be97..0000000 --- a/mcp/dist/tools/get-issues.js +++ /dev/null @@ -1,53 +0,0 @@ -import { t } from "../i18n/index.js"; -export async function getIssues(client, id, lang, category, severity) { - const result = await client.getIssues(id, category, severity); - const lines = []; - lines.push(`# ${t("get_issues.title", lang)}`); - lines.push(`**Inspection ID**: ${result.inspection_id}`); - lines.push(`**${t("get_issues.total", lang)}**: ${result.total}`); - // Show applied filters - const activeFilters = Object.entries(result.filters) - .filter(([, v]) => v) - .map(([k, v]) => `${k}: ${v}`) - .join(", "); - if (activeFilters) { - lines.push(`**${t("get_issues.filters", lang)}**: ${activeFilters}`); - } - lines.push(""); - if (result.issues.length === 0) { - lines.push("No issues found."); - return lines.join("\n"); - } - // Issue table - lines.push(`| # | ${t("result.severity", lang)} | Code | ${t("result.category", lang)} | ${t("result.message", lang)} |`); - lines.push("|---|---|---|---|---|"); - for (let i = 0; i < result.issues.length; i++) { - const issue = result.issues[i]; - const msg = issue.message.length > 80 - ? issue.message.slice(0, 77) + "..." - : issue.message; - lines.push(`| ${i + 1} | ${issue.severity} | ${issue.code} | ${issue.category} | ${msg} |`); - } - lines.push(""); - // Detailed view for first 10 - const detailCount = Math.min(result.issues.length, 10); - lines.push("## Details"); - for (let i = 0; i < detailCount; i++) { - const issue = result.issues[i]; - lines.push(`### ${i + 1}. [${issue.severity.toUpperCase()}] ${issue.code}`); - lines.push(`- **${t("result.message", lang)}**: ${issue.message}`); - if (issue.element) { - lines.push(`- **${t("result.element", lang)}**: \`${issue.element}\``); - } - lines.push(`- **${t("result.suggestion", lang)}**: ${issue.suggestion}`); - if (issue.kwcag_criterion) { - lines.push(`- **KWCAG**: ${issue.kwcag_criterion} ${issue.kwcag_name || ""}`); - } - else if (issue.wcag_criterion) { - lines.push(`- **WCAG**: ${issue.wcag_criterion}`); - } - lines.push(""); - } - return lines.join("\n"); -} -//# sourceMappingURL=get-issues.js.map \ No newline at end of file diff --git a/mcp/dist/tools/get-issues.js.map b/mcp/dist/tools/get-issues.js.map deleted file mode 100644 index 7ca83c9..0000000 --- a/mcp/dist/tools/get-issues.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-issues.js","sourceRoot":"","sources":["../../src/tools/get-issues.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/mcp/dist/tools/inspect-page.d.ts b/mcp/dist/tools/inspect-page.d.ts deleted file mode 100644 index 0159fd2..0000000 --- a/mcp/dist/tools/inspect-page.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { ApiClient } from "../api-client.js"; -export declare function inspectPage(client: ApiClient, url: string, lang: "en" | "ko", standard?: string): Promise; diff --git a/mcp/dist/tools/inspect-page.js b/mcp/dist/tools/inspect-page.js deleted file mode 100644 index bec3982..0000000 --- a/mcp/dist/tools/inspect-page.js +++ /dev/null @@ -1,91 +0,0 @@ -import { t } from "../i18n/index.js"; -const POLL_INTERVAL = 2_000; // 2 seconds -const MAX_POLLS = 60; // 120 seconds total -export async function inspectPage(client, url, lang, standard) { - // 1. Start inspection - const { inspection_id } = await client.startInspection(url, standard); - // 2. Poll until completion - let result = null; - for (let i = 0; i < MAX_POLLS; i++) { - await sleep(POLL_INTERVAL); - const data = await client.getInspection(inspection_id); - if (data.status === "completed") { - result = data; - break; - } - if (data.status === "error") { - throw new Error(`Inspection failed for ${url}`); - } - } - // 3. Timeout — return partial info - if (!result) { - return t("inspect_page.timeout", lang, { url, inspectionId: inspection_id }); - } - // 4. Format result as markdown - return formatResult(result, lang); -} -function formatResult(r, lang) { - const lines = []; - const duration = r.duration_seconds - ? `${r.duration_seconds.toFixed(1)}s` - : "—"; - lines.push(`# ${t("result.title", lang)}`); - lines.push(`**URL**: ${r.url}`); - lines.push(`**${t("result.overall_score", lang)}**: ${r.overall_score}/100 (${r.grade})`); - lines.push(`**${t("result.duration", lang)}**: ${duration}`); - if (r.accessibility_standard) { - lines.push(`**${t("result.standard", lang)}**: ${r.accessibility_standard}`); - } - lines.push(""); - // Category scores table - lines.push(`## ${t("result.category_scores", lang)}`); - lines.push(`| ${t("result.category", lang)} | ${t("result.score", lang)} | ${t("result.grade", lang)} | ${t("result.issues", lang)} |`); - lines.push("|---|---|---|---|"); - const catNames = [ - ["html_css", "HTML/CSS"], - ["accessibility", "Accessibility"], - ["seo", "SEO"], - ["performance_security", "Performance/Security"], - ]; - for (const [key, label] of catNames) { - const cat = r.categories[key]; - if (!cat) - continue; - const issueStr = `${cat.total_issues} (C:${cat.critical} M:${cat.major} m:${cat.minor} i:${cat.info})`; - lines.push(`| ${label} | ${cat.score} | ${cat.grade} | ${issueStr} |`); - } - lines.push(""); - // Issue summary - const s = r.summary; - lines.push(`## ${t("result.issue_summary", lang)}`); - lines.push(`**${t("result.total", lang)}**: ${s.total_issues} (Critical: ${s.critical}, Major: ${s.major}, Minor: ${s.minor}, Info: ${s.info})`); - lines.push(""); - // Top issues (critical + major, max 5) - const topIssues = collectTopIssues(r, 5); - if (topIssues.length > 0) { - lines.push(`## ${t("result.top_issues", lang)}`); - for (const issue of topIssues) { - const sevLabel = issue.severity.toUpperCase(); - lines.push(`### [${sevLabel}] ${issue.code}`); - lines.push(`- **${t("result.message", lang)}**: ${issue.message}`); - if (issue.element) { - lines.push(`- **${t("result.element", lang)}**: \`${issue.element}\``); - } - lines.push(`- **${t("result.suggestion", lang)}**: ${issue.suggestion}`); - lines.push(""); - } - } - // Hint for more issues - lines.push(`> ${t("result.more_issues_hint", lang, { inspectionId: r.inspection_id })}`); - return lines.join("\n"); -} -function collectTopIssues(r, max) { - const all = Object.values(r.categories).flatMap((cat) => cat.issues); - return all - .filter((i) => i.severity === "critical" || i.severity === "major") - .slice(0, max); -} -function sleep(ms) { - return new Promise((resolve) => setTimeout(resolve, ms)); -} -//# sourceMappingURL=inspect-page.js.map \ No newline at end of file diff --git a/mcp/dist/tools/inspect-page.js.map b/mcp/dist/tools/inspect-page.js.map deleted file mode 100644 index 75745c5..0000000 --- a/mcp/dist/tools/inspect-page.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"inspect-page.js","sourceRoot":"","sources":["../../src/tools/inspect-page.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/mcp/dist/tools/inspect-site.d.ts b/mcp/dist/tools/inspect-site.d.ts deleted file mode 100644 index 9af58a2..0000000 --- a/mcp/dist/tools/inspect-site.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { ApiClient } from "../api-client.js"; -export declare function inspectSite(client: ApiClient, url: string, lang: "en" | "ko", maxPages?: number, maxDepth?: number, standard?: string): Promise; diff --git a/mcp/dist/tools/inspect-site.js b/mcp/dist/tools/inspect-site.js deleted file mode 100644 index 8e3f4cb..0000000 --- a/mcp/dist/tools/inspect-site.js +++ /dev/null @@ -1,13 +0,0 @@ -import { t } from "../i18n/index.js"; -export async function inspectSite(client, url, lang, maxPages, maxDepth, standard) { - const result = await client.startSiteInspection(url, maxPages, maxDepth, standard); - const lines = []; - lines.push(`# ${t("inspect_site.started", lang)}`); - lines.push(`**URL**: ${url}`); - lines.push(`**Site Inspection ID**: ${result.site_inspection_id}`); - lines.push(`**Status**: ${result.status}`); - lines.push(""); - lines.push(`> ${t("inspect_site.follow_up_hint", lang, { id: result.site_inspection_id })}`); - return lines.join("\n"); -} -//# sourceMappingURL=inspect-site.js.map \ No newline at end of file diff --git a/mcp/dist/tools/inspect-site.js.map b/mcp/dist/tools/inspect-site.js.map deleted file mode 100644 index 0c4f200..0000000 --- a/mcp/dist/tools/inspect-site.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"inspect-site.js","sourceRoot":"","sources":["../../src/tools/inspect-site.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAiB,EACjB,GAAW,EACX,IAAiB,EACjB,QAAiB,EACjB,QAAiB,EACjB,QAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEnF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,CAAC,6BAA6B,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC,EAAE,CACjF,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"} \ No newline at end of file