start method
Start the MCP server (stdio mode)
Implementation
Future<void> start() async {
stderr.writeln('[$_serverName v$_serverVersion] MCP Server starting...');
// Send server info
_sendNotification('initialized', {
'serverName': _serverName,
'version': _serverVersion,
'capabilities': {
'tools': true,
'resources': true,
},
});
// Listen to stdin
await for (final line in stdin.transform(utf8.decoder).transform(const LineSplitter())) {
if (line.trim().isEmpty) continue;
try {
final json = jsonDecode(line) as Map<String, dynamic>;
await _handleRequest(json);
} catch (e, stack) {
stderr.writeln('Error processing request: $e');
stderr.writeln(stack);
}
}
}