diff --git a/packages/providers/ollama/src/llm.ts b/packages/providers/ollama/src/llm.ts
index f82da2ff32bd0785ad6a2e13f72ca3ce598c549e..3878a96783de066fb1f1a7f537a94187e1af4929 100644
--- a/packages/providers/ollama/src/llm.ts
+++ b/packages/providers/ollama/src/llm.ts
@@ -23,7 +23,22 @@ import {
   type Options,
 } from "ollama/browser";
 
-const messageAccessor = (part: OllamaChatResponse): ChatResponseChunk => {
+const messageAccessor = (
+  part: OllamaChatResponse,
+): ChatResponseChunk<ToolCallLLMMessageOptions> => {
+  if (part.message.tool_calls) {
+    return {
+      raw: part,
+      delta: part.message.content,
+      options: {
+        toolCall: part.message.tool_calls.map((toolCall) => ({
+          name: toolCall.function.name,
+          input: toolCall.function.arguments,
+          id: randomUUID(),
+        })),
+      },
+    };
+  }
   return {
     raw: part,
     delta: part.message.content,