marketo_get_smart_lists
Retrieve smart lists from Marketo with pagination. Returns metadata like filter rules and folder location.
Instructions
List smart lists in the Marketo instance. Paginate with maxReturn (default 200) and offset. Returns smart list metadata including filter rules and folder location.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| maxReturn | No | ||
| offset | No |
Implementation Reference
- src/index.ts:149-163 (registration)Registration of 'marketo_get_smart_lists' tool via server.tool(), which also contains the schema inline and the handler logic as an anonymous async function.
server.tool( 'marketo_get_smart_lists', 'List smart lists in the Marketo instance. Paginate with maxReturn (default 200) and offset. Returns smart list metadata including filter rules and folder location.', { maxReturn: z.number().optional(), offset: z.number().optional(), }, tool(async ({ maxReturn = 200, offset = 0 }) => { const params = new URLSearchParams({ maxReturn: maxReturn.toString(), offset: offset.toString(), }); return makeApiRequest(`/asset/v1/smartLists.json?${params.toString()}`, 'GET'); }) ); - src/index.ts:156-162 (handler)Handler function for marketo_get_smart_lists. Accepts maxReturn and offset, builds query params, and calls GET /asset/v1/smartLists.json.
tool(async ({ maxReturn = 200, offset = 0 }) => { const params = new URLSearchParams({ maxReturn: maxReturn.toString(), offset: offset.toString(), }); return makeApiRequest(`/asset/v1/smartLists.json?${params.toString()}`, 'GET'); }) - src/index.ts:152-155 (schema)Zod schema defining input parameters: maxReturn (optional number) and offset (optional number).
{ maxReturn: z.number().optional(), offset: z.number().optional(), }, - src/index.ts:23-53 (helper)Helper function makeApiRequest used by the handler to execute HTTP requests against the Marketo API.
async function makeApiRequest( endpoint: string, method: string, data?: any, contentType: string = 'application/json' ) { const token = await tokenManager.getToken(); const headers: Record<string, string> = { Authorization: `Bearer ${token}`, }; if (contentType) { headers['Content-Type'] = contentType; } try { const response = await axios({ url: `${MARKETO_BASE_URL}${endpoint}`, method, data: contentType === 'application/x-www-form-urlencoded' ? new URLSearchParams(data).toString() : data, headers, }); return response.data; } catch (error: any) { console.error('API request failed:', error.response?.data || error.message); throw error; } } - src/index.ts:55-74 (helper)Helper wrapper 'tool()' that wraps handler functions with try/catch, returning standardized content responses.
function tool<T>(handler: (args: T) => Promise<unknown>) { return async (args: T) => { try { const response = await handler(args); return { content: [{ type: 'text' as const, text: JSON.stringify(response, null, 2) }], }; } catch (error: any) { return { content: [ { type: 'text' as const, text: `Error: ${error.response?.data?.message || error.message}`, }, ], isError: true, }; } }; }