create static method

Future<BoostMcpServer> create({
  1. String? projectPath,
  2. bool verbose = false,
})

Create and configure the server

Implementation

static Future<BoostMcpServer> create({
  String? projectPath,
  bool verbose = false,
}) async {
  // Set project root from argument if provided
  if (projectPath != null && projectPath.isNotEmpty) {
    // Temporarily set environment variable for detection
    // Note: This won't modify Platform.environment directly
    // Instead, we'll pass it to ServerPodLocator
  }

  // Detect ServerPod project
  final project = projectPath != null && projectPath.isNotEmpty
      ? ServerPodLocator.getProject(currentPath: projectPath)
      : ServerPodLocator.getProject();

  if (project == null || !project.isValid) {
    throw StateError('Not a valid ServerPod project');
  }

  // Create server with name, version, and capabilities
  final server = Server(
    name: 'serverpod-boost',
    version: '0.1.0',
    capabilities: ServerCapabilities.simple(
      tools: true,
      resources: false,
      prompts: false,
    ),
  );

  // Register all tools via adapter
  for (final tool in BoostToolRegistry.allTools()) {
    adaptMcpToolToServer(tool, server);
  }

  return BoostMcpServer._(
    server: server,
    project: project,
    verbose: verbose,
  );
}