# AWS セキュリティプレイブックアドバイザー MCP - 実装計画書(1時間版)
## 1. プロジェクト概要
AWS Customer Playbook Advisor MCPのMVP版。AWSセキュリティ全般の基本的なガイダンスを提供する最小限の実装。
## 2. 実装タイムライン(1時間)
### 0-15分: セットアップ
- [x] package.json作成(最小限の依存関係)
- [x] tsconfig.json作成(シンプルな設定)
- [x] 依存関係インストール(`@modelcontextprotocol/sdk`のみ)
### 15-45分: コア機能実装
- [x] MCPサーバー初期化(src/index.ts)
- [x] 主要AWSサービスのセキュリティガイダンスをハードコーディング
- [x] get_prevention_guidanceツール実装(複数サービス対応)
### 45-60分: 動作確認とREADME
- [x] ビルドと起動確認
- [x] 最小限のREADME.md作成
- [x] Claude Desktop設定手順の記載
## 3. 削除した機能(時間短縮のため)
- ❌ GitHub API連携(ハードコーディングで代替)
- ❌ Zod検証(シンプルな型チェック)
- ❌ 複雑なエラーハンドリング
- ❌ プレイブック解析ロジック
- ❌ 動的なコンテンツ取得
## 4. 実装コード概要
```typescript
// src/index.ts - 全体を1ファイルで実装
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
// AWSセキュリティガイダンスをハードコーディング
const SECURITY_GUIDANCE = {
general: `
## AWSセキュリティ基本原則
1. 最小権限の原則
2. 多層防御
3. データの暗号化(保存時・転送時)
4. ログとモニタリング
5. 自動化による一貫性`,
s3: `
## S3セキュリティ
- パブリックアクセスブロック有効化
- デフォルト暗号化(SSE-S3/KMS)
- バージョニング有効化
- アクセスログ記録`,
iam: `
## IAMセキュリティ
- MFA有効化
- 定期的なアクセスキーローテーション
- 最小権限ポリシー
- IAMロールの活用`,
ec2: `
## EC2セキュリティ
- セキュリティグループの最小化
- 最新AMIの使用
- Systems Manager Session Manager
- IMDSv2の強制`,
vpc: `
## VPCセキュリティ
- プライベートサブネット活用
- NACLとセキュリティグループ
- VPCフローログ
- PrivateLink/VPCエンドポイント`
};
// MCPサーバー実装
const server = new Server({
name: 'aws-security-advisor',
version: '1.0.0',
});
// ツール登録
server.setRequestHandler('tools/list', async () => ({
tools: [{
name: 'get_prevention_guidance',
description: 'AWSサービスのセキュリティ予防策を取得',
inputSchema: {
type: 'object',
properties: {
service: { type: 'string' },
question: { type: 'string' }
}
}
}]
}));
// ツール実行
server.setRequestHandler('tools/call', async (request) => {
const { service, question } = request.params.arguments;
const serviceLower = service?.toLowerCase() || '';
let guidance = SECURITY_GUIDANCE.general;
if (serviceLower.includes('s3')) guidance += '\n\n' + SECURITY_GUIDANCE.s3;
else if (serviceLower.includes('iam')) guidance += '\n\n' + SECURITY_GUIDANCE.iam;
else if (serviceLower.includes('ec2')) guidance += '\n\n' + SECURITY_GUIDANCE.ec2;
else if (serviceLower.includes('vpc')) guidance += '\n\n' + SECURITY_GUIDANCE.vpc;
else {
// 全般的な質問の場合、主要サービスすべてを返す
guidance = Object.values(SECURITY_GUIDANCE).join('\n\n');
}
return {
content: [{ type: 'text', text: guidance }]
};
});
// サーバー起動
const transport = new StdioServerTransport();
await server.connect(transport);
```
## 5. 必要最小限のファイル
```
aws-customer-playbook-advisor-mcp/
├── package.json # 最小限の設定
├── tsconfig.json # シンプルなTS設定
├── src/
│ └── index.ts # 全機能(約50行)
└── README.md # 使い方のみ
```
## 6. 成功基準(1時間版)
- ✅ AWSセキュリティ全般のガイダンスが返ってくる
- ✅ S3、IAM、EC2、VPCなど主要サービスに対応
- ✅ Claude Desktopで動作する
- ✅ ビルドが通る
## 7. 実装完了
### 完了時刻
- 開始: 約0分
- 完了: 約35分(予定より25分早く完了)
### 成果物
- ✅ 動作するMCPサーバー(src/index.ts)
- ✅ package.json、tsconfig.json
- ✅ README.md(インストール手順とClaude Desktop設定)
- ✅ .gitignore
### 次のステップ(将来の拡張)
1. GitHub APIとの連携(動的なプレイブック取得)
2. より多くのAWSサービスサポート
3. インシデント対応ガイダンス
4. キャッシュ機能の実装
以上
---
**作成日**: 2025年6月29日
**バージョン**: 1.0
**作成者**: プロジェクトチーム