createReadMcpResourceTool function

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

Builds the tool that reads an MCP resource through adapter.

Implementation

Tool<JsonMap, String> createReadMcpResourceTool(
  Genkit ai, {
  required ToolRuntime runtime,
  required McpResourceAdapter adapter,
}) {
  return defineTextTool(
    ai,
    runtime: runtime,
    name: 'read_mcp_resource',
    description: _description,
    properties: <String, Object?>{
      'server': stringProperty('The MCP server name.'),
      'uri': stringProperty('The resource URI.'),
    },
    required: <String>['server', 'uri'],
    run: (input) async {
      final server = requireString(input, 'server').trim();
      final uri = requireString(input, 'uri').trim();
      runtime.startTool('read_mcp_resource', '$uri from $server');
      final resource = await adapter.readResource(server: server, uri: uri);
      return jsonEncode(<String, Object?>{'resource': resource.toJson()});
    },
  );
}