Important
このプレビュー機能は、 Microsoft Azure プレビューの追加使用条件に従います。
プレビュー期間中、ホストされたMCPサーバーは以下の地域で利用可能です: 西中部アメリカ、東アジア、中央アメリカ、北ヨーロッパ。
このクイックスタートでは、コネクターネームスペースでホストされたモデルコンテキストプロトコル(MCP)サーバーを作成し、MCPクライアントに接続します。 このページの上部にあるサーバー セレクターを使用して、デプロイするサーバーを選択します。
MCPサーバーはコネクターネームスペースにおける一流のリソースです。 コネクタ名前空間は、コネクタ、接続、トリガー、および MCP サーバーをホストするフル マネージド サービスです。
名前空間にホストされた MCP サーバーを作成すると、プラットフォームはプロビジョニングする専用コンピューティングでサーバーの事前構築済みイメージを実行します。 サーバー構成、環境変数、およびパラメーターを制御します。 名前空間は、ホスティング、スケーリング、資格情報の管理を処理します。 Copilot、カスタム エージェント、または MCP 対応クライアントなどの AI エージェントは、名前空間の接続モデルを使用してサーバーのツールを検出して呼び出します。
ホストされる MCP サーバーは、コネクタ上に構築されたプラットフォームで管理される実装であるマネージド MCP サーバーとは異なります。 名前空間は、マネージド サーバーのツール定義と構成を処理します。
Azure Developer CLI を使用してデプロイする
SQL MCPサーバーをデプロイする最も簡単な方法は、azure-sql-mcpのサンプルにアクセスし、READMEの指示に従ってAzure DeveloperのCLIやazdを使ってデプロイすることです。 サンプルには、コネクターネームスペース、SQL MCPサーバー、SQLデータベース、その他必要なAzureリソースを1コマンドでプロビジョニングできるbicepファイルが含まれています。
SQL MCPサーバーと必要なリソースを最初から最後まで一歩進めたい場合は、以下の指示に従ってください。
Prerequisites
Azure アカウントとサブスクリプション。 お持ちでない場合は、 無料の Azure アカウントを作成します。
Visual Studio Codeがインストールされています。
Azure CLIがインストールされています。
既存のコネクタ名前空間リソース。 ない場合は、 コネクタ名前空間を作成します。
既存の Application Insights リソース。 お持ちでない場合は、 Application Insights リソースを作成します。
データベースを持つAzure SQL Database サーバー。 ない場合は、Azure SQL データベースを作成します。
Data API Builder (DAB) CLI がインストールされています。
SQL データベースのシード処理
Azure ポータルで、(サーバーではなく) SQL データベースに移動します。
左側のメニューで、[ クエリ エディター ] を選択し、データベース管理者としてサインインします。
[ 新しいクエリ ] を選択し、次のコマンドを実行してデータベースをシード処理します。
CREATE TABLE dbo.Books ( Id int IDENTITY(1,1) PRIMARY KEY, Title nvarchar(200) NOT NULL ); INSERT INTO dbo.Books (Title) VALUES (N'The little prince'); INSERT INTO dbo.Books (Title) VALUES (N'Pride and prejudice');
DAB 構成ファイルを生成する
SQL でホストされる MCP サーバーは 、データ API ビルダー (DAB) 上に構築されています。これは、データベースに対してセキュリティで保護されたデータ API を提供し、そのエンティティ (テーブル) を MCP ツールとして公開します。 サーバーには、データベース接続と公開するエンティティを定義する DAB 構成ファイルが必要です。
データベースの DAB 構成ファイルを生成し、MCP のみを有効にします。
dab init --database-type "mssql" --host-mode "Development" --graphql.enabled false --rest.enabled false --connection-string "<your-sql-connection-string>"サーバーはシステム割り当て管理型アイデンティティ(SAMI)を使って基盤データベースにアクセスするため、接続文字列は以下の例のように見えるはずです。
Server=<your-sql-server>.database.windows.net;Database=<your-database>;Authentication=Active Directory Default;Encrypt=True;TrustServerCertificate=False;Books エンティティと関連するアクセス許可を追加します。
dab add Books --source "dbo.Books" --permissions "anonymous:*"エンティティとアクセス許可の構成の詳細については、 データ API ビルダーの承認に関するページを参照してください。
構成ファイルの例を次に示します。
{ "$schema": "https://github.com/Azure/data-api-builder/releases/download/v1.7.93/dab.draft.schema.json", "data-source": { "database-type": "mssql", "connection-string": "Server=<your-sql-server>.database.windows.net;Database=<your-database>;Authentication=Active Directory Default;Encrypt=True;TrustServerCertificate=False;", "options": { "set-session-context": false } }, "runtime": { "rest": { "enabled": false, "path": "/api", "request-body-strict": true }, "graphql": { "enabled": false, "path": "/graphql", "allow-introspection": true }, "mcp": { "enabled": true, "path": "/mcp" }, "host": { "cors": { "origins": [], "allow-credentials": false }, "authentication": { "provider": "AppService" }, "mode": "development" } }, "entities": { "Books": { "source": { "object": "dbo.Books", "type": "table" }, "graphql": { "enabled": true, "type": { "singular": "Books", "plural": "Books" } }, "rest": { "enabled": true }, "permissions": [ { "role": "anonymous", "actions": [ { "action": "*" } ] } ] } } }
ホストされている MCP サーバーを作成する
Azure portal にサインインする
コネクタ名前空間リソースを検索します。
[ 名前空間に接続] を選択して、新しいブラウザー タブで名前空間ポータルを開きます。
リダイレクトされたら、名前空間に関連付けられているMicrosoft アカウントを使用してサインインします。
名前空間インスタンス内で、 MCP コネクタ セクションを探し、[ + 作成 ] ボタンを選択します。
- Playwright を検索し、それを選択してサーバーを作成します。
SQL MCP Serverを検索して、サーバーを作成するために選択してください。
作成ウィンドウで、送信認証方法として [ID の管理 ] を選択します。
前に生成した DAB 構成ファイルをアップロードします。
を選択してを作成します。
必要な接続とサーバーがプロビジョニングされてデプロイされるまで待ちます。 デプロイ後に [作成 ] ダイアログを閉じないでください。 サーバーからテレメトリを収集するように Application Insights リソースを設定します。
サーバーで監視を有効にする
別のタブを開いて、Azure ポータルで Application Insights リソースの接続文字列を取得します。
名前空間ポータルに戻り、[監視を 有効にする] を選択します。
ボックスに接続文字列を貼り付け、[有効] を選択します。
Application Insights の構成時に [完了] を 選択します。
自動的にデプロイ済みサーバーの 「概要 」ページに誘導され、そこでエンドポイントを確認できます。 そうでない場合は、左側のメニューの [MCP コネクタ ] タブを選択し、デプロイしたサーバーを見つけます。
名前空間 ID にデータベースへのアクセス権を付与する
ホストされる SQL サーバーは、名前空間の SAMI を使用してデータベースにアクセスします。 名前空間の作成時に SAMI を有効にすることができます。
作成時に SAMI を有効にしなかった場合は、Web ポータルで名前空間インスタンスに移動して有効にする 必要があります 。 左側のメニューで、[ID] タブ を 見つけます。 [システム割り当て済み] トグルを [オン] に切り替えて、更新プログラムを保存します。
Azure ポータルで SQL データベースに移動し、クエリ エディターを開き、次のコマンドを実行してマネージド ID へのアクセスを許可します。
CREATE USER [<your-connector-namespace-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<your-connector-namespace-name>];
ALTER ROLE db_datawriter ADD MEMBER [<your-connector-namespace-name>];
GRANT VIEW DEFINITION TO [<your-connector-namespace-name>];
<your-connector-namespace-name>をコネクタ名前空間リソースの名前に置き換えます。
Visual Studio Code のGitHub Copilotから接続する
ホストされている MCP サーバーを Visual Studio Code のGitHub Copilotに接続するには、MCP 設定にサーバー構成を追加します。
{ "servers": { "my-hosted-server": { "url": "<your-mcp-endpoint-url>", "type": "http" } } }<your-mcp-endpoint-url>を、サーバーの [概要] ページからコピーしたエンドポイント URL に置き換えます。サーバー名の上にある [スタート] を選択します。 Microsoftで認証するように求められます。 Azure ポータルへのサインインに使用した電子メール アドレスでサインインします。
使用可能なツールの数がサーバー名の上に表示されることを確認します。
- Copilot のエージェント モードを開き、「11 Times Square に最も近いピッツェリアはどこですか?」と尋ねます。
- Copilot のエージェント モードを開き、「利用可能なテーブルは何ですか?」と質問します。
MCP Inspector から接続する
ターミナルから、次のコマンドを実行します。
az loginaz loginセッションからアクセス トークンを取得してサーバーに接続します。MCP_TOKEN=$(az account get-access-token --resource https://apihub.azure.com --query accessToken -o tsv)サーバーを呼び出して、ツールの一覧を取得します。
npx @modelcontextprotocol/inspector --cli \ "<your-mcp-endpoint-url>" \ --transport http \ --method tools/list \ --header "Authorization: Bearer $MCP_TOKEN"
特定のツールを呼び出します。 たとえば、次のコマンドは
browser_navigateツールを呼び出します。npx @modelcontextprotocol/inspector --cli \ "<your-mcp-endpoint-url>" \ --transport http \ --method tools/call \ --tool-name browser_navigate \ --tool-arg url="https://www.google.com/search?q=pizza+near+11+Times+Square+New+York" \ --header "Authorization: Bearer $MCP_TOKEN"
特定のツールを呼び出します。 たとえば、次のコマンドは
describe_entitiesツールを呼び出して、使用可能なエンティティを一覧表示します。npx @modelcontextprotocol/inspector --cli \ "<your-mcp-endpoint-url>" \ --transport http \ --method tools/call \ --header "Authorization: Bearer $MCP_TOKEN" \ --tool-name describe_entities \ --tool-arg 'nameOnly=true'read_recordsツールを呼び出して、エンティティ (Books) からレコードを取得します。npx @modelcontextprotocol/inspector --cli \ "<your-mcp-endpoint-url>" \ --transport http \ --method tools/call \ --header "Authorization: Bearer $MCP_TOKEN" \ --tool-name read_records \ --tool-arg 'entity=Books' \ --tool-arg 'first=2'
Important
アクセス トークンを手動で渡すことは、ローカルの開発とテストにのみ適しています。 運用シナリオでは、マネージド ID または OAuth フローを使用してトークンを自動的に取得します。
サーバー ログの表示
Azure ポータルに移動し、MCP サーバーで構成した Application Insights リソースを見つけます。
左側のメニューで、 調査>検索を見つけます。
上部の [ローカル時刻 ] フィルターを過去 30 分に設定します。 ログをトレースまたは個々の項目として表示します。
SQL Server のトラブルシューティング
ホストされている SQL MCP サーバーが期待どおりに接続またはデータを返さない場合は、次の項目を確認します。
- DAB 構成ファイル。 アップロードされた DAB 構成ファイルが有効であることを確認し、正しい接続文字列を使用し、公開する予定のエンティティとアクセス許可を定義します。
- システム割り当てマネージド ID。 名前空間で SAMI が有効になっていることを確認します。 Web ポータルで名前空間インスタンスに移動し、[ ID ] タブを選択し、[ システム割り当て済み ] が [オン] に設定されていることを確認します。
- データベース アクセス。 名前空間 ID にデータベースへのアクセス権が付与されていることを確認します。 データベースへの名前空間 ID アクセスの許可を参照してください。