marketo_create_bulk_export_leads
Set up a bulk lead export job by specifying fields and a date range filter. After creation, enqueue the job separately. Exports up to 500MB or 10M records in CSV or TSV format.
Instructions
Create a bulk lead export job. Specify which fields to export and a date range filter. The job must be enqueued separately after creation. Max 500MB or 10M records per export.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | Lead field API names to export | |
| filter | Yes | Date range filter - use createdAt or updatedAt (required) | |
| format | No | Export file format | CSV |
Implementation Reference
- src/tools/bulkExport.ts:23-32 (handler)The handler function for the 'marketo_create_bulk_export_leads' tool. It makes a POST request to /bulk/v1/leads/export/create.json with the fields, filter, and format arguments.
async (args) => { try { return ok(await makeRequest( "/bulk/v1/leads/export/create.json", "POST", { fields: args.fields, filter: args.filter, format: args.format }, "application/json" )); } catch (e) { return err(e); } } - src/tools/bulkExport.ts:9-22 (schema)Zod schema defining the input parameters: fields (array of strings), filter (createdAt/updatedAt date range), and format (CSV/TSV).
{ fields: z.array(z.string()).describe("Lead field API names to export"), filter: z.object({ createdAt: z.object({ startAt: z.string().describe("ISO 8601 start datetime"), endAt: z.string().describe("ISO 8601 end datetime"), }).optional(), updatedAt: z.object({ startAt: z.string().describe("ISO 8601 start datetime"), endAt: z.string().describe("ISO 8601 end datetime"), }).optional(), }).describe("Date range filter - use createdAt or updatedAt (required)"), format: z.enum(["CSV", "TSV"]).default("CSV").describe("Export file format"), }, - src/tools/bulkExport.ts:5-33 (registration)The tool is registered via server.tool() inside registerBulkExportTools(), which is called from src/index.ts.
export function registerBulkExportTools(server: McpServer) { server.tool( "marketo_create_bulk_export_leads", "Create a bulk lead export job. Specify which fields to export and a date range filter. The job must be enqueued separately after creation. Max 500MB or 10M records per export.", { fields: z.array(z.string()).describe("Lead field API names to export"), filter: z.object({ createdAt: z.object({ startAt: z.string().describe("ISO 8601 start datetime"), endAt: z.string().describe("ISO 8601 end datetime"), }).optional(), updatedAt: z.object({ startAt: z.string().describe("ISO 8601 start datetime"), endAt: z.string().describe("ISO 8601 end datetime"), }).optional(), }).describe("Date range filter - use createdAt or updatedAt (required)"), format: z.enum(["CSV", "TSV"]).default("CSV").describe("Export file format"), }, async (args) => { try { return ok(await makeRequest( "/bulk/v1/leads/export/create.json", "POST", { fields: args.fields, filter: args.filter, format: args.format }, "application/json" )); } catch (e) { return err(e); } } ); - src/index.ts:29-29 (registration)Registration call in the main entry point: registerBulkExportTools(server);
registerBulkExportTools(server);