marketo_get_smart_lists
Retrieve Marketo smart list metadata including names, folders, creation/update dates, and filter rule summaries. Supports pagination with maxReturn and offset.
Instructions
List smart lists in Marketo. Returns smart list metadata including name, folder, created/updated dates, and filter rules summary.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| maxReturn | No | Max smart lists to return (1-200, default 20) | |
| offset | No | Pagination offset |
Implementation Reference
- src/tools/smartLists.ts:14-21 (handler)The async handler function for marketo_get_smart_lists. It takes optional maxReturn and offset args, builds query params, calls makeRequest to GET /rest/asset/v1/smartLists.json, and returns the response via the ok helper.
async (args) => { try { const params: Record<string, unknown> = {}; if (args.maxReturn) params.maxReturn = args.maxReturn; if (args.offset) params.offset = args.offset; return ok(await makeRequest("/rest/asset/v1/smartLists.json", "GET", params)); } catch (e) { return err(e); } } - src/tools/smartLists.ts:10-13 (schema)Zod schema for the tool's input: optional maxReturn (number, 1-200, default 20) and offset (number) for pagination.
{ maxReturn: z.number().optional().describe("Max smart lists to return (1-200, default 20)"), offset: z.number().optional().describe("Pagination offset"), }, - src/tools/smartLists.ts:7-22 (registration)Registration of the tool via server.tool() with the name 'marketo_get_smart_lists' and a description. Called from registerSmartListTools which is invoked in src/index.ts line 25.
server.tool( "marketo_get_smart_lists", "List smart lists in Marketo. Returns smart list metadata including name, folder, created/updated dates, and filter rules summary.", { maxReturn: z.number().optional().describe("Max smart lists to return (1-200, default 20)"), offset: z.number().optional().describe("Pagination offset"), }, async (args) => { try { const params: Record<string, unknown> = {}; if (args.maxReturn) params.maxReturn = args.maxReturn; if (args.offset) params.offset = args.offset; return ok(await makeRequest("/rest/asset/v1/smartLists.json", "GET", params)); } catch (e) { return err(e); } } ); - src/index.ts:20-29 (registration)Top-level registration: registerSmartListTools(server) wires the smart list tools (including marketo_get_smart_lists) into the MCP server.
// Register all tool groups registerFormTools(server); registerLeadTools(server); registerProgramTools(server); registerEmailTools(server); registerSmartListTools(server); registerListTools(server); registerChannelTools(server); registerLandingPageTools(server); registerBulkExportTools(server); - src/client.ts:21-49 (helper)The makeRequest helper that executes authenticated HTTP requests to the Marketo API. Used by the smart list handler to call the Marketo REST endpoint.
export async function makeRequest<T = unknown>( endpoint: string, method: Method = "GET", data?: unknown, contentType?: string, ): Promise<T> { const token = await getAccessToken(); const config: AxiosRequestConfig = { url: `${MARKETO_BASE_URL}${endpoint}`, method, headers: { Authorization: `Bearer ${token}`, ...(contentType ? { "Content-Type": contentType } : {}), }, ...(data && method !== "GET" ? { data } : {}), ...(data && method === "GET" ? { params: data } : {}), }; const res = await axios(config); const body = res.data; // Marketo REST API returns errors inside the response body if (body?.errors?.length) { const e = body.errors[0]; throw new MarketoError(`${e.code}: ${e.message}`, res.status); } return body as T; }