diff --git a/Andes.Extensions.AI.Agent/Andes.Extensions.AI.Agent.csproj b/Andes.Extensions.AI.Agent/Andes.Extensions.AI.Agent.csproj
index 7cf85ff..294f1a7 100644
--- a/Andes.Extensions.AI.Agent/Andes.Extensions.AI.Agent.csproj
+++ b/Andes.Extensions.AI.Agent/Andes.Extensions.AI.Agent.csproj
@@ -4,7 +4,7 @@
net10.0
Andes.Extensions.AI
Andes.Extensions.AI.Agent
- 0.3.1
+ 0.4.0
Rodrigo Rojas
Microsoft Agent Framework support for Andes.Extensions.AI tool tracking: classifies agents exposed as function tools as agent tools ("Calling {Agent} Agent"), attributes each agent run's token usage to the calling tool's scope, and optionally reports the agent's own function invocations as progress statuses.
AI;IChatClient;Microsoft.Extensions.AI;AgentFramework;Microsoft.Agents.AI;agents;middleware;progress;tools
diff --git a/Andes.Extensions.AI.Mcp/Andes.Extensions.AI.Mcp.csproj b/Andes.Extensions.AI.Mcp/Andes.Extensions.AI.Mcp.csproj
index 0f8f784..d934339 100644
--- a/Andes.Extensions.AI.Mcp/Andes.Extensions.AI.Mcp.csproj
+++ b/Andes.Extensions.AI.Mcp/Andes.Extensions.AI.Mcp.csproj
@@ -4,7 +4,7 @@
net10.0
Andes.Extensions.AI
Andes.Extensions.AI.Mcp
- 0.3.1
+ 0.4.0
Rodrigo Rojas
Model Context Protocol (MCP) support for Andes.Extensions.AI tool tracking: classifies McpClientTool instances as MCP tools ("Calling {Server} MCP") and bridges MCP progress notifications into chat progress updates with numeric progress values.
AI;IChatClient;Microsoft.Extensions.AI;MCP;ModelContextProtocol;middleware;progress;tools
diff --git a/Andes.Extensions.AI.UI/Andes.Extensions.AI.UI.csproj b/Andes.Extensions.AI.UI/Andes.Extensions.AI.UI.csproj
index c350db4..a1407cf 100644
--- a/Andes.Extensions.AI.UI/Andes.Extensions.AI.UI.csproj
+++ b/Andes.Extensions.AI.UI/Andes.Extensions.AI.UI.csproj
@@ -4,7 +4,7 @@
net10.0
Andes.Extensions.AI
Andes.Extensions.AI.UI
- 0.3.1
+ 0.4.0
Rodrigo Rojas
UI status contract for Andes.Extensions.AI tool tracking: serializable records (and a matching TypeScript interface) that project the tracked chat stream into an assistant-activity hierarchy — the assistant's own functions, MCP tools, and agents, each with sub-statuses, nested children, and token usage — for rendering live progress in Blazor, a console, or any TypeScript SPA.
AI;IChatClient;Microsoft.Extensions.AI;UI;Blazor;TypeScript;progress;streaming;middleware;tools
diff --git a/Andes.Extensions.AI/Andes.Extensions.AI.csproj b/Andes.Extensions.AI/Andes.Extensions.AI.csproj
index 364769c..bfbd1b5 100644
--- a/Andes.Extensions.AI/Andes.Extensions.AI.csproj
+++ b/Andes.Extensions.AI/Andes.Extensions.AI.csproj
@@ -4,7 +4,7 @@
net10.0
Andes.Extensions.AI
Andes.Extensions.AI
- 0.3.1
+ 0.4.0
Rodrigo Rojas
Middleware extensions for Microsoft.Extensions.AI: per-request and per-tool token usage tracking, and streaming status/progress propagation for IChatClient pipelines.
AI;IChatClient;Microsoft.Extensions.AI;middleware;tokens;usage;streaming;progress;tools
diff --git a/Directory.Packages.props b/Directory.Packages.props
index cc6184f..a67c6f0 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -8,16 +8,16 @@
-
-
-
-
+
+
+
+
-
-
+
+
diff --git a/releases/v0.3.0.md b/releases/v0.3.0.md
index 48bd926..b03aed9 100644
--- a/releases/v0.3.0.md
+++ b/releases/v0.3.0.md
@@ -1,4 +1,6 @@
-# 0.3.0 — Unreleased
+# 0.3.0
+
+**Tag:** `v0.3.0` · **Date:** 2026-07-29
All changes since [`v0.2.0`](v0.2.0.md).
diff --git a/releases/v0.3.1.md b/releases/v0.3.1.md
index 386cb8f..85e0bb9 100644
--- a/releases/v0.3.1.md
+++ b/releases/v0.3.1.md
@@ -1,4 +1,6 @@
-# 0.3.1 — Unreleased
+# 0.3.1
+
+**Tag:** `v0.3.1` · **Date:** 2026-07-29
All changes since [`v0.3.0`](v0.3.0.md).
diff --git a/releases/v0.4.0.md b/releases/v0.4.0.md
new file mode 100644
index 0000000..18e4d96
--- /dev/null
+++ b/releases/v0.4.0.md
@@ -0,0 +1,20 @@
+# 0.4.0
+
+**Tag:** `v0.4.0` · **Date:** 2026-07-31
+
+All changes since [`v0.3.1`](v0.3.1.md).
+
+A **dependency-update release** of the four lockstep packages (`Andes.Extensions.AI`, `Andes.Extensions.AI.Mcp`, `Andes.Extensions.AI.Agent`, `Andes.Extensions.AI.UI`). There are **no code, API, or behavioral changes** relative to 0.3.1 — no `.cs` file changed; only the central pins in `Directory.Packages.props` moved, and those pins become the dependency floors the published packages declare on nuget.org.
+
+## Changed
+
+- **`Andes.Extensions.AI.Mcp` now requires `ModelContextProtocol.Core` >= 2.0.0** (was `>= 1.4.1`) — a major release of the MCP C# SDK, published 2026-07-28 and aligned with the MCP **2026-07-28 specification** (see the [SDK release notes](https://github.com/modelcontextprotocol/csharp-sdk/releases/tag/v2.0.0)). MCP 2.0 carries its own breaking changes and deprecations for consumers (stateless-by-default HTTP; Roots, Sampling, and Logging obsoleted), which is why this is a minor bump (0.3.1 → 0.4.0) rather than a patch despite no code changes in this repository.
+ - The `Andes.Extensions.AI.Mcp` source itself compiled against MCP 2.0 with **zero warnings** (warnings are errors) and required no migration — it uses none of the APIs MCP 2.0 deprecates (Roots/Sampling/Logging).
+- **Core now floors `Microsoft.Extensions.AI` >= 10.8.3** and **`Andes.Extensions.AI.UI` floors `Microsoft.Extensions.AI.Abstractions` >= 10.8.3** (both were `>= 10.8.1`).
+- **`Andes.Extensions.AI.Agent` now floors `Microsoft.Agents.AI` >= 1.16.0** (was `>= 1.15.0`).
+- The remaining pin updates — `ModelContextProtocol` 1.4.1 → 2.0.0 and `Microsoft.Extensions.AI.OpenAI` 10.8.1 → 10.8.3 — are consumed only by the tests, the test MCP server, and the demo sample, none of which ship to NuGet.
+- **All four packages version in lockstep at 0.4.0**; the satellites depend on core `>= 0.4.0`.
+
+## Verification
+
+`dotnet build` clean with zero warnings against the new pins (warnings are errors). `dotnet test` — 136/136 tests green, including the Azure OpenAI integration suites and the MCP integration tests that spawn the stdio `Andes.Extensions.AI.TestMcpServer` against the real MCP 2.0 SDK.