Skip to main content
Glama
Azure-Samples

Secure Remote MCP Server

storage-PrivateEndpoint.bicep3.97 kB
// Parameters @description('Specifies the name of the virtual network.') param virtualNetworkName string @description('Specifies the name of the subnet which contains the virtual machine.') param subnetName string @description('Specifies the resource name of the Storage resource with an endpoint.') param resourceName string @description('Specifies the location.') param location string = resourceGroup().location param tags object = {} // Virtual Network resource vnet 'Microsoft.Network/virtualNetworks@2021-08-01' existing = { name: virtualNetworkName } resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' existing = { name: resourceName } var blobPrivateDNSZoneName = format('privatelink.blob.{0}', environment().suffixes.storage) var blobPrivateDnsZoneVirtualNetworkLinkName = format('{0}-blob-link-{1}', resourceName, take(toLower(uniqueString(resourceName, virtualNetworkName)), 4)) var queuePrivateDNSZoneName = format('privatelink.queue.{0}', environment().suffixes.storage) var queuePrivateDnsZoneVirtualNetworkLinkName = format('{0}-queue-link-{1}', resourceName, take(toLower(uniqueString(resourceName, virtualNetworkName)), 4)) // Private DNS Zones resource blobPrivateDnsZone 'Microsoft.Network/privateDnsZones@2020-06-01' = { name: blobPrivateDNSZoneName location: 'global' tags: tags properties: {} dependsOn: [ vnet ] } resource queuePrivateDnsZone 'Microsoft.Network/privateDnsZones@2020-06-01' = { name: queuePrivateDNSZoneName location: 'global' tags: tags properties: {} dependsOn: [ vnet ] } // Virtual Network Links resource blobPrivateDnsZoneVirtualNetworkLink 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = { parent: blobPrivateDnsZone name: blobPrivateDnsZoneVirtualNetworkLinkName location: 'global' tags: tags properties: { registrationEnabled: false virtualNetwork: { id: vnet.id } } } resource queuePrivateDnsZoneVirtualNetworkLink 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = { parent: queuePrivateDnsZone name: queuePrivateDnsZoneVirtualNetworkLinkName location: 'global' tags: tags properties: { registrationEnabled: false virtualNetwork: { id: vnet.id } } } // Private Endpoints resource blobPrivateEndpoint 'Microsoft.Network/privateEndpoints@2021-08-01' = { name: 'blob-private-endpoint' location: location tags: tags properties: { privateLinkServiceConnections: [ { name: 'blobPrivateLinkConnection' properties: { privateLinkServiceId: storageAccount.id groupIds: [ 'blob' ] } } ] subnet: { id: '${vnet.id}/subnets/${subnetName}' } } } resource blobPrivateDnsZoneGroupName 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2022-01-01' = { parent: blobPrivateEndpoint name: 'blobPrivateDnsZoneGroup' properties: { privateDnsZoneConfigs: [ { name: 'storageBlobARecord' properties: { privateDnsZoneId: blobPrivateDnsZone.id } } ] } } resource queuePrivateEndpoint 'Microsoft.Network/privateEndpoints@2021-08-01' = { name: 'queue-private-endpoint' location: location tags: tags properties: { privateLinkServiceConnections: [ { name: 'queuePrivateLinkConnection' properties: { privateLinkServiceId: storageAccount.id groupIds: [ 'queue' ] } } ] subnet: { id: '${vnet.id}/subnets/${subnetName}' } } } resource queuePrivateDnsZoneGroupName 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2022-01-01' = { parent: queuePrivateEndpoint name: 'queuePrivateDnsZoneGroup' properties: { privateDnsZoneConfigs: [ { name: 'storageQueueARecord' properties: { privateDnsZoneId: queuePrivateDnsZone.id } } ] } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Azure-Samples/remote-mcp-apim-functions-python'

If you have feedback or need assistance with the MCP directory API, please join our Discord server