Token导航 LogoToken导航TokenDH.com
Krds MCP Server logo
设计创作stdio官方级别未说明来源级核验

Krds MCP Server

MCP Server

KRDS MCP服务器是一个用于分析和提取KRDS网站UI/UX设计系统的工具,支持实时设计模式提取和多框架组件代码生成,适用于政府标准UI开发。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
TypeScript设计图像生成

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

VoidLight00

提供方

VoidLight00

最后核验

2026/5/17 20:22

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -d \

详细介绍

KRDS MCP服务器🇰🇷

KRDS网站(https://v04.krds.go.kr)的模型上下文协议(MCP)服务器,用于提取和分析UI/UX设计系统。与Magic MCP类似,提取设计模式并生成可在各种框架中使用的组件代码。

🚀 主要功能

设计系统MCP工具(Magic MCP风格)

该服务器可以实时分析和提取KRDS网站的设计系统,帮助开发者轻松实现政府标准UI。

🎨 4个关键工具

  1. analyze_design -KRDS设计系统分析

- 提取调色板 - 字体排印规则分析 - 确定边距和布局模式 - 列出UI组件

  1. extract_component -提取特定UI组件

- 提取标题、推送、导航等主要组件结构 - 分析HTML结构和CSS样式 - 提取各组件的设计令牌 - 包括实际使用示例

  1. get_design_tokens -提取设计令牌

- 提取CSS变量和自定义属性 - 颜色系统(Primary,Secondary,状态颜色) - 字体大小(字体大小、行距、字距) - 空白系统(Spacing,Padding,Margin) - 阴影和边框样式

  1. generate_code -生成特定于框架的组件代码

- 反应:JSX+CSS/样式化组件/顺风 - 视图:SFC(单文件组件)형식 - Angular:TypeScript+模板 - 纯HTML:香草HTML+CSS

主要功能

  • 🔄 实时提取:从KRDS网站实时提取设计信息
  • 🛡️ 回退模式:在网络故障时提供静态设计模式
  • 🎯 遵守政府标准:反映韩国政府网站可访问性和设计准则
  • 性能优化:通过缓存和重试逻辑提供可靠的服务
  • 🇰🇷 韩文支援:完全支持韩文文本和UI标签

📁 项目结构

krds-mcp-server/
├── src/                      # 소스 코드
│   ├── server.ts            # MCP 서버 메인 진입점
│   ├── tools/               # MCP 도구 구현체
│   │   ├── content-retrieval.ts  # 콘텐츠 검색 도구
│   │   ├── search.ts        # 검색 기능
│   │   ├── navigation.ts    # 웹사이트 내비게이션
│   │   ├── export.ts        # 데이터 내보내기 도구
│   │   ├── image-tools.ts   # 이미지 처리
│   │   └── korean-text.ts   # 한국어 텍스트 분석
│   ├── scraping/            # 웹 스크래핑 모듈
│   │   ├── krds-scraper.ts  # KRDS 메인 스크래퍼
│   │   ├── navigation-crawler.ts  # 내비게이션 크롤러
│   │   ├── content-integration.ts # 콘텐츠 통합
│   │   └── rate-limiter.ts        # 속도 제한기
│   ├── parsing/             # 콘텐츠 파싱
│   │   ├── content-parser.ts      # 콘텐츠 파서
│   │   ├── korean-text-processor.ts # 한국어 텍스트 프로세서
│   │   ├── image-extractor.ts     # 이미지 추출기
│   │   ├── metadata-extractor.ts  # 메타데이터 추출기
│   │   └── table-parser.ts        # 테이블 파서
│   ├── cache/               # 캐싱 시스템
│   │   ├── cache-manager.ts       # 캐시 관리자
│   │   ├── memory-cache.ts        # 메모리 캐시
│   │   ├── redis-cache.ts         # Redis 캐시
│   │   ├── file-cache.ts          # 파일 캐시
│   │   └── cache-strategies.ts    # 캐시 전략
│   ├── korean/              # 한국어 언어 처리
│   ├── types/               # TypeScript 타입 정의
│   │   └── index.ts
│   └── utils/               # 유틸리티 함수
│       ├── config.ts        # 설정
│       └── logger.ts        # 로깅
├── tests/                   # 테스트 스위트
│   ├── unit/               # 단위 테스트
│   ├── integration/        # 통합 테스트
│   ├── e2e/               # 엔드투엔드 테스트
│   ├── helpers/           # 테스트 유틸리티
│   └── mock-data/         # 테스트 데이터
├── docs/                   # 문서
├── config/                 # 설정 파일
└── dist/                  # 컴파일된 출력물

🛠️ 安装方法

前提条件

  • Node.js 18.0.0或更高版本
  • npm 9.0.0或更高版本
  • TypeScript 5.3.0或更高版本
  • Redis(可选,用于分布式缓存)

快速入门

  1. 复制存储库
   git clone https://github.com/yourusername/krds-mcp-server.git
   cd krds-mcp-server
  1. 安装从属关系
   npm install
  1. 首选参数
   cp .env.example .env
   # .env 파일을 편집하여 설정을 입력하세요
  1. 构建项目
   npm run build
  1. 服务器启动
   npm start

设置开发环境

# 핫 리로딩을 사용한 개발 모드 실행
npm run dev

# 특정 설정으로 실행
NODE_ENV=development LOG_LEVEL=debug npm run dev

Docker设置

# Docker 이미지 빌드
npm run docker:build

# Docker Compose로 실행
docker-compose up -d

# 또는 단일 컨테이너 실행
npm run docker:run

设置⚙ENT

环境变量

在项目根目录中 .env 创建文件:

# 서버 설정
NODE_ENV=production
PORT=3000
LOG_LEVEL=info

# KRDS 웹사이트 설정
KRDS_BASE_URL=https://v04.krds.go.kr
KRDS_TIMEOUT=30000
KRDS_RETRY_ATTEMPTS=3
KRDS_RETRY_DELAY=1000
KRDS_USER_AGENT=KRDS-MCP-Server/1.0.0

# 속도 제한 설정
KRDS_RATE_LIMIT_ENABLED=true
KRDS_REQUESTS_PER_MINUTE=60
KRDS_CONCURRENT_REQUESTS=5

# Puppeteer 설정
PUPPETEER_HEADLESS=true
PUPPETEER_TIMEOUT=30000
PUPPETEER_SLOWMO=0
PUPPETEER_VIEWPORT_WIDTH=1920
PUPPETEER_VIEWPORT_HEIGHT=1080

# 캐시 설정
CACHE_TYPE=memory,redis,file
CACHE_TTL=3600
CACHE_MAX_SIZE=104857600

# 메모리 캐시
CACHE_MEMORY_MAX_MB=100
CACHE_MEMORY_CLEANUP_INTERVAL=300

# Redis 캐시 (선택사항)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
REDIS_KEY_PREFIX=krds:

# 파일 캐시
CACHE_FILE_BASE_DIR=/tmp/krds-cache
CACHE_FILE_MAX_SIZE_MB=500
CACHE_FILE_CLEANUP_INTERVAL=3600

# 한국어 언어 처리
KOREAN_PROCESSING_ENABLED=true
KOREAN_STEMMING_ENABLED=true
KOREAN_ROMANIZATION_ENABLED=true
KOREAN_KEYWORD_EXTRACTION_ENABLED=true

# 내보내기 설정
EXPORT_MAX_FILE_SIZE_MB=50
EXPORT_DEFAULT_FORMAT=json

# 보안 설정
CORS_ENABLED=true
CORS_ORIGIN=*
HELMET_ENABLED=true
RATE_LIMIT_WINDOW_MS=60000
RATE_LIMIT_MAX_REQUESTS=100

高级设置

详细的设置选项包括: 设置指南请参阅。

🧪 测试

运行测试

# 모든 테스트 실행
npm test

# 특정 테스트 스위트 실행
npm run test:unit          # 단위 테스트만 실행
npm run test:integration   # 통합 테스트만 실행
npm run test:e2e          # 엔드투엔드 테스트만 실행

# 커버리지와 함께 테스트 실행
npm run test:coverage

# 감시 모드에서 테스트 실행
npm run test:watch

# 특정 패턴으로 테스트 실행
npm test -- --testNamePattern="Korean.*processing"

测试结构

  • 测试单位 (tests/unit/:独立测试单个组件
  • 集成测试 (tests/integration/:测试组件之间的交互
  • E2E测试 (tests/e2e/:测试完整的工作流和MCP协议合规性

韩语文本测试

测试套件包括全面的韩语语言处理测试:

// 한국어 텍스트 테스트 예제
describe('한국어 텍스트 처리', () => {
  it('정부 정책 문서를 처리해야 함', async () => {
    const koreanText = '교육부는 새로운 정책을 발표했습니다.';
    const analysis = await koreanProcessor.analyzeText(koreanText);
    
    expect(analysis.keywords).toContain('교육부');
    expect(analysis.romanized).toBe('gyoyugbuneun saeroun jeongchaegeul balphyohaetsseumnida');
    expect(analysis.sentiment).toBe('positive');
  });
});

性能测试

# 성능 벤치마크 실행
npm run test:performance

# 메모리 사용량 프로파일링
NODE_OPTIONS="--max-old-space-size=2048" npm run test:e2e

📚 MCP工具文档

内容搜索工具

搜索包含全文处理功能的韩国政府文件。

{
  "name": "retrieve_content",
  "arguments": {
    "url": "https://v04.krds.go.kr/policy/education/2024/plan",
    "includeImages": true,
    "includeAttachments": true,
    "processKoreanText": true
  }
}

参数:

  • url (字符串)-KRDS文档URL
  • documentId (字符串)-用于代替URL的文档标识符
  • includeImages (布尔型,默认值:true)-图像提取和处理
  • includeAttachments (布尔型,默认值:true)-包括附件
  • processKoreanText (布尔型,默认值:true)-启用韩文文本处理

回复:

{
  "success": true,
  "document": {
    "id": "krds-doc-2024-edu-001",
    "title": "Educational Policy Development Plan 2024",
    "titleKorean": "2024년 교육정책 발전방안",
    "content": "Full document content...",
    "contentKorean": "한국어 문서 내용...",
    "metadata": {
      "agency": "Ministry of Education",
      "agencyKorean": "교육부",
      "keywords": ["education", "policy"],
      "keywordsKorean": ["교육", "정책"],
      "language": "ko"
    },
    "images": [...],
    "attachments": [...]
  },
  "executionTimeMs": 2500
}

搜索工具

通过高级韩语支持搜索KRDS文档。

{
  "name": "search_documents",
  "arguments": {
    "query": "교육정책",
    "category": "교육",
    "maxResults": 20,
    "sortBy": "date",
    "sortOrder": "desc"
  }
}

参数:

  • query (字符串)-搜索查询(韩语支持)
  • category (字符串,可选)-要搜索的类别(例如“教育”、“健康”、“经济”)
  • maxResults (数字,默认值:10)-最大结果数
  • sortBy (字符串,默认值:“relevance”)-排序标准(“date”、“relevance”、“title”)
  • sortOrder (字符串,默认值:“desc”)-排序顺序(“asc”,“desc”)

韩语文本分析工具

执行高级韩语文本分析,包括语言学功能。

{
  "name": "analyze_korean_text",
  "arguments": {
    "texts": ["교육부는 새로운 정책을 발표했습니다."],
    "includeRomanization": true,
    "includeSentiment": true,
    "extractKeywords": true,
    "analyzeStemming": true
  }
}

参数:

  • texts (数组)-要分析的韩文文本数组
  • includeRomanization (布尔型,默认值:false)-包括罗马字符转换
  • includeSentiment (布尔型,默认值:false)-包括情感分析
  • extractKeywords (布尔型,默认值:true)-提取关键字
  • analyzeStemming (布尔型,默认值:false)-包括词干分析

回复:

{
  "success": true,
  "analyses": [{
    "originalText": "교육부는 새로운 정책을 발표했습니다.",
    "romanized": "gyoyugbuneun saeroun jeongchaegeul balphyohaetsseumnida",
    "keywords": ["교육부", "정책", "발표"],
    "stemmed": ["교육부", "새롭다", "정책", "발표"],
    "sentiment": "positive",
    "wordCount": 6,
    "characterCount": 19
  }]
}

导航工具

浏览KRDS网站结构和类别。

{
  "name": "navigate_site",
  "arguments": {
    "action": "list_categories"
  }
}

{
  "name": "navigate_site", 
  "arguments": {
    "action": "browse_category",
    "category": "education"
  }
}

参数:

  • action (字符串)-要执行的操作(“list_categories”、“browse_category”、“get_sitemap”)
  • category (字符串,可选)-要导航的类别(例如“education”、“health”、“economy”)
  • depth (数字,可选)-导航深度(默认值:2)

导出工具

以多种格式导出文档。

{
  "name": "export_documents",
  "arguments": {
    "documents": [/* 문서 객체들 */],
    "format": "pdf",
    "includeImages": true,
    "filename": "education-policies-2024"
  }
}

参数:

  • documents (数组)-要导出的文档对象数组
  • format (字符串)-导出格式(“json”、“csv”、“xlsx”、“pdf”、“xml”)
  • includeImages (布尔型,默认值:false)-是否包括图像
  • filename (字符串,可选)-输出文件名
  • encoding (字符串,默认值:“utf-8”)-文本编码

支持类型: json, csv, xlsx, pdf, xml

🚀 性能

优化功能

  • 连接池:重新使用浏览器实例和HTTP连接
  • 🧠 智能缓存:多层缓存,包括韩文文本优化
  • 🔄 并行处理:并行文档处理
  • 速度限制:使用可设置的限制进行郑重的写入
  • 🗄️ 内存管理:自动清理和资源监控

性能基准

最新硬件的典型性能指标:

任务时间吞吐量 |------|------|---------| |搜索文档1.5-3秒20-40文档/分钟 |韩语文本分析50-200ms 300-1200文本/分钟 |搜索查询0.8-2秒30-75查询/分钟 |缓存点击量5-20 ms 3000+运算/分钟|

监视

# 성능 메트릭 보기
curl http://localhost:3000/metrics

# 캐시 통계 확인
curl http://localhost:3000/cache/stats

# 건강 상태 확인
curl http://localhost:3000/health

🔧 开发

代码质量

# 린팅
npm run lint
npm run lint:fix

# 포매팅  
npm run format
npm run format:check

# 타입 검사
npm run typecheck

调试

# 디버그 로그와 함께 실행
LOG_LEVEL=debug npm run dev

# 특정 디버그 네임스페이스 활성화
DEBUG=krds:scraper,krds:parser npm run dev

# 성능 프로파일링
NODE_OPTIONS="--inspect" npm run dev

添加新工具

  1. src/tools/your-tool.ts在中创建工具文件:
import type { Tool } from '@modelcontextprotocol/sdk/types.js';

export const yourTool: Tool = {
  name: 'your_tool_name',
  description: '도구 설명',
  inputSchema: {
    type: 'object',
    properties: {
      param: { type: 'string', description: '매개변수 설명' }
    },
    required: ['param']
  }
};

export async function yourToolHandler(params: any, context: ToolContext) {
  // 구현 코드
}
  1. src/tools/index.ts在中注册
  2. tests/unit/tools/your-tool.test.ts将测试添加到
  3. 更新文档

🚢 部署

生产部署

# 프로덕션용 빌드
npm run build

# 프로덕션 서버 시작
NODE_ENV=production npm start

# 또는 PM2 사용
pm2 start ecosystem.config.js

部署Docker

# 이미지 빌드
docker build -t krds-mcp-server .

# 컨테이너 실행
docker run -d \
  --name krds-mcp-server \
  -p 3000:3000 \
  -e NODE_ENV=production \
  -e REDIS_HOST=redis \
  krds-mcp-server

按环境设置

  • 开发: .env.development
  • 测试: .env.test
  • 暂存: .env.staging
  • 生产: .env.production

健康状况检查

服务器提供健康检查端点:

# 기본 건강 상태 검사
GET /health

# 상세 건강 상태 검사
GET /health/detailed

# 준비 상태 검사
GET /ready

监视和记录

  • 结构化日志记录:包含关联ID的JSON日志
  • 度量:Prometheus兼容的度量端点
  • 错误跟踪:全面的错误记录,包括堆栈跟踪
  • 性能监视:请求时间和资源使用率

🤝 贡献

欢迎您的贡献!有关详细信息,请访问 贡献指南请参阅。

为贡献者快速入门

  1. 存储库叉
  2. 创建功能分支: git checkout -b feature/amazing-feature
  3. 创建更改
  4. 添加新功能的测试
  5. 确认所有测试通过: npm test
  6. 提交更改: git commit -m 'Add amazing feature'
  7. 推送到分支: git push origin feature/amazing-feature
  8. 打开Pull Request

开发指南

  • 符合TypeScript最佳实践
  • 添加对新功能的全面测试
  • 更新API更改的文档
  • 使用反式提交消息
  • 确保正确测试韩语文本处理

📄 许可证

MIT许可证-详细信息 许可证 请参考文件。

🐛 问题和支持

  • 错误报告:
  • 功能请求:
  • 安全问题: security@yourserver.com发送电子邮件至

📖 附加文档

🙏 致谢

  • 提供KRDS数据访问的韩国政府
  • MCP SDK开发者和社区
  • 韩语语言处理库维护人员
  • 开源测试和开发工具
  • 贡献者和社区成员

______________________________________________________________________

为韩国政府数据社区制作的❤

目录标签

目录标签

TypeScript设计图像生成设计系统分析本地部署UI组件生成政府标准UI实时提取多框架支持

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP