chore: dist/ 를 .gitignore에 추가, 캐시에서 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
144
mcp/dist/api-client.d.ts
vendored
144
mcp/dist/api-client.d.ts
vendored
@ -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<InspectionResult>;
|
||||
getIssues(inspectionId: string, category?: string, severity?: string): Promise<IssuesResult>;
|
||||
getInspections(url?: string, limit?: number): Promise<InspectionsListResult>;
|
||||
startSiteInspection(url: string, maxPages?: number, maxDepth?: number, accessibilityStandard?: string): Promise<{
|
||||
site_inspection_id: string;
|
||||
status: string;
|
||||
}>;
|
||||
getSiteInspection(siteInspectionId: string): Promise<SiteInspectionResult>;
|
||||
getSiteInspections(limit?: number): Promise<SiteInspectionsListResult>;
|
||||
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<string, string | null>;
|
||||
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;
|
||||
}
|
||||
83
mcp/dist/api-client.js
vendored
83
mcp/dist/api-client.js
vendored
@ -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
|
||||
1
mcp/dist/api-client.js.map
vendored
1
mcp/dist/api-client.js.map
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
||||
1
mcp/dist/i18n/en.d.ts
vendored
1
mcp/dist/i18n/en.d.ts
vendored
@ -1 +0,0 @@
|
||||
export declare const en: Record<string, string>;
|
||||
49
mcp/dist/i18n/en.js
vendored
49
mcp/dist/i18n/en.js
vendored
@ -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
|
||||
1
mcp/dist/i18n/en.js.map
vendored
1
mcp/dist/i18n/en.js.map
vendored
@ -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"}
|
||||
6
mcp/dist/i18n/index.d.ts
vendored
6
mcp/dist/i18n/index.d.ts
vendored
@ -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, string | number>): string;
|
||||
18
mcp/dist/i18n/index.js
vendored
18
mcp/dist/i18n/index.js
vendored
@ -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
|
||||
1
mcp/dist/i18n/index.js.map
vendored
1
mcp/dist/i18n/index.js.map
vendored
@ -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"}
|
||||
1
mcp/dist/i18n/ko.d.ts
vendored
1
mcp/dist/i18n/ko.d.ts
vendored
@ -1 +0,0 @@
|
||||
export declare const ko: Record<string, string>;
|
||||
49
mcp/dist/i18n/ko.js
vendored
49
mcp/dist/i18n/ko.js
vendored
@ -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
|
||||
1
mcp/dist/i18n/ko.js.map
vendored
1
mcp/dist/i18n/ko.js.map
vendored
@ -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"}
|
||||
2
mcp/dist/index.d.ts
vendored
2
mcp/dist/index.d.ts
vendored
@ -1,2 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
export {};
|
||||
55
mcp/dist/index.js
vendored
55
mcp/dist/index.js
vendored
@ -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
|
||||
1
mcp/dist/index.js.map
vendored
1
mcp/dist/index.js.map
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
||||
4
mcp/dist/server.d.ts
vendored
4
mcp/dist/server.d.ts
vendored
@ -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 {};
|
||||
197
mcp/dist/server.js
vendored
197
mcp/dist/server.js
vendored
@ -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
|
||||
1
mcp/dist/server.js.map
vendored
1
mcp/dist/server.js.map
vendored
File diff suppressed because one or more lines are too long
2
mcp/dist/tools/get-history.d.ts
vendored
2
mcp/dist/tools/get-history.d.ts
vendored
@ -1,2 +0,0 @@
|
||||
import { ApiClient } from "../api-client.js";
|
||||
export declare function getHistory(client: ApiClient, lang: "en" | "ko", url?: string, limit?: number): Promise<string>;
|
||||
31
mcp/dist/tools/get-history.js
vendored
31
mcp/dist/tools/get-history.js
vendored
@ -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
|
||||
1
mcp/dist/tools/get-history.js.map
vendored
1
mcp/dist/tools/get-history.js.map
vendored
@ -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"}
|
||||
2
mcp/dist/tools/get-inspection.d.ts
vendored
2
mcp/dist/tools/get-inspection.d.ts
vendored
@ -1,2 +0,0 @@
|
||||
import { ApiClient } from "../api-client.js";
|
||||
export declare function getInspection(client: ApiClient, id: string, lang: "en" | "ko"): Promise<string>;
|
||||
93
mcp/dist/tools/get-inspection.js
vendored
93
mcp/dist/tools/get-inspection.js
vendored
@ -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
|
||||
1
mcp/dist/tools/get-inspection.js.map
vendored
1
mcp/dist/tools/get-inspection.js.map
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"get-inspection.js","sourceRoot":"","sources":["../../src/tools/get-inspection.ts"],"names":[],"mappings":"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"}
|
||||
2
mcp/dist/tools/get-issues.d.ts
vendored
2
mcp/dist/tools/get-issues.d.ts
vendored
@ -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<string>;
|
||||
53
mcp/dist/tools/get-issues.js
vendored
53
mcp/dist/tools/get-issues.js
vendored
@ -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
|
||||
1
mcp/dist/tools/get-issues.js.map
vendored
1
mcp/dist/tools/get-issues.js.map
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"get-issues.js","sourceRoot":"","sources":["../../src/tools/get-issues.ts"],"names":[],"mappings":"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"}
|
||||
2
mcp/dist/tools/inspect-page.d.ts
vendored
2
mcp/dist/tools/inspect-page.d.ts
vendored
@ -1,2 +0,0 @@
|
||||
import { ApiClient } from "../api-client.js";
|
||||
export declare function inspectPage(client: ApiClient, url: string, lang: "en" | "ko", standard?: string): Promise<string>;
|
||||
91
mcp/dist/tools/inspect-page.js
vendored
91
mcp/dist/tools/inspect-page.js
vendored
@ -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
|
||||
1
mcp/dist/tools/inspect-page.js.map
vendored
1
mcp/dist/tools/inspect-page.js.map
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"inspect-page.js","sourceRoot":"","sources":["../../src/tools/inspect-page.ts"],"names":[],"mappings":"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"}
|
||||
2
mcp/dist/tools/inspect-site.d.ts
vendored
2
mcp/dist/tools/inspect-site.d.ts
vendored
@ -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<string>;
|
||||
13
mcp/dist/tools/inspect-site.js
vendored
13
mcp/dist/tools/inspect-site.js
vendored
@ -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
|
||||
1
mcp/dist/tools/inspect-site.js.map
vendored
1
mcp/dist/tools/inspect-site.js.map
vendored
@ -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"}
|
||||
Reference in New Issue
Block a user