Token导航 LogoToken导航

MCP Server · 设计创作

dewdew v5

Dewdew Portfolio 是一个现代化的个人作品集网站,支持多语言、响应式设计和AI聊天功能。

未说明官方级别未说明来源级核验工具 0
TypeScriptAI聊天设计

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
yeonjulee1005
提供方
yeonjulee1005

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

4

仓库热度

收录来源

1 个

MCP World

选型结论

dewdew v5 属于设计创作类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,客户端适配情况以官方文档为准,没有现成的安装命令;接入前要先准备 会话凭据。

分类

设计创作

传输方式

未说明

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

公开资料仍需确认:安装命令

详细介绍

🚀 Dewdew投资组合

软件工程师李延珠的个人产品组合网站\ 全栈开发者注重现代Web技术和用户体验的作品集

🌐 网站

______________________________________________________________________

项目概述

Dewdew投资组合是软件工程师李延珠的个人投资组合网站,利用最新的网络技术制作 全栈项目是。

🎯 项目目标

  • 📱 响应式设计:在所有设备上优化用户体验
  • 🌍 多语言支持:完全支持韩语/英语
  • ⚡ 优化的性能:Core Web Vitals得分最高
  • 🎨 现代UI/UX:基于Nuxt UI的时尚界面
  • 🔒 类型安全性:完全支持TypeScript

______________________________________________________________________

🛠️ 技术堆栈

前端

  • 🎨 框架:Nuxt 4.2.1(Vue 3+SSR/SSG)
  • 📝 语言:TypeScript 5.6.3
  • 🎭 样式:Sass+顺风CSS+Nuxt UI 4.2.1
  • ⚡ 生成工具:快7
  • 📊 分析:Vercel分析+速度洞察
  • 📱 磷钨酸:基于Service Worker的离线支持

后端和数据库

  • 🗄️ 数据库:Supabase(PostgreSQL)
  • 🔐 认证:Supabase认证
  • 📁 存储:数据库存储
  • 🌐 API:Nuxt服务器API

DevOps和工具

  • 🚀 部署:Vercel
  • 📦 程序包管理器:Bun
  • 🔄 版本控制:GitHub
  • 🎯 编辑:VS代码+Vim

______________________________________________________________________

🏗️ 项目体系结构

📁 项目结构

