diff --git a/Directory.Build.props b/Directory.Build.props
index aa949470..f9ba7ee5 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -9,7 +9,7 @@
-0.13.1
+0.14.0
diff --git a/src/McpServer.Introspection/McpServer.Introspection.csproj b/src/McpServer.Introspection/McpServer.Introspection.csproj
index 40aeccea..ccf5cb15 100644
--- a/src/McpServer.Introspection/McpServer.Introspection.csproj
+++ b/src/McpServer.Introspection/McpServer.Introspection.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/src/McpServer.OpenRouter/McpServer.OpenRouter.csproj b/src/McpServer.OpenRouter/McpServer.OpenRouter.csproj
index b08bb800..9d8b0a91 100644
--- a/src/McpServer.OpenRouter/McpServer.OpenRouter.csproj
+++ b/src/McpServer.OpenRouter/McpServer.OpenRouter.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/src/McpServer.TodoApp/McpServer.TodoApp.csproj b/src/McpServer.TodoApp/McpServer.TodoApp.csproj
index fb8656c3..41ac7754 100644
--- a/src/McpServer.TodoApp/McpServer.TodoApp.csproj
+++ b/src/McpServer.TodoApp/McpServer.TodoApp.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/src/RockBot.Agent/RockBot.Agent.csproj b/src/RockBot.Agent/RockBot.Agent.csproj
index 10e66c5b..f5b9f105 100644
--- a/src/RockBot.Agent/RockBot.Agent.csproj
+++ b/src/RockBot.Agent/RockBot.Agent.csproj
@@ -19,7 +19,12 @@
-
+
+
+
+
diff --git a/src/RockBot.Llm.Copilot/RockBot.Llm.Copilot.csproj b/src/RockBot.Llm.Copilot/RockBot.Llm.Copilot.csproj
index eb436cac..a5b3ab42 100644
--- a/src/RockBot.Llm.Copilot/RockBot.Llm.Copilot.csproj
+++ b/src/RockBot.Llm.Copilot/RockBot.Llm.Copilot.csproj
@@ -17,6 +17,10 @@
+
+
+
diff --git a/src/RockBot.Scripts.Container/RockBot.Scripts.Container.csproj b/src/RockBot.Scripts.Container/RockBot.Scripts.Container.csproj
index d495cd76..474c7148 100644
--- a/src/RockBot.Scripts.Container/RockBot.Scripts.Container.csproj
+++ b/src/RockBot.Scripts.Container/RockBot.Scripts.Container.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/src/RockBot.Tools.Mcp/McpToolExecutor.cs b/src/RockBot.Tools.Mcp/McpToolExecutor.cs
index 2d6d97a0..70166fa4 100644
--- a/src/RockBot.Tools.Mcp/McpToolExecutor.cs
+++ b/src/RockBot.Tools.Mcp/McpToolExecutor.cs
@@ -78,8 +78,8 @@ public async Task ExecuteAsync(ToolInvokeRequest request, Ca
blocks.Add(block switch
{
TextContentBlock text => new ToolContentBlock { Type = "text", Text = text.Text },
- ImageContentBlock img => new ToolContentBlock { Type = "image", Data = img.Data, MimeType = img.MimeType },
- AudioContentBlock audio => new ToolContentBlock { Type = "audio", Data = audio.Data, MimeType = audio.MimeType },
+ ImageContentBlock img => new ToolContentBlock { Type = "image", Data = Convert.ToBase64String(img.Data.Span), MimeType = img.MimeType },
+ AudioContentBlock audio => new ToolContentBlock { Type = "audio", Data = Convert.ToBase64String(audio.Data.Span), MimeType = audio.MimeType },
_ => new ToolContentBlock { Type = block.Type ?? "unknown", Text = $"[{block.Type ?? "unknown"} content block]" }
});
}
diff --git a/src/RockBot.Tools.Mcp/RockBot.Tools.Mcp.csproj b/src/RockBot.Tools.Mcp/RockBot.Tools.Mcp.csproj
index d8d474f5..55c26ff5 100644
--- a/src/RockBot.Tools.Mcp/RockBot.Tools.Mcp.csproj
+++ b/src/RockBot.Tools.Mcp/RockBot.Tools.Mcp.csproj
@@ -18,7 +18,7 @@
-
+
diff --git a/tests/RockBot.Scripts.Tests/RockBot.Scripts.Tests.csproj b/tests/RockBot.Scripts.Tests/RockBot.Scripts.Tests.csproj
index cd86234e..63afd546 100644
--- a/tests/RockBot.Scripts.Tests/RockBot.Scripts.Tests.csproj
+++ b/tests/RockBot.Scripts.Tests/RockBot.Scripts.Tests.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/tests/RockBot.Tools.Tests/McpToolExecutorTests.cs b/tests/RockBot.Tools.Tests/McpToolExecutorTests.cs
index 1750a34a..a145d558 100644
--- a/tests/RockBot.Tools.Tests/McpToolExecutorTests.cs
+++ b/tests/RockBot.Tools.Tests/McpToolExecutorTests.cs
@@ -240,12 +240,13 @@ public void MapContentBlocks_ExtractsTextContent()
[TestMethod]
public void MapContentBlocks_PreservesImageContent()
{
+ var imageBytes = new byte[] { 0xDE, 0xAD, 0xBE, 0xEF };
var result = new CallToolResult
{
Content =
[
new TextContentBlock { Text = "Here is an image:" },
- new ImageContentBlock { Data = "abc123", MimeType = "image/png" }
+ new ImageContentBlock { Data = imageBytes, MimeType = "image/png" }
]
};
var blocks = McpToolExecutor.MapContentBlocks(result);
@@ -253,7 +254,7 @@ public void MapContentBlocks_PreservesImageContent()
Assert.AreEqual(2, blocks.Count);
Assert.AreEqual("text", blocks[0].Type);
Assert.AreEqual("image", blocks[1].Type);
- Assert.AreEqual("abc123", blocks[1].Data);
+ Assert.AreEqual(Convert.ToBase64String(imageBytes), blocks[1].Data);
Assert.AreEqual("image/png", blocks[1].MimeType);
// TextFromBlocks only returns text parts
Assert.AreEqual("Here is an image:", McpToolExecutor.TextFromBlocks(blocks));