使用 Kiro 构建 MCP 时间旅行者:我如何利用 Vibe Coding、Specs、Steering、Hooks 和 MCP 构建全栈应用
Source: Dev.to
🎃 想法
该应用让用户可以选择:
- 语言(
Node、Python、Ruby) - 框架(
Express、Django、Rails) - 年份(2015–2025)
并返回:
- 对应年份的运行时版本
- 包管理器版本
- 框架版本
- 相关依赖
- 生态系统变化的说明
- 来自 npm、PyPI 和 RubyGems 的真实版本数据
本质上,这是为开发者准备的“时间机器”。
⚡ 第一步:Vibe Coding — 将想法转化为可运行代码
我在 Kiro 中使用 vibe coding,描述项目:
“我想要一个包含 API、Web UI、共享类型文件夹以及查询真实注册表的 MCP 服务器的 monorepo。”
Kiro 立即生成了:
- 干净的 monorepo 结构(
apps/api、apps/web、shared、mcp-server) - 初始的 Express 路由
- TypeScript 类型
- 基于 Vite + React 的前端
- MCP 工具骨架
- 可工作的
/api/generate概念验证
在几分钟内看到一个想法变成可运行的代码库,为后续手动编码提供了早期动力,并验证了架构。
📘 第二步:规范驱动开发 — 定义结构
我添加了两个规范文件:
.kiro/specs/app-spec.md.kiro/specs/mcp-spec.md
每个规范都定义了:
- 输入与输出
- 错误结构
- 边缘情况
- 类型合约
- 验证规则
- API 行为
- MCP 工具行为
基于这些规范,Kiro 在整个 monorepo 中重新生成了干净且一致的代码。更新需求只需编辑规范,Kiro 会保持所有服务同步——没有漂移、没有冲突、没有过时的文件。
🎛 第三步:Steering 文档 — 保持代码库一致性
我创建了 .kiro/steering/coding-style.md 来强制:
- 文件夹结构
- 命名约定
- 错误响应格式
- 注释风格
- TypeScript 模式
- 文件布局
- 导入风格
添加该 steering 文档后,每个生成的文件都符合既定的代码风格,即使是几天后创建的,也让项目拥有“单一作者”的统一感。
🔌 第四步:MCP 服务器 — 将项目从演示转为真实应用
自定义的 MCP 服务器 是项目的核心。我实现了三个 MCP 工具:
- npmHistoricalVersions
- pypiHistoricalVersions
- rubygemsHistoricalVersions
这些工具查询真实的注册表 API,以获取准确的版本数据。Kiro 生成了:
- MCP 工具模式
- 请求/响应的 TypeScript 类型
- 验证逻辑
- 错误处理
- 与主 MCP 服务器框架的集成
有了这层 MCP,应用依赖的是真实的历史生态数据,而不是静态的模拟。
🔁 第五步:Agent Hooks — 自动化工作流
添加了两个自定义 Hook:
gen:scaffold– 基于更新的规范重新生成项目结构。pre-commit– 执行类型检查和轻量级构建验证。
这些 Hook 防止了类型不同步、构建破损和规范漂移,为整个 monorepo 提供了安全网。
🧪 第六步:API 与前端部署
为了让评审能够访问项目:
- API 部署在 Heroku
- 前端部署在 Vercel
所有端点均公开、开源且已上线。
💡 我的收获
- Vibe coding 能加速早期探索。
- 规范把 AI 输出转化为结构化、统一的代码。
- Steering 文档对长期 AI 生成项目至关重要。
- MCP 打开了超越静态脚手架的真实集成可能。
- Hook 能保持代码库健康并自动保持一致性。
Kiro 改变了我的工作流——不仅提升了速度,还让过程更有结构、可预测且易于维护。
🚀 试用 MCP Time‑Traveler
探索线上演示和源码,亲自感受“时间机器”的实际效果。
🎃 最后感想
作为独立开发者,构建一个包含 MCP 服务器、API 与前端的多服务应用通常是个挑战。借助 Kiro 的 vibe coding、规范、Hook 与 steering 生态,整个体验变得顺畅、加速且充满乐趣。没有 Kiro,这个项目根本无法完成。