Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS MCP Serverで実践するText-to-SQL

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Kotaro.S Kotaro.S
January 12, 2026
190

AWS MCP Serverで実践するText-to-SQL

Avatar for Kotaro.S

Kotaro.S

January 12, 2026
Tweet

Transcript

  1. MCP Server(Model Context Protocol Server)とは? AI(LLM)が外部のツールやデータを呼び出すための仲介となるプロトコル Resource: ナレッジベースへのアクセスの仲介 Prompt: 再利用可能なプロンプトの提供

    Tool: 実際の操作(API呼び出しなど)を仲介 Text-to-SQLで活用するという意味では、Toolが重要 JDBCやAPI経由でSQLを実行できたり、データカタログにアクセスできたり、LLMが扱いやすい 形で戻り値を返してくれたり 2. 用語整理 16
  2. 最近のAWSのMCP Server事情 re:Invent 2025で「AWS MCP Server」のプレビュー版が発表された https://aws.amazon.com/jp/about-aws/whats-new/2025/11/aws-mcp-server/ 一方で、発表以前からAWSはGitHubでローカル版のMCP Serverを公開していた AWS

    API MCP Server https://awslabs.github.io/mcp/servers/aws-api-mcp-server AWS Knoledge MCP Server https://awslabs.github.io/mcp/servers/aws-knowledge-mcp-server → この資料では、後者のうちAWS API MCP ServerをAWS MCP Serverと呼んでいる (前者が今後スタンダードになっていくと思われるので、今後に期待) 2. 用語整理 17
  3. 仕様書のイメージ 過程のテーブル毎に選択カラム、抽出条件、グルーピング条件、名寄せ条件など 実装レベルの条件を詳細に定義する データ項目 値・式 column_A A.column_A, B.column_A, C.column_A column_B

    D.columnB(A/B/C.XXXから名寄せ) column_C D.column_C(A/B/C.XXXから名寄せ) column_D "XXX" (固定値) column_E グルーピング後のcolumn_Eの合計 導出元テーブル テーブルA (A) テーブルB (B) テーブルC (C) 名寄せテーブル (D) 選択条件 (なし) グルーピング条件 column_A, D.column_B, D.column_C 3. Text-to-SQLを実践する 22
  4. 開発の流れ ※Kiro CLI(claude-opus-4.5)を利用 1. 人間: DFDと仕様書(抽出条件やグルーピング条件)を固める 2. 人間: 仕様書をMarkdownで成形し、Kiro CLIが読み取り可能な状態にする

    3. AI: 仕様書で言及されているテーブルのメタデータをAWS MCP Server経由で読み取る 4. AI: 仕様書とテーブルのメタデータを総合して、SQLを実装する 5. AI: 実装したSQLの単体テスト用のコードを生成して検証する(テーブル単位で作成) 6. 人間: AIの実装内容とテスト結果の妥当性を検証する 3. Text-to-SQLを実践する 23
  5. AWS MCP Serverの仕様についての補足 Writeモードが2025年12月現在では実装されていない。 実行可能な命令はSELECTなど読み取り専用 書き込み系のロジックは一時テーブル(CTE)を使って検証させる Redshiftの認証はAWS MCP Serverに渡すプロファイル経由でIAM認証となる いつWriteモードが実装されるかもわからないので、DBユーザにはSELECT権限だけ与えると安全

    ※参考: https://aws.amazon.com/jp/blogs/news/accelerating-sql-analytics-with-amazon-redshift-mcp-server/ ※Kiro CLIのmcp.jsonの設定内容 { "mcpServers": { "awslabs.redshift-mcp-server": { "command": "uvx", "args": ["awslabs.redshift-mcp-server@latest"], "env": { "AWS_PROFILE": "<AWS CLIのプロファイル名>", "AWS_REGION": "ap-northeast-1", "FASTMCP_LOG_LEVEL": "INFO" }, "disabled": false, "autoApprove": [] } } } 3. Text-to-SQLを実践する 25
  6. プロンプトの例(抜粋) テストの粒度と完了条件を明示して、テーブル単位でテスト用のSQLを生成させる <仕様書>.mdはRedshiftでデータを加工するSQLの設計を定義したドキュメントです。 このドキュメントに沿って、PL/pgSQLを実装してください。 以下の指示を必ず守ってください。 Redshiftで実際にクエリをしながら妥当性を検証のうえ作成してください。 【ドキュメントには書かれていない仕様】 ・出力するテーブルは、処理前にデータがあればTRUNCATEする仕様にしてください(常に上書き) ・pl/pgsqlは、全て1つのトランザクションにまとめてください 【pl/pgsqlの引数】

    ・スキーマ名(schema_name) 【入出力のマッピング】 ドキュメントの入出力は、以下のスキーマにあるテーブルと読み替えてください。 <テーブルの論理名と物理名のマッピング> 【テスト要件】 ① 単体テスト:実装したクエリが設計書の要件を満たしていることを確認してください。 ② 結合テスト:①のクエリを1つのクエリとして結合し、全体として機能することを確認してください。 ③ ①の累計レコードと②の累計レコードが一致することを確認してください。 ※書き込みについて あなたにテーブルの書き込みは許可されていません。 PL/pgsqlにはINSERT INTO~などの書き込み操作が必要と想定されますが、各テストは読み取り専用で実施してください。 書き込みについてはテスト不要です。 【テストに通過しなかった場合の作業内容】 テストに通過しなかった場合、設計書の「グルーピング条件」については実装と設計書を特に許可なく修正しても構いません。 それ以外の修正については、修正する前に一度確認を入れてください。 ただし、修正した内容はテスト結果のサマリに記載してください。 3. Text-to-SQLを実践する 26
  7. 任せてわかった、AIの守備範囲 ビジネス要件を押さえて、仕様を言語化できれば実装はAIに任せてもいいと確信できる結果になった 人に任せることと本質的には同じ(任せる側が成果物に対して責任を持てること) 人間が責任を持つべきこと ドキュメンテーション ビジネス要件を踏まえた処理条件の 言語化 機能面のレビュー 要求や要件を満たしているか 非機能面のレビュー

    パフォーマンス、堅牢性、保守性 AIに任せてもいいこと 実装(それに関するトラブルシュート) 精緻なドキュメントを必要とする 静的テスト 構文チェックなど、Linter的な役割 動的テスト プロセスごとにテスト用のコードを 都度書かせて再現性を持たせる 4. 考察 29
  8. まとめ AIエージェント × MCP Server × ドキュメンテーションでText-to-SQLな開発ができる Not 責任分解, but

    責任共有(こいつがやったんです!と言ってもAIは責任をとってくれない) エンジニアの役割がビジネス要求の言語化と成果物の品質保証にシフトしている気がする 実装する楽しさがAIに持って行かれている感じがするのはちょっとかなしい(お気持ち) おわりに 35