marketo_get_bulk_export_status
Check the status of a Marketo bulk export job. Returns status, file size, row count, and timestamps to track export completion.
Instructions
Check the status of a bulk export job. Returns status (Created/Queued/Processing/Completed/Failed/Cancelled), file size, number of rows, and timestamps.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| exportId | Yes | Export job ID |
Implementation Reference
- src/tools/bulkExport.ts:51-62 (handler)The handler function for the 'marketo_get_bulk_export_status' tool. It takes an exportId, calls makeRequest to GET /bulk/v1/leads/export/{exportId}/status.json, and returns the result.
server.tool( "marketo_get_bulk_export_status", "Check the status of a bulk export job. Returns status (Created/Queued/Processing/Completed/Failed/Cancelled), file size, number of rows, and timestamps.", { exportId: z.string().describe("Export job ID"), }, async (args) => { try { return ok(await makeRequest(`/bulk/v1/leads/export/${args.exportId}/status.json`)); } catch (e) { return err(e); } } ); - src/tools/bulkExport.ts:54-56 (schema)Input schema for marketo_get_bulk_export_status: requires an 'exportId' string describing the export job ID.
{ exportId: z.string().describe("Export job ID"), }, - src/tools/bulkExport.ts:51-52 (registration)Registration of the tool with the MCP server via server.tool() call, registering the name 'marketo_get_bulk_export_status'.
server.tool( "marketo_get_bulk_export_status", - src/tools/bulkExport.ts:1-76 (helper)The bulkExport.ts module that contains all bulk export tools. Imports makeRequest, ok, err from ../client.js for HTTP requests and response formatting.
import { z } from "zod"; import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { makeRequest, ok, err } from "../client.js"; 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); } } ); server.tool( "marketo_enqueue_bulk_export", "Enqueue a previously created bulk export job for processing. The job moves from Created to Queued status. Poll status with marketo_get_bulk_export_status.", { exportId: z.string().describe("Export job ID returned from create"), }, async (args) => { try { return ok(await makeRequest( `/bulk/v1/leads/export/${args.exportId}/enqueue.json`, "POST" )); } catch (e) { return err(e); } } ); server.tool( "marketo_get_bulk_export_status", "Check the status of a bulk export job. Returns status (Created/Queued/Processing/Completed/Failed/Cancelled), file size, number of rows, and timestamps.", { exportId: z.string().describe("Export job ID"), }, async (args) => { try { return ok(await makeRequest(`/bulk/v1/leads/export/${args.exportId}/status.json`)); } catch (e) { return err(e); } } ); server.tool( "marketo_get_bulk_export_file", "Download the file from a completed bulk export job. Returns CSV/TSV content. Only works when job status is Completed. Large files may be clipped in MCP response.", { exportId: z.string().describe("Export job ID (must be in Completed status)"), }, async (args) => { try { return ok(await makeRequest(`/bulk/v1/leads/export/${args.exportId}/file.json`)); } catch (e) { return err(e); } } ); } - src/index.ts:13-29 (registration)Entry point: imports registerBulkExportTools from bulkExport.ts and calls it to register all bulk export tools including marketo_get_bulk_export_status.
import { registerBulkExportTools } from "./tools/bulkExport.js"; const server = new McpServer({ name: "marketo-mcp", version: "0.1.0", }); // Register all tool groups registerFormTools(server); registerLeadTools(server); registerProgramTools(server); registerEmailTools(server); registerSmartListTools(server); registerListTools(server); registerChannelTools(server); registerLandingPageTools(server); registerBulkExportTools(server);