MCP服务器开发工具包

一个利用Agentic IDE(如Kiro和Claude Code)快速开发Model Context Protocol (MCP)服务器的工具包,支持半自动化开发和标准化通信协议。

  • by haandol
  • Dockerfile
  • 本地部署
  • 更新于
在 GitHub 查看 haandol/nodejs-mcp-server-starter-kit

使用说明

MCP服务器Starterkit-Kiro&Claude Code开发指南

这个项目 能动型IDE利用 Model Context Protocol(MCP)服务器可以半自动开发的入门级模板。 基罗我 克劳德代码 您可以使用相同的AI开发工具高效地构建MCP服务器。

🚀 快速入门

1.克隆和设置项目

git clone <repository-url>
cd nodejs-mcp-server-starter-kit

pnpm install

2.首选参数

# 로컬 개발 환경 설정
cp env/local.env .env

# 환경 변수 편집
vim .env

3.运行服务器

# STDIO 모드 (기본)
pnpm dev

# HTTP 모드 (서버 환경 테스트)
pnpm dev:http

🎯 核心概念

MCP(模型上下文协议)란?

MCP是AI模型和外部系统之间的标准通信协议。

  • 工具:AI可以执行的动作(搜索、计算、API调用)
  • 资源:AI可以引用的数据(文档、记录)
  • 提示:可选的可重复使用提示模板

Tool Spec First开发

  1. PRD.md 创建→项目摘要
  2. tool_spec.json 合成→规格定义
  3. 代码实现 →根据规格开发
  4. 测试 →验证规格合规性

🛠️ 使用Kiro/Claude Code开发MCP服务器

步骤0:设置Context7

背景7 访问页面,为我使用的Agentic IDE(Kiro,Claude Code)设置context7mcp

步骤1:创建产品需求文档(PRD)

利用Claude Code等方便的LLM创建需求整理文档, PRD.md 添加到

如果你没有写过PRD, ALPS写入器MCP 使用推荐

步骤2:创建工具规范

首先,请向AI工具发出以下请求:

"#File docs/TOOL_SPEC_GUIDE.md 과 PRD.md 파일을 읽고, tool_spec.json을 작성해줘.
- 상품명으로 검색 (필수)
- 카테고리 필터링 (선택)
- 최대 3개 결과 반환
- 영어 키워드만 지원
- TOOL_SPEC_GUIDE.md의 베스트 프랙티스를 모두 적용해줘"

预计结果:

{
  "tools": [
    {
      "name": "search_products",
      "description": "상품을 검색합니다. 영어 키워드만 지원하며 최대 3개 결과를 반환합니다.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "검색할 상품명 키워드 (영어만 지원)",
            "minLength": 1,
            "maxLength": 100
          },
          "category": {
            "type": "string",
            "description": "상품 카테고리",
            "enum": ["HOBBIES", "BAGS", "GAMES"]
          }
        },
        "required": ["name"]
      }
    }
  ]
}

步骤3:实施Vertical Slice

请向AI工具发出以下请求:

