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

Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jaw...

Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp

2025年08月30日(土) に開催された JAWS-UG Okayama 2025 の発表内容です。

生成AI時代、MCP というのは面白い仕組みと思っています。
今回は Amazon RDS 向けに提供された MCP Server を題材に「自然言語からデータを抽出して結果を得る仕組み」を取り上げてみました。

また、このAmazon RDS MCP Server がどのように動いているかについて解説してみました。

Avatar for Takahashi Ikki

Takahashi Ikki

August 30, 2025
Tweet

More Decks by Takahashi Ikki

Other Decks in Programming

Transcript

  1. MCP (Model Context Protocol) AIモデルに追加の機能・情報・コンテキストを提供するためのプロトコル MCP Server MCPを通じて特定の機能やデータを公開するサーバー(軽量プログラム) これを作ることで、 「AI

    エージェントなどから自分のサービスを簡単に 呼び出してもらえる」ようになる MCP Client MCPを利用するクライアントアプリケーション Claude Desktop とか Copilot とか Cursor とか ユーザーは、自然言語で依頼するだけでやりたいことを実現できる 例) 今日の天気をWebで調べて教えて (Playwright MCP)
  2. MCP Server を理解するための知識 プリミティブ 説明 Prompts 公開されたプロンプトテンプレート ユーザーが自分のタイミングで実行でき、実行時に展開されたプロンプトに応じ てAIモデルが思考する Resources

    公開された読み取り専用データソース AIモデルが推論に必要なコンテキストを取得でき、URIベースで統一的にアクセ ス可能な外部データ (s3:// でも file:// でも https:// でもOK) Tools 公開された実行可能関数 ( MCP っていうと大体これ) AIモデルが外部システムに対してアクションを実行でき、副作用を伴う操作や動 的なデータ取得を行う MCP Server は アプリケーションへの統合単位として以下を提供する
  3. AWS から提供されたMCP Server達 https://github.com/awslabs/mcp AWS API MCP Server 自然言語でAWSの各種サービスを操作する AWS

    Documentation MCP Server AWS ドキュメントを検索する AWS Pricing MCP Server AWSサービスの料金とコスト見積もりを提供する などなど..! ※ 使用の際は、README.mdをよく読むこと まだProductionReadyではないよ、とか危険な操作があるよ、とか。
  4. Amazon Aurora MySQL/PostgreSQL MCP Server Aurora MySQL・Aurora PostgreSQLが稼働しているDBクラスタに対して データベース操作をすることができるMCP Server

    Tools get_table_schema: 特定のテーブルのスキーマ情報を取得できる run_query: 任意のSQLを実行できる ユーザーが得られる恩恵 自然言語でのデータベース操作 SQLクエリの自動生成 テーブル構成の理解
  5. Amazon Aurora MySQL/PostgreSQL MCP Serverの制約 run_query などの接続には RDS Data API

    を用いて接続している そのため、必然的に RDS Data API の制約を受ける DBエンジンはAurora MySQL と Aurora PostgreSQLのみサポート ※ PostgreSQL側のみ、RDS Data API を使わずに直接接続することが できる裏技がある Tクラスインスタンスは非対応 DBクラスターのライターインスタンスでのみリクエストを許可できる
  6. Amazon Aurora MySQL/PostgreSQL MCP Serverの設定 Database への接続情報 (user/password)は Secrets Managerに保存して使う

    AWS_PROFILE では RDS Data API とSecrets Manager の権限を持った ロールが必要 --readonly を設定しておくことで読 み取り専用Queryのみが実行される https://github.com/awslabs/mcp/blob/main/src/postgres-mcp- server/awslabs/postgres_mcp_server/mutable_sql_detector.py
  7. AccessKey/Secret 管理したくない.. 鍵管理したくない...ので何かいい方法あるんだろうか? 調べられなかった 一応、profileのSSOを設定して動いたのでそういうのはありそう? uvx awslabs.postgres-mcp-server@latest {略} ↓ aws-vault

    exec sso -- uvx awslabs.postgres-mcp-server@latest {略} 上記を設定することで Claude Desktop の起動時に          SSOのログインページが開いて認証ができることを確認した
  8. Amazon Aurora向けのHTTPSベースAPIサービス(2018年リリース) 2018年 Aurora Serverless v1 向けに提供 2023年に Aurora Serverless

    v2 / プロビジョニング 向け RDS Data APIも提供 v1とv2でちょくちょく仕様が異なる(別物らしい AWS SDK / AWS CLI から利用可能 AWS側でコネクションプールが管理され、接続管理から開放される RDS Data APIの基本概念
  9. aws rds-data {command} トランザクション管理 begin-transaction / commit-transaction / rollback-transaction 任意のSQLの実行

    execute-statement: 単一のSQL文の実行 基本的にはステートレス `--transaction-id` を指定することで同一トランザクションで     実行できる batch-execute-statement: 複数のSQL文を一括実行 コマンド一覧