dewdew_v5/
├── 📱 app/                    # Nuxt 4 앱 디렉토리
│   ├── 🧩 components/         # Vue 컴포넌트 (Atomic Design)
│   │   ├── a/                 # Atomic 컴포넌트
│   │   │   ├── footer/        # 푸터 컴포넌트 (Group, Information, Menu, Sns)
│   │   │   ├── Forecast.client.vue
│   │   │   ├── IconText.vue
│   │   │   ├── LanguageChange.vue
│   │   │   ├── ThemeChange.vue
│   │   │   └── TooltipButton.vue
│   │   ├── chat/              # AI 채팅 관련 컴포넌트
│   │   │   ├── Container.vue
│   │   │   ├── Content.vue
│   │   │   ├── DynamicComponent.vue
│   │   │   ├── Error.server.vue
│   │   │   └── Skeleton.server.vue
│   │   ├── dynamic/           # 동적 렌더링 카드 컴포넌트
│   │   │   └── card/
│   │   │       ├── ContactForm.client.vue
│   │   │       ├── EducationCard.server.vue
│   │   │       ├── ExperienceCarousel.server.vue
│   │   │       ├── ExperienceTimeline.server.vue
│   │   │       ├── Greeting.server.vue
│   │   │       ├── HobbyCarousel.server.vue
│   │   │       ├── ImageCarousel.server.vue
│   │   │       ├── Profile.server.vue
│   │   │       ├── ProjectCarousel.server.vue
│   │   │       ├── Skill.server.vue
│   │   │       ├── SkillRadar.server.vue
│   │   │       ├── SocialLinks.server.vue
│   │   │       └── WeaknessesCard.server.vue
│   │   ├── InstallPwa.client.vue  # PWA 설치 프롬프트
│   │   ├── SpeedInsights.client.vue  # 성능 모니터링
│   │   └── intro/             # 인트로 애니메이션 컴포넌트
│   │       ├── Controller.client.vue
│   │       ├── TransitionMessage.client.vue
│   │       ├── TransitionMessage.server.vue
│   │       ├── TypeTitle.client.vue
│   │       └── TypeTitle.server.vue
│   ├── 🔧 composables/        # Vue Composables (도메인별 분리)
│   │   ├── chat/              # AI 채팅 관련
│   │   │   └── useChat.ts     # 채팅 상태 관리 및 스트리밍 처리
│   │   ├── data/              # 데이터 관련
│   │   │   ├── hello.ts
│   │   │   ├── korLocation.json
│   │   │   ├── locations.ts
│   │   │   └── weather.ts
│   │   ├── forecast/          # 날씨 예보 관련
│   │   │   └── translateCoords.ts
│   │   ├── formatting/        # 포맷팅 유틸
│   │   │   ├── useDateFormatter.ts
│   │   │   └── useFormatter.ts
│   │   ├── query/             # 쿼리 관련
│   │   │   └── index.ts
│   │   ├── ui/                # UI 유틸리티
│   │   │   ├── imageStorage.ts
│   │   │   ├── useColorUtils.ts
│   │   │   └── useUtils.ts
│   │   ├── validation/        # 유효성 검사
│   │   │   └── useValidation.ts
│   │   └── useSkillIcon.ts    # 스킬 아이콘 유틸
│   ├── 🔌 plugins/            # Nuxt 플러그인
│   │   ├── analytics.client.ts  # Vercel Analytics
│   │   └── senitize.ts        # DOMPurify HTML 정제
│   ├── 📄 pages/              # 파일 기반 라우팅
│   │   ├── ai/                # AI 채팅 관련 페이지
│   │   │   ├── index.vue     # AI 채팅 메인 페이지
│   │   │   └── components.vue # AI 컴포넌트 데모 페이지
│   │   └── index.vue          # 메인 페이지
│   ├── 🎨 layouts/            # 레이아웃 컴포넌트
│   │   ├── center.vue
│   │   └── default.vue
│   ├── 🏪 stores/             # Pinia 상태 관리
│   │   ├── locationWeather.ts # 위치 및 날씨 상태
│   │   └── menu.ts            # 메뉴 상태
│   ├── 📝 types/              # TypeScript 타입 정의 (도메인별)
│   │   ├── chat.ts            # 채팅 관련 타입
│   │   ├── database.types.ts  # Supabase 데이터베이스 타입
│   │   ├── supabase-menu.ts   # 메뉴 스키마 타입
│   │   ├── supabase-resume.ts # 이력서 스키마 타입
│   │   ├── supabase.ts        # Supabase 공통 타입
│   │   └── weather.ts         # 날씨 관련 타입
│   ├── 🎨 assets/             # 정적 자산
│   │   ├── css/
│   │   │   └── main.css
│   │   └── scss/
│   │       ├── fonts.scss
│   │       └── style.scss
│   ├── app.config.ts          # 앱 설정
│   ├── app.vue                # 루트 컴포넌트
│   └── error.vue              # 에러 페이지
├── 🌐 server/                 # 서버 API 엔드포인트
│   └── api/
│       ├── chat/              # AI 채팅 API
│       │   ├── greeting.get.ts
│       │   └── index.post.ts
│       ├── menu/              # 메뉴 API
│       │   └── externalMenu.get.ts
│       └── resume/            # 이력서 데이터 API
│           ├── education.get.ts
│           ├── experience.get.ts
│           ├── hobbies.get.ts
│           ├── imageArchive.get.ts
│           ├── profile.get.ts
│           ├── projects.get.ts
│           ├── skills.get.ts
│           └── socialLinks.get.ts
├── 🗄️ supabase/               # Supabase Functions
│   └── functions/
│       ├── _shared/            # 공유 모듈 (배포 안됨)
│       │   ├── _openai.ts          # OpenAI 클라이언트 (레거시)
│       │   ├── ai-provider.ts      # AI 프로바이더 추상화
│       │   ├── component-mapper.ts # 컴포넌트 타입 매핑
│       │   ├── history-optimizer.ts # 대화 기록 최적화
│       │   ├── rag.ts              # RAG 로직
│       │   ├── supabase.ts         # Supabase 클라이언트
│       │   ├── types.ts            # 타입 정의
│       │   └── url-fetcher.ts      # URL 페처 유틸리티
│       └── dewdew-rag-portfolio/    # RAG 포트폴리오 함수
│           ├── index.ts
│           └── README.md
├── 🌍 i18n/                   # 다국어 번역 파일
│   └── locales/
│       ├── en.ts              # 영어 번역
│       └── ko.ts              # 한국어 번역
├── 📁 public/                 # 정적 파일
│   ├── fonts/                 # 웹폰트
│   ├── image/                 # 이미지 파일
│   ├── favicon.ico
│   ├── manifest.webmanifest
│   └── _robots.txt
├── 📜 scripts/                # 빌드 스크립트
│   └── version-manager.js
├── nuxt.config.ts             # Nuxt 설정
├── tsconfig.json              # TypeScript 설정
├── eslint.config.mjs          # ESLint 설정
├── package.json               # 패키지 의존성
└── README.md                  # 프로젝트 문서

