adaptMcpToolToServer function

void adaptMcpToolToServer(
  1. McpTool boostTool,
  2. Server server
)

Adapter to add McpTool to mcp_server Server

Implementation

void adaptMcpToolToServer(McpTool boostTool, Server server) {
  server.addTool(
    name: boostTool.name,
    description: boostTool.description,
    inputSchema: boostTool.inputSchema,
    handler: (params) async {
      try {
        // Create request from params
        final request = McpRequest.call(
          boostTool.name,
          params: params,
        );

        // Execute using existing tool logic
        final response = await boostTool.execute(request);

        // Convert response to CallToolResult
        if (response.isError) {
          return CallToolResult(
            content: [
              TextContent(
                text: response.error?.message ?? 'Unknown error',
              ),
            ],
            isError: true,
          );
        }

        // Return text content with result
        return CallToolResult(
          content: [
            TextContent(
              text: _formatResult(response.result),
            ),
          ],
        );
      } catch (e) {
        return CallToolResult(
          content: [
            TextContent(
              text: e.toString(),
            ),
          ],
          isError: true,
        );
      }
    },
  );
}