createListMcpResourcesTool function

Tool<JsonMap, String> createListMcpResourcesTool(
  1. Genkit ai, {
  2. required ToolRuntime runtime,
  3. required McpResourceAdapter adapter,
})

Builds the tool that lists MCP resources through adapter.

Implementation

Tool<JsonMap, String> createListMcpResourcesTool(
  Genkit ai, {
  required ToolRuntime runtime,
  required McpResourceAdapter adapter,
}) {
  return defineTextTool(
    ai,
    runtime: runtime,
    name: 'list_mcp_resources',
    description: _description,
    properties: <String, Object?>{
      'server': stringProperty('Only list resources from this server.'),
    },
    run: (input) async {
      final server = readString(input, 'server')?.trim();
      runtime.startTool('list_mcp_resources', server ?? 'all servers');
      final resources = await adapter.listResources(server: server == null || server.isEmpty ? null : server);
      return jsonEncode(<String, Object?>{'resources': resources.map((resource) => resource.toJson()).toList()});
    },
  );
}