update to the latest api
diff --git a/pkgs/dart_mcp_server/lib/src/mixins/analyzer.dart b/pkgs/dart_mcp_server/lib/src/mixins/analyzer.dart
index d93f0a0..78fbf8a 100644
--- a/pkgs/dart_mcp_server/lib/src/mixins/analyzer.dart
+++ b/pkgs/dart_mcp_server/lib/src/mixins/analyzer.dart
@@ -369,8 +369,16 @@
               'dart/textDocument/summary',
               lsp.TextDocumentIdentifier(uri: uri).toJson(),
             ))
-            as String;
-    return CallToolResult(content: [TextContent(text: result)]);
+            as Map<String, Object?>;
+    final summary = result['summary'] as String?;
+    if (summary != null) {
+      return CallToolResult(content: [TextContent(text: summary)]);
+    } else {
+      return CallToolResult(
+        content: [Content.text(text: jsonEncode(result))],
+        isError: true,
+      );
+    }
   }
 
   /// Ensures that all prerequisites for any analysis task are met.
diff --git a/pkgs/dart_mcp_server/test/tools/analyzer_test.dart b/pkgs/dart_mcp_server/test/tools/analyzer_test.dart
index f810fea..b5bbfa6 100644
--- a/pkgs/dart_mcp_server/test/tools/analyzer_test.dart
+++ b/pkgs/dart_mcp_server/test/tools/analyzer_test.dart
@@ -226,9 +226,9 @@
               'text',
               equalsIgnoringWhitespace('''
 int x;
-void foo() {}
+void foo();
 class A {
-  String get y {}
+  String get y;
 }'''),
             ),
           );
@@ -261,7 +261,7 @@
 StreamChannel<String> stdioChannel({
   required Stream<List<int>> input,
   required StreamSink<List<int>> output,
-}) {}'''),
+});'''),
         ),
       );
     });