Integrations
Offers a similar MCP server implementation available in .NET/C# for developers preferring that ecosystem.
Supports running Azure Storage Emulator through Docker during local development for testing blob storage operations.
Supports development in GitHub Codespaces for a ready-to-use development environment without local setup.
Azure Functions を使用したリモート MCP サーバーの使用開始 (Node.js/TypeScript)
これは、Azure Functions を使用してカスタムリモート MCP サーバーを簡単に構築し、クラウドにデプロイするためのクイックスタート テンプレートです。ローカル マシンでクローン作成、復元、実行(デバッグ付き)し、数分でクラウドにazd up
できます。MCP サーバーは、キーと HTTPS を使用して設計上セキュリティ保護されており、EasyAuth や API Management を使用した OAuth のオプションや、VNET を使用したネットワーク分離もサポートします。
ビデオの概要を見る
このサンプルを他の言語で探している場合は、.NET/C#およびPythonバージョンを確認してください。
以下は、Azure Functions を使用したリモート MCP サーバーのアーキテクチャ図です。
前提条件
- Node.jsバージョン 18 以上
- Azure Functions コアツール>=
4.0.7030
- Azure 開発者 CLI
- Visual Studio Code を使用してローカルで実行およびデバッグするには:
- Azure ストレージ エミュレーターである Azurite を実行するためのDocker (オプション)
ローカル環境を準備する
この特定のサンプルでは、BLOB ストレージからスニペットを保存および取得するため、Azure ストレージ エミュレーターが必要です。
- アズライトを始めるCopy
注意: VS Code 拡張機能から取得した Azurite を使用する場合は
Azurite: Start
now」を実行する必要があります。そうしないとエラーが表示されます。
ターミナルからMCPサーバーをローカルで実行する
- 依存関係をインストールするCopy
- プロジェクトを構築するCopy
- Functions ホストをローカルで起動します。Copy
デフォルトでは、Webhooksルート(
/runtime/webhooks/mcp/sse
が使用されます。後ほど、Azureでクライアント/ホスト呼び出し時にキーを設定するために、/runtime/webhooks/mcp/sse?code=<system_key>
クライアント/ホスト内からローカルMCP サーバーを使用する
VS Code - コパイロット編集
- コマンド パレットからMCP サーバーを追加し、実行中の Function App の SSE エンドポイントに URL を追加します。Copy
- 追加する MCP サーバーのタイプとして**HTTP (Server-Sent-Events)**を選択します。
- 実行中の関数アプリのSSEエンドポイントのURLを入力します
- サーバーIDを入力します。(任意の名前を指定できます)
- これをユーザー設定(すべてのアプリで利用可能)で実行するか、ワークスペース設定(このアプリでのみ利用可能)で実行するかを選択します。
- コマンドパレットからMCPサーバーの一覧を表示し、サーバーを起動します。前の手順でローカルサーバーが既に起動している可能性があります。その場合は、この手順をスキップしてください。
- Copilot チャットエージェントモードでは、ツールを起動するためのプロンプトを入力します。たとえば、コードを選択してこのプロンプトを入力します。CopyCopyCopy
- ツールを実行するように求められたら、 「続行」をクリックして同意します。
- 完了したら、ターミナル ウィンドウで Ctrl + C を押して
func.exe
ホスト プロセスを停止し、コマンド パレットからMCP サーバーを一覧表示してローカル サーバーを停止します。
MCP検査官
- 新しいターミナルウィンドウで、MCP Inspectorをインストールして実行します。Copy
- 以前に関数アプリを停止した場合は、Functions ホストをローカルで起動します。Copy
- Ctrl キーを押しながらクリックすると、アプリによって表示される URL (例: http://0.0.0.0:5173/#resources ) から MCP Inspector Web アプリが読み込まれます。
- トランスポートタイプを
SSE
に設定する - 実行中の Function App の SSE エンドポイントへの URL を設定し、接続します。Copy
- ツールの一覧を表示します。ツールをクリックしてツールを実行してください。
- 完了したら、ターミナル ウィンドウで Ctrl + C キーを押して
func.exe
ホスト プロセスを停止し、ターミナル ウィンドウで Ctrl + C キーを押して@modelcontextprotocol/inspector
ホスト プロセスを停止します。
リモート MCP 用に Azure にデプロイする
オプションで、サンプルで使用されている VNet をオプトインできます。(これを選択する場合は、 azd up
の前に実行してください)
次のazdコマンドを実行して、必要な Azure リソースを使用して関数アプリをプロビジョニングし、コードをデプロイします。
注: API Management を使用すると、MCP サーバーのセキュリティとポリシーを強化できます。また、App Service の組み込み認証を使用すると、Entra などのお気に入りの OAuth プロバイダーを設定できます。
クライアントからリモートMCP サーバー関数アプリに接続する
クライアントは、新しいホスト型SSEエンドポイントを呼び出すためにキーを必要とします。このキーhttps://<funcappname>.azurewebsites.net/runtime/webhooks/mcp/sse
という形式になります。ホスト型関数には、デフォルトでシステムキーが必要です。これはポータルまたはCLI( az functionapp keys list --resource-group <resource_group> --name <function_app_name>
)から取得できますmcp_extension
という名前のシステムキーを取得してください。
MCP InspectorでリモートMCPサーバーに接続する
MCP Inspector の場合、URL にキーを含めることができます。
VS CodeでリモートMCPサーバーに接続する - GitHub Copilot
VS Code内でGitHub Copilotを使用する場合は、 mcp.json
のx-functions-key
ヘッダーにキーを設定し、URLにはhttps://<funcappname>.azurewebsites.net/runtime/webhooks/mcp/sse
を使用します。以下の例は、このリポジトリに含まれるmcp.json
ファイルからの抜粋です。VS Codeからサーバーを起動する際に、入力欄を使用してキーの入力を求めますmcp.json
ファイルは以下のようになります。
mcp.json
ファイル内のサーバーremote-mcp-function
で [開始] をクリックします。- VS Code からプロンプトが表示されたら、Azure Portal で作成した関数アプリの名前を入力します。
- プロンプトに
Azure Functions MCP Extension System Key
を入力します。Azureポータルから関数アプリの「Functions」メニュー項目に移動し、「アプリキー」を選択して、「システムキー」からmcp_extension
キーをコピーすることで、このキーをコピーできます。 - Copilot チャットエージェントモードでは、ツールを起動するためのプロンプトを入力します。たとえば、コードを選択してこのプロンプトを入力します。CopyCopyCopy
コードを再デプロイする
Azure リソースをプロビジョニングし、関数アプリにコードの更新をデプロイするために必要な回数だけazd up
コマンドを実行できます。
[!NOTE] デプロイされたコード ファイルは常に最新のデプロイ パッケージによって上書きされます。
リソースをクリーンアップする
関数アプリと関連リソースの操作が完了したら、次のコマンドを使用して、関数アプリと関連リソースを Azure から削除し、それ以上のコストが発生しないようにすることができます。
ソースコード
getSnippet
およびsaveSnippet
エンドポイントの関数コードは、 src
ディレクトリ内の TypeScript ファイルで定義されています。MCP 関数アノテーションは、これらの関数を MCP サーバーツールとして公開します。
これは、いくつかの MCP サーバー例 (文字列の取得、オブジェクトの取得、オブジェクトの保存) のコードを示しています。
host.json
ファイルには、この機能を利用するアプリに必要な実験的なバンドルへの参照も含まれていることに注意してください。
次のステップ
- MCP サーバーにAPI 管理を追加します (認証、ゲートウェイ、ポリシーなど)
- MCPサーバーに組み込み認証を追加する
- VNET_ENABLED=true フラグを使用して VNET を有効にする
- Microsoft の MCP 関連取り組みについて詳しくは、こちらをご覧ください。
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Azure Functions を使用したクラウドベースのカスタム MCP サーバー。キー、HTTPS、OAuth、ネットワーク分離オプションを介した安全な通信でコード スニペットを保存および取得できます。
Related MCP Servers
- AsecurityAlicenseAqualityA MCP server for managing and storing code snippets in various programming languages, allowing users to create, list, and delete snippets via a standardized interface.Last updated -34JavaScriptMIT License
- -securityAlicense-qualityAn MCP server to create secure code sandbox environment for executing code within Docker containers.Last updated -69GoMIT License
- -securityFlicense-qualityA personal MCP server for securely storing and accessing API keys across projects using the macOS Keychain, letting AI assistants and applications retrieve credentials through natural language.Last updated -10TypeScript
- -securityAlicense-qualityAn MCP server for interacting with Azure. Contains some common Compute and Networking actions, and extensible to add many more.Last updated -PythonApache 2.0