🧩 复合体系结构

// 도메인별로 분리된 Composable 구조 (단일 책임 원칙)
app/composables/
├── chat/
│   └── useChat.ts             # AI 채팅 상태 관리, 스트리밍 처리
├── data/
│   ├── hello.ts               # 인사말 데이터
│   ├── korLocation.json       # 한국 지역 데이터
│   ├── locations.ts           # 위치 관련 유틸
│   └── weather.ts             # 날씨 데이터 처리
├── forecast/
│   └── translateCoords.ts     # 좌표 변환 (위경도 ↔ 격자)
├── formatting/
│   ├── useDateFormatter.ts    # 날짜/시간 포맷팅
│   └── useFormatter.ts        # 일반 데이터 포맷팅
├── query/
│   └── index.ts               # 쿼리 관련 유틸
├── ui/
│   ├── imageStorage.ts        # 이미지 저장소 관리 (Supabase)
│   ├── useColorUtils.ts       # 색상 매핑 유틸
│   └── useUtils.ts            # UI 헬퍼 함수
├── validation/
│   └── useValidation.ts       # 입력 유효성 검사
└── useSkillIcon.ts            # 스킬 아이콘 유틸

📋 类型系统

// 도메인 주도 설계(DDD) 적용 - 도메인별 타입 분리
app/types/
├── chat.ts                    # AI 채팅 관련 타입 (ChatMessage, ComponentType 등)
├── database.types.ts          # Supabase 데이터베이스 자동 생성 타입 (public 스키마)
├── supabase-menu.ts           # 메뉴 스키마 타입 (자동 생성)
├── supabase-resume.ts         # 이력서 스키마 타입 (자동 생성)
├── supabase.ts                # Supabase 공통 타입 (자동 생성)
└── weather.ts                 # 날씨 관련 타입

🤖 AI聊天系统体系结构

// RAG 기반 AI 채팅 시스템
supabase/functions/
├── _shared/                    # 공유 모듈 (배포 안됨)
│   ├── component-mapper.ts    # 쿼리 → 컴포넌트 타입 매핑
│   ├── rag.ts                 # RAG (Retrieval-Augmented Generation) 로직
│   ├── ai-provider.ts         # AI 프로바이더 추상화 (@ai-sdk/openai)
│   ├── _openai.ts             # OpenAI 클라이언트 (레거시)
│   ├── history-optimizer.ts   # 대화 기록 최적화
│   ├── url-fetcher.ts         # URL 페처 유틸리티
│   ├── supabase.ts            # Supabase 클라이언트
│   └── types.ts               # 타입 정의
└── dewdew-rag-portfolio/      # 배포되는 Edge Function
    └── index.ts               # RAG 엔드포인트

// 클라이언트 측
app/composables/chat/
└── useChat.ts                 # 스트리밍 처리, 메시지 관리

app/components/chat/
├── Container.vue              # 채팅 컨테이너
├── Content.vue               # 메시지 표시 영역
├── DynamicComponent.vue       # 동적 컴포넌트 렌더링
├── Error.server.vue           # 에러 컴포넌트
└── Skeleton.server.vue        # 로딩 스켈레톤

app/components/dynamic/card/   # 동적 렌더링 카드 컴포넌트
├── ContactForm.client.vue
├── EducationCard.server.vue
├── ExperienceCarousel.server.vue
├── ExperienceTimeline.server.vue
├── Greeting.server.vue
├── HobbyCarousel.server.vue
├── ImageCarousel.server.vue
├── Profile.server.vue
├── ProjectCarousel.server.vue
├── Skill.server.vue
├── SkillRadar.server.vue
├── SocialLinks.server.vue
└── WeaknessesCard.server.vue

