Skip to content

Latest commit

 

History

History
48 lines (28 loc) · 3.95 KB

File metadata and controls

48 lines (28 loc) · 3.95 KB

Project Summary

When and why SQL MCP server is needed: customer have data in SQL database, i.e. tables, they want to develop agents to conduct reasoning over the data, and then take actions to update back to the database. a MCP is useful for this purpose, which provides tools to READ data from the SQL database and WRITE back.

The technique behind the scene is DAB -- Data API Builder. By building on Data API builder's entity abstraction, RBAC, caching, and telemetry, the SQL MCP server delivers a production-ready surface that works the same across REST, GraphQL, and MCP.

Client app ----------------> SQL MCP -------------------> SQL Database

Reference: https://learn.microsoft.com/en-us/azure/data-api-builder/mcp/overview

What's special about this project repo:

It shows that SQL MCP Server works cleanly on Azure App Service as a cloud MCP endpoint for Foundry, without containers. For teams already standardized on App Service, this removes the container and ACR overhead entirely and makes MCP adoption much cheaper and faster. It’s a deployment pattern that isn’t experimented today but works end-to-end with Entra and Project Managed Identity.

This project uses Fabric SQL database as an example, gives you complete steps from setting up client Service Principal, RBAC, DAB configuration, to start the SQL MCP server and run the server.

The solution provided in this repo is prepared for evolving towards multi-tenancy direction.

Benefits of hosting SQL MCP server using app service:

-- App Service is a first-class “cloud web app” host for an MCP endpoint.
Azure App Service is designed to run web apps and APIs and supports standard web concerns (TLS, custom domains, scaling, monitoring). For MCP workloads, the key is: App Service reliably hosts an HTTPS endpoint that Foundry can call. [https://learn.microsoft.com/en-us/azure/developer/azure-mcp-server/tools/azure-app-service]

-- Scaling is straightforward using App Service scaling knobs.
If your SQL MCP endpoint gets more traffic, you scale it the same way you scale any App Service API:
Scale out (more instances) using App Service scaling options, including automatic scaling based on HTTP traffic (Premium tiers) or rule-based autoscale.
Scale up (bigger SKU) to increase CPU/memory.
Optionally use per-app scaling if you host multiple apps on the same plan and want the MCP app to scale differently.

-- App Service has explicit guidance for MCP authorization.
If your MCP endpoint is protected with Microsoft Entra, App Service has specific MCP authorization guidance—including client considerations (many MCP clients don’t support dynamic client registration), and using Entra preauthorization to avoid consent prompts in MCP clients. [https://learn.microsoft.com/en-us/azure/app-service/configure-authentication-mcp]
This is a good fit for Foundry’s “shared identity” patterns (e.g., Project Managed Identity) because you can use Entra-based auth without managing API keys.

-- For always-on MCP servers with steady traffic, Azure App Service provides lower and more predictable cost, faster response times (no cold start), and simpler operations compared to scale-to-zero platforms like Azure Container Apps.

The repo includes two part:

Part 1: How to setup DAB

https://github.com/Azure-Samples/SQL-MCP-NoContainer/blob/main/How-to-setup-DAB.md

Part 2: How to run the SQL MCP server

https://github.com/Azure-Samples/SQL-MCP-NoContainer/blob/main/How-to-Run-MCP.md

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.