Builds on section 02 by adding todo list tools (AddTodo, GetTodoList, DeleteTodo) backed by Azure Table Storage. No authentication. Introduces Azure Storage setup used in later sections.
-
Azure Storage Connection String: Replace
<AZURE_STORAGE_CONNECTION_STRING>in:src/McpServerTodoList/appsettings.json.vscode/launch.json(env section, for F5 debugging)
Get the value from Azure Portal → Storage Account → Access keys.
This guide explains how to set up Azure Table Storage and connect it to a .NET MCP Server using a storage account connection string.
This approach is deliberately:
- ✅ Low cost
- ✅ Low ceremony
- ✅ Easy to understand
- ❌ Not production-grade security (by design, for teaching)
We will:
- Create a low-cost Azure Storage Account
- Enable Table Storage
- Copy the connection string
- Store it in
appsettings.json - Use it from C# to read/write todos
In the Azure Portal:
- Create resource → Storage account
- Use the following settings:
- Resource group: your existing MCP server resource group
- Storage account name: any globally unique name (e.g.
jcmpserverdemo01) - Region: same as your Container App
- Performance:
Standard - Replication:
Locally-redundant storage (LRS) - Preferred storage type:
👉 Other (tables and queues)
This is the cheapest possible configuration that supports Azure Table Storage.
You can leave most settings as default.
Important points:
- Public network access: Enabled
- Secure transfer required: Enabled
- Storage account key access: Enabled
We intentionally allow key-based access to avoid managed identity and RBAC complexity in this demo.
After the storage account is created:
- Go to Storage account → Storage browser
- Open Tables
- Click Add table
- Name it: Todos