🔍 矢量搜索和嵌入式管理

初始化嵌入
  • 初始创建: initialize-embeddings 调用Edge Function创建所有文档的嵌入
  • 更新: resume 每当模式中的数据(profile、experience、skills、projects、education、hobbies、social_links、image_archive等)发生变化时 一定 initialize-embeddings 必须再次invoke()Edge Function
  • 理由:要使矢量搜索反映最新数据,嵌入必须是最新的
如何更新嵌入
  1. Supabase仪表板:
  • 功能> initialize-embeddings >调用函数
注意事项
  • 如果在数据更改后不更新嵌入,矢量搜索结果可能会返回旧数据
  • 生成嵌入可能需要一段时间(根据文档数量),因此将以异步方式进行处理
  • 矢量搜索以混合方式工作:在关键字匹配失败时运行基于语义的矢量搜索

______________________________________________________________________

🌟 主要功能

🏠 主页 (/)

  • 实时天气:显示基于用户位置的天气信息(气象厅API)
  • 打字动画:使用TypeIt动态文本效果
  • 响应式布局:桌面/移动优化
  • Intro动画:平滑的页面切换效果

🤖 AI聊天 (/ai)

  • 基于RAG的AI:基于产品组合数据的知识搜索
  • 流响应:实时文本流
  • 动态元件:将项目、职业、技能等显示为组件
  • 自动滚动:在长时间对话中保持自动滚动
  • 元件映射:自然语言查询→自动映射适当的UI组件
  • 元件演示: /ai/components预览中的所有动态元件

📱 PWA(渐进式Web应用程序)

  • 离线支持:基于Service Worker的缓存
  • 安装提示:可安装移动/桌面
  • 自动更新:自动检测和更新新版本
  • 缓存策略:图像、字体、API响应优化缓存

🎨 UI组件

  • 原子设计:可重复使用的元件结构
  • Nuxt用户界面:自定义前缀(Dd)应用
  • 暗/光模式:自动检测系统主题
  • 多语言支持:韩语/英语实时切换

______________________________________________________________________

性能优化

🚀 核心网页指标

  • ✅ LCP:1.2秒以下(优化图像)
  • ✅ FID:小于100 ms(代码拆分)
  • ✅ CLS:0.1以下(布局稳定性)

📦 捆绑包优化

  • 摇树优化:删除未使用的代码
  • 动态导入:仅在需要时加载模块
  • 图像优化:WebP/AVIF自动转换
  • 磷钨酸:Service Worker缓存

______________________________________________________________________

🚀 开始

详细的设置指南包括: 设置.md请参阅。

📋 要求

  • Node.js 24.5.0+
  • Bun 1.2.0+
  • Supabase帐户

⚙️ 快速入门

# 저장소 클론
git clone https://github.com/dewdew/dewdew_v5.git
cd dewdew_v5

# Node.js 버전 설정
nvm use

# 의존성 설치
bun install

# 환경 변수 설정
cp .env.example .env
# 필수 환경 변수:
# - SUPABASE_URL
# - SUPABASE_KEY
# - OPENAI_API_KEY (AI 채팅 기능용)

# 개발 서버 실행
bun dev

🌐 在浏览器中http://localhost:4110连接

🔧 Supabase Functions部署

# Supabase 로그인
bun run supabase:login

# 타입 생성
bun run supabase:type          # public 스키마 타입 생성
bun run supabase:type-menu     # menu 스키마 타입 생성
bun run supabase:type-resume   # resume 스키마 타입 생성
bun run supabase:type-data     # data 스키마 타입 생성

# Functions 배포
bun run supabase:deploy-rag-portfolio        # RAG 포트폴리오 함수 배포
bun run supabase:deploy-initialize-embeddings # 임베딩 초기화 함수 배포

# 초기 임베딩 생성 (배포 후 필수)
# Supabase Dashboard에서 initialize-embeddings 함수를 invoke() 하거나
# resume 스키마 데이터 변경 시에도 반드시 다시 invoke() 해야 함

______________________________________________________________________

📊 项目发展过程

🎯 第1阶段:优化复合体系结构

  • 问题:249行巨大 useUi 可组合的
  • 解决:分为5个专用模块(单一责任原则)
  • 结果:提高维护性,增强IDE支持

