使用 Kiro 构建 MCP 时间旅行者:我如何利用 Vibe Coding、Specs、Steering、Hooks 和 MCP 构建全栈应用

发布: (2025年12月2日 GMT+8 22:37)
5 min read
原文: Dev.to

Source: Dev.to

🎃 想法

该应用让用户可以选择:

  • 语言(NodePythonRuby
  • 框架(ExpressDjangoRails
  • 年份(2015–2025)

并返回:

  • 对应年份的运行时版本
  • 包管理器版本
  • 框架版本
  • 相关依赖
  • 生态系统变化的说明
  • 来自 npm、PyPI 和 RubyGems 的真实版本数据

本质上,这是为开发者准备的“时间机器”。

⚡ 第一步:Vibe Coding — 将想法转化为可运行代码

我在 Kiro 中使用 vibe coding,描述项目:

“我想要一个包含 API、Web UI、共享类型文件夹以及查询真实注册表的 MCP 服务器的 monorepo。”

Kiro 立即生成了:

  • 干净的 monorepo 结构(apps/apiapps/websharedmcp-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:

  1. gen:scaffold – 基于更新的规范重新生成项目结构。
  2. 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,这个项目根本无法完成。

Back to Blog

相关文章

阅读更多 »