"#File tool_spec.json과 #File docs/IMPLEMENTATION_GUIDE.md를 참조해서 search_products 기능을 구현해줘.
- Controller: MCP 인터페이스 (#File docs/MCP_SERVER.md의 Tool 구현 베스트 프랙티스 적용)
- Service: 비즈니스 로직
- Adapter: OpenSearch 연동
- 입력 검증은 tool_spec.json 제약 조건을 Zod 스키마로 정확히 구현
- IMPLEMENTATION_GUIDE.md의 단계별 구현 방법을 정확히 따라줘"

要创建的文件结构:

src/tools/search_products/
├── controller.ts    # MCP 인터페이스 + Zod 스키마
├── service.ts       # 비즈니스 로직
├── adapter.ts       # OpenSearch 연동
└── index.ts         # 모듈 내보내기

步骤4:设置依赖注入

请向AI工具发出以下请求:

"#File docs/IMPLEMENTATION_GUIDE.md의 Step 6, Step 8을 참조해서 DIContainer에 search_products 기능을 등록하고, server.ts에서 MCP 도구로 등록하는 코드를 추가해줘.
- 의존성 주입 컨테이너 패턴을 정확히 따라줘
- 싱글톤 인스턴스 관리 방식 적용
- MCP SDK 등록 방법 준수"

步骤5:创建测试(可选)

请向AI工具发出以下请求:

"#File tool_spec.json과 #File docs/TESTING_GUIDE.md를 참조해서 Tool Spec 준수를 검증하는 테스트를 작성해줘.
- Tool Spec First 테스트 원칙 적용 (TESTING_GUIDE.md 2.1절 참조)
- Zod 스키마 검증 테스트
- 필수 매개변수 검증
- enum 값 검증
- 에러 케이스 테스트
- Vitest 사용"

📁 项目结构

├── src/
│   ├── server.ts                    # 메인 서버
│   ├── interfaces/                  # 공통 인터페이스
│   │   ├── mcp.ts                  # MCP 응답 표준화
│   │   └── product.ts              # 도메인 모델
│   ├── tools/                      # MCP Tools (액션)
│   │   └── search_products/        # Vertical Slice
│   │       ├── controller.ts
│   │       ├── service.ts
│   │       ├── adapter.ts
│   │       └── index.ts
│   ├── resources/                  # MCP Resources (데이터)
│   │   └── products/               # Vertical Slice
│   ├── di/container.ts             # 의존성 주입
│   ├── config/server.ts            # 설정
│   └── utils/                      # 공통 유틸리티
├── docs/                           # 상세 문서
├── env/                            # 환경별 설정
├── tool_spec.json                  # Tool 스펙 정의
├── package.json                    # 프로젝트 설정
└── tsconfig.json                   # TypeScript 설정

🤖 AI工具使用技巧

使用Kiro时

# 可通过命令引用上下文(代码库、文件、在线文档等)

#Folder docs/TOOL_SPEC_GUIDE.md 를 참조해서 ...

使用Claude Code时

  1. 运行Claude Code
claude
  1. 利用CLAUDE.md

项目根的 CLAUDE.md在中设置了项目说明,Claude Code将自动识别上下文。

# 개발 요청 예시
"docs/TOOL_SPEC_GUIDE.md와 docs/IMPLEMENTATION_GUIDE.md를 참조해서 tool_spec.json을 작성해줘"

📚 详细指南

项目的 docs/ 文件夹包含以下详细指南:

必需文档

参考文档

🔧 开发工作流

添加新功能

  1. 请求AI工具

    "#Folder docs/를 참조해서 새로운 기능 'user_profile' Tool을 추가하고 싶어.
    - #File docs/TOOL_SPEC_GUIDE.md를 기반으로 tool_spec.json부터 작성
    - #File docs/IMPLEMENTATION_GUIDE.md의 새로운 기능 추가 방법 (4단계) 적용
    - #File docs/MCP_SERVER.md의 Tool 구현 베스트 프랙티스 준수
    - 전체 Vertical Slice를 Tool Spec First 원칙으로 구현해줘"
    
  2. 生成的结构

    src/tools/user_profile/
    ├── controller.ts
    ├── service.ts
    ├── adapter.ts
    └── index.ts
    
  3. 自动注册

    • 添加对DIContainer的依赖性
    • 在server.ts中注册Tool
    • 在不修改现有代码的情况下进行扩展

调试和测试

  1. 以HTTP模式测试

    pnpm dev:http
    curl http://localhost:9001/ping
    
  2. 健康检查

    curl http://localhost:9001/ping
    

🐳 运行Docker

# 빌드
pnpm build

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

# 컨테이너 실행
docker run -p 9001:9001 mcp-server

# Docker Compose 사용
docker-compose up -d

🧪 运行测试

# 모든 테스트 실행
pnpm test

# 워치 모드
pnpm test:watch

# 커버리지 포함
pnpm test:coverage

AI工具使用技巧

  • 始终在上下文中提供相关的docs/文件
    • Tool开发: #File docs/TOOL_SPEC_GUIDE.md, #File docs/MCP_SERVER.md
    • 实施: #File docs/IMPLEMENTATION_GUIDE.md, #File docs/ARCHITECTURE_DIAGRAMS.md
    • 测试: #File docs/TESTING_GUIDE.md
    • 部署: #File docs/CONFIG_ENVIRONMENT.md, #File docs/DOCKER_GUIDE.md
  • 强调Tool Spec First原则 -必须 #File docs/TOOL_SPEC_GUIDE.md 参考
  • 明确具体要求和限制 -引用每个docs文件的最佳实践
  • 分阶段请求 -为每个步骤指定相应的docs文件