🏗️ 第2阶段:类型系统改进

  • 问题:单片 global.d.ts (204行)
  • 解决:按域分离类型+通用模式
  • 结果:提高类型安全性,增加代码可重复性

⚡ 第3阶段:Nuxt4迁移

  • 升级:Nuxt 3→ 附件4.2.1
  • 改进:i18n v10,支持Node.js 24.5
  • 优化:构建性能提高20%

🤖 第4阶段:构建AI聊天系统

  • RAG实施:基于Supabase Edge Functions的RAG系统
  • 流处理:实时文本流和自动滚动
  • 动态元件:基于自然语言查询的组件自动映射
  • 性能优化:通过最小化DOM操作提高滚动性能

📱 第5阶段:PWA和性能监控

  • PWA实施:基于Service Worker的离线支持
  • Vercel分析:集成实时用户分析
  • 速度洞察:监控Core Web Vitals
  • 缓存策略:映像、API和静态资产优化缓存

______________________________________________________________________

🛠️ 技术亮点

🎨 现代开发模式

// 제네릭 타입으로 타입 안전성 보장
interface ApiResponse {
  data: T
  success: boolean
  message?: string
}

// 도메인별 Composable 분리
export const useValidation = () => {
  const checkEmail = (email: string): boolean => {
    return EMAIL_REGEX.test(email)
  }
  // ...
}

// 다국어 콘텐츠 타입
interface MultilingualContent {
  ko: T
  en: T
}

🔧 性能优化技术

  • 延迟加载:元件延迟加载
  • 虚拟滚动:优化大容量列表
  • 图像优化:自动WebP转换
  • 捆绑拆分:按路由拆分代码

______________________________________________________________________

🌍 多语言支持

🗣️ 支持的语言

  • 🇰🇷 韩语 (默认)
  • 🇺🇸 英语

🔄 语言转换

  • 基于浏览器语言设置的自动检测
  • no_prefix 使用策略(URL中没有语言代码)
  • 通过LocalStorage记住用户选择

______________________________________________________________________

📱 响应式设计

📐 断点

// Tailwind CSS 기반 반응형 설계
sm: 640px    // 모바일
md: 768px    // 태블릿
lg: 1024px   // 데스크톱
xl: 1280px   // 대형 데스크톱

🎨 暗/光模式

  • 自动检测系统主题
  • 保存用户选择
  • 平滑的主题切换动画

______________________________________________________________________

🔒 安全和认证

🛡️ 安全功能

  • CSP标头:防止XSS攻击
  • HTTPS强制:SSL/TLS加密
  • 验证输入:避免XSS/SQL Injection
  • 速率限制:API请求限制

______________________________________________________________________

📈 SEO&性能

🔍 SEO优化

  • 元标签:动态元数据
  • 结构化数据:Schema.org标记
  • 网站地图:自动创建
  • RSS订阅源:订阅博客文章

📊 分析工具

  • Vercel分析:实时访问者分析(生产环境)
  • 速度洞察:性能监控和Core Web Vitals跟踪
  • 自动性能测量:实时监控LCP、FID、CLS等

🔒 安全功能

  • Dompurify:HTML精炼以防止XSS攻击
  • 验证输入:基于Yup的表单验证
  • 电子邮件:发送客户端电子邮件(不暴露服务器)

______________________________________________________________________

📧 联系方式

______________________________________________________________________

🎉 谢谢!

如果说这个项目有帮助的话,请点击明星!

______________________________________________________________________

由...制作❤️ 通过 露水

*使用最新网络技术制作的产品组合网站*

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

个人作品集TypeScript本地部署响应式设计多语言支持AI聊天现代化UI

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

出图与改图

按描述生成或修改图像,快速迭代风格。

读取设计稿

读取画布和图层信息,按规范生成页面。

素材整理

批量生成缩略图、统一命名和标签。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在设计创作场景里让模型直接调用外部能力的人。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到会话凭据的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
dewdew v5

MCP World · 本页

0未说明未标注1 个2026-05-17
Blender MCP

MCP.so

17stdio有3 个2026-05-17
Figma Context MCP 3aaa8d28

MCP World

0未说明未标注2 个2026-05-17
Nova Canvas MCP Server

MCP World

2stdio有1 个2026-05-17
Cursor Talk To Figma MCP Da1c7911

MCP World

40未说明未标注1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

dewdew v5 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

dewdew v5 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

dewdew v5 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

dewdew v5 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

dewdew v5 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP