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,
-}) {}'''),
+});'''),
),
);
});