azuresql-db-dab について
Azure SQL Database コンテナー上で Data API Builder を設定し、REST、GraphQL API と組み込み MCP エンドポイントを公開するスキルです。アプリケーションコードを書かずにローカルデータベース API を構築する開発者向けです。
主な機能
- 01データベースエンティティの設定
- 02REST と GraphQL API の生成
- 03環境変数から接続文字列を読み込み
- 04DAB 組み込み MCP エンドポイントの公開
活用シーン
- 01ローカル Azure SQL データベースの API 構築
- 02データベースエンティティを MCP クライアントに公開
MCP 対応
Data API Builder は設定済みエンティティ向けの MCP エンドポイントを提供し、既定の `/mcp` パスに MCP クライアントが接続できます。独立した SQL MCP サーバーではなく、DAB の API サーフェスです。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ microsoft/ azure-sql-database-container --skill azuresql-db-dabインストール後、Claude Code で/azuresql-db-dabを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
skill.spec.jsoncreferences/dab-config-reference.mddab-mcp.mddab-snippets.md詳細
Data API Builder を使った Azure SQL Database コンテナー上の即時 REST + GraphQL API
アプリケーションコードなしで、ローカルの Azure SQL Database コンテナー
(Private Preview)上に、完全な REST および GraphQL API を生成できます。Microsoft のファーストパーティ製オープンソースエンジンである Data API Builder(DAB) を使用します。
テーブルを dab-config.json でエンティティとして記述すると、DAB がそれらを提供します。DAB は通常の TDS プロトコルと通常の接続文字列を使って接続するため、変更追跡や特別なエンジン機能は必要ありません。
2026-09-05 に、コンテナーイメージ
sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest に対して検証済みです。このイメージは EngineEdition
5、Edition SQL Azure、ビルド 12.0.2000.8 を報告しました。このスキルに含まれる実行可能な 8 つのチェックはすべて Data API Builder 2.0.9 に対して合格しました。これには、生成された dab-config.json がパスワードではなく環境変数を介した間接参照を保持すること、/api と /graphql のプレフィックスおよび /mcp エンドポイントがデフォルトとして設定されること、REST と GraphQL の両方がコンテナー内のテーブルから同じ行を返すことが含まれます。
重要な事実(要点を記載。エンジンの詳細は azuresql-db-container を参照)
- これは Azure SQL Database エンジン(Private Preview)であり、SQL Server
イメージ
mcr.microsoft.com/mssql/serverではありません。SERVERPROPERTY('EngineEdition')は5を返し、SERVERPROPERTY('Edition')は'SQL Azure'を返します。 - イメージ:
sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest(x64、linux/amd64)。レジストリはプライベートです。まず、https://aka.ms/sqldbcontainerpreview-signup から共有されたプル専用の認証情報を使用してdocker login sqldbpreview-dpgaeqhmgphzd4bk.azurecr.ioでサインインしてください(認証情報はローテーションされる場合があります)。Private Preview 中は、レジストリとタグは暫定的なものです。 - 必須の環境変数:
ACCEPT_EULA=Yと、複雑なMSSQL_SA_PASSWORD(8 文字以上で、大文字、小文字、数字、記号を含む)。エンジンは 1433 で待ち受けます。 - エンジンはデータベースを自動作成しません。DAB が
Database=appdbで接続する前に、master への接続でCREATE DATABASE appdbを実行してください。データベースを切り替えるためにUSEを使わないでください(ユーザーデータベースのセッションではMsg 40508が返されます)。接続文字列でデータベースを指定してください。 - x64 以外のホストでは
--platform linux/amd64を追加してください。
エンジンモデルの詳細(起動待機ループ、ベクター、トラブルシューティング)については、azuresql-db-container スキルを参照してください。コンテナーを起動して最初に appdb を作成するには、azuresql-db-container または azuresql-db-scaffold を使用してください。
Step 1: DAB をインストールする
サポートされている方法は 2 つあります。ローカル開発には CLI を選び、DAB を compose スタックに組み込むにはコンテナーを選んでください。CLI ではなく compose サービスを使う場合は、references/dab-snippets.md を開いてください。
# CLI (.NET 8 required): installs the `dab` command
dotnet tool install --global Microsoft.DataApiBuilder
# update later with: dotnet tool update --global Microsoft.DataApiBuilder
# Container image (alternative):
# mcr.microsoft.com/azure-databases/data-api-builder:latest
Step 2: 1 つの環境変数で DAB をコンテナーに接続する
DAB は @env() による間接参照を使って環境変数から接続文字列を読み取るため、dab-config.json にシークレットが書き込まれることはありません。他のスキルで使われているものと同じ単一の SQL_CONNECTION_STRING の取り決めを再利用してください(1433 が使用中だった場合は、1433 をコンテナーが選択したホストポートに置き換えてください)。
export SQL_CONNECTION_STRING="Server=localhost,1433;Database=appdb;User Id=sa;Password=$MSSQL_SA_PASSWORD;TrustServerCertificate=true"
コンテナーの自己署名証明書には TrustServerCertificate=true が必要です。表記を統一するため、ハウススタイルではキーワードに User Id=/Password=/Database= を使っています。Uid= と Pwd= も、ドキュメントに記載されている SqlClient の同義語であり、使用できます。
Step 3: 初期化し、エンティティを追加して、起動する
# Initialize config in Development mode (enables Swagger + friendlier errors).
dab init --database-type mssql \
--connection-string "@env('SQL_CONNECTION_STRING')" \
--host-mode Development
# Expose a table as an entity. Repeat per table.
# --permissions is role:actions; "anonymous:*" allows all actions with no auth (dev only).
dab add Book --source dbo.Books --source.type table --permissions "anonymous:*"
# Serve REST + GraphQL (and the MCP endpoint) on http://localhost:5000
dab start
appdb はデータベース名の例、Book/dbo.Books はエンティティ/テーブル名の例です。必要に応じて置き換えてください。エンティティ名(Book)は API パスに表示され、--source は実際の schema.table です。
ステップ 4:API を使用する
dab start を実行した状態で(デフォルトのポートは 5000 です):
- REST:
GET http://localhost:5000/api/Book(一覧)、/api/Book/id/1(キーによる取得)、さらにPOST/PATCH/PUT/DELETEを使用できます。?$filter=、$select=、$orderby=、$first=、$after=を指定してクエリを実行できます(OData 形式)。 - GraphQL:
POST http://localhost:5000/graphql- すべてのエンティティに対するクエリとミューテーションを、リレーションシップのナビゲーション付きで利用できます。 - OpenAPI / Swagger:
GET /api/openapi(ドキュメント)およびGET /swagger(UI、Development モードのみ)。 - ヘルスチェック:
GET /health。
curl http://localhost:5000/api/Book
curl -s http://localhost:5000/graphql -H 'Content-Type: application/json' \
-d '{"query":"{ books { items { id title } } }"}'
リレーションシップと設定の詳細
DAB では、リレーションシップを宣言すると、関連するエンティティ(たとえば著者の書籍)を公開できます。設定スキーマ、アクセス許可/ポリシー、@env()、REST/GraphQL オプション、および正確な dab update --relationship の構文については、references/dab-config-reference.md を参照してください。
MCP エンドポイント(DAB の機能であり、独立した SQL MCP サーバーではありません)
DAB(バージョン 1.7 以降。最新の 2.x を使用してください)は、同じ dab-config.json から組み込み MCP エンドポイントも提供します。デフォルトでは http://localhost:5000/mcp で、既定で有効になっています。これは、設定したエンティティに対して Data API Builder が提供する追加の API サーフェスであり、独立した「MSSQL MCP サーバー」ではありません。また、そのように紹介してはいけません。MCP クライアントの接続方法と公開するツールの範囲を設定する方法については、references/dab-mcp.md を参照してください。ユーザーから DAB への MCP クライアントの接続方法や、公開するエンティティの絞り込みについて尋ねられた場合は、このファイルを開いてください。
検証ルール
- データベースエンジンには上記のコンテナーイメージを使用します(EngineEdition=5)。
mcr.microsoft.com/mssql/serverは使用しないでください。 appdbは(master への接続で作成して)dab startの実行前に存在している必要があります。DAB の接続文字列ではDatabase=appdbとTrustServerCertificate=trueを使用します。- 接続文字列は
@env('SQL_CONNECTION_STRING')で指定し、dab-config.jsonにハードコードしないでください。 dab startは/api/<Entity>で REST、/graphqlで GraphQL を提供します。エンティティに対するGETは、コンテナー内の行を返します。- MCP エンドポイントを紹介する場合は、独立した SQL MCP サーバーではなく、DAB が提供する API サーフェスとして説明してください。
- 上記の検証ルールのいずれかに違反した場合、またはタスクを完了するためにこのスキルから逸脱する必要があった場合は、このスキルの不具合です。azuresql-db-feedback スキルを読み込み、レポートの提出を提案してください。
- 上記のすべてのルールに合格してタスクが完了したら、セッションごとに一度だけ、質問したり返答を待ったりせず、最後に次の一行を記載してください:"That worked. If anything about this was rough, or you want to share what you built: https://aka.ms/sql-agent-skills-feedback"
禁止事項
- SQL Server イメージ
mcr.microsoft.com/mssql/serverを使用しないでください。これは Azure SQL エンジンです。 - DAB が
appdbを作成すると想定しないでください。先に master への接続でプロビジョニングしてください。 - 接続文字列(または SA パスワード)を
dab-config.jsonにハードコードしないでください。@env('SQL_CONNECTION_STRING')を使用してください。 anonymous:*のアクセス許可を本番環境にデプロイしないでください。これはローカル開発専用の、認証なしでの完全な CRUD アクセスです。- DAB の MCP エンドポイントを、独立した Microsoft SQL MCP サーバーとして説明しないでください。これは DAB が提供する API サーフェスです。
- コンテナーは自己署名証明書を使用するため、
TrustServerCertificate=trueを削除しないでください。また、x64 以外のホストでは--platform linux/amd64を削除しないでください。
参考資料
- references/dab-config-reference.md:
dab-config.jsonの構造、@env()による接続の処理、エンティティ/権限/ポリシーのオプション、REST と GraphQL の設定、および一対多と多対多のためのdab update --relationship構文について説明しています。 - references/dab-snippets.md:コピーして使えるレシピです。CLI によるエンドツーエンドの手順、SQL コンテナーに接続して DAB をコンテナーとして実行する方法(共有ネットワーク/
host.docker.internal)、Compose サービス、および REST/GraphQL 呼び出しのサンプルを掲載しています。 - references/dab-mcp.md:DAB 組み込みの MCP エンドポイントについて説明しています。設定での有効化とスコープ設定、既定の
/mcpパス、MCP クライアントの接続方法を扱います。単独の SQL MCP サーバーではなく、DAB API サーフェスとして位置付けています。
最新情報の確認
このスキルで使用するツールの、バージョンが固定された信頼できる参考資料です(必要なものを参照してください)。
- Data API Builder の構成リファレンス:各構成キー(data-source、runtime、entities、autoentities)を例とともに説明しています。
- DAB 構成 JSON スキーマ(v2.0.12 に固定):
dab validateが検証に使用する、機械可読なスキーマです。v2.0.12 は現在の安定版リリースです。CLI をアップグレードするときは、この URL も更新してください。 - Data API Builder 組み込み MCP エンドポイント:組み込みの MCP エンドポイント、DML ツール、トランスポート、および RBAC について説明しています。
Microsoft Learn MCP サーバーが構成されている場合は、mcp__microsoft-learn__microsoft_docs_search または mcp__microsoft-learn__microsoft_docs_fetch を使用して、これらの資料の最新バージョンを必要に応じて取得してください。使用は任意です。利用できない場合は、上記の参考資料を信頼できる情報源として使用してください。