marketo_get_forms
Retrieve Marketo forms with pagination support. Filter by status (approved or draft) to manage form metadata such as name, URL, and folder.
Instructions
List forms in Marketo. Supports pagination via maxReturn (max 200) and offset. Optionally filter by status (approved/draft). Returns form metadata including name, URL, status, and folder.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| maxReturn | No | Max forms to return (1-200, default 20) | |
| offset | No | Pagination offset | |
| status | No | Filter by approval status |
Implementation Reference
- src/tools/forms.ts:5-24 (registration)Registration of the 'marketo_get_forms' tool via server.tool(), including its schema (maxReturn, offset, status) and the handler function that calls makeRequest to GET /rest/asset/v1/forms.json.
export function registerFormTools(server: McpServer) { // ── marketo_get_forms ────────────────────────────────────────────────────── server.tool( "marketo_get_forms", "List forms in Marketo. Supports pagination via maxReturn (max 200) and offset. Optionally filter by status (approved/draft). Returns form metadata including name, URL, status, and folder.", { maxReturn: z.number().optional().describe("Max forms to return (1-200, default 20)"), offset: z.number().optional().describe("Pagination offset"), status: z.enum(["approved", "draft"]).optional().describe("Filter by approval status"), }, async (args) => { try { const params: Record<string, unknown> = {}; if (args.maxReturn) params.maxReturn = args.maxReturn; if (args.offset) params.offset = args.offset; if (args.status) params.status = args.status; return ok(await makeRequest("/rest/asset/v1/forms.json", "GET", params)); } catch (e) { return err(e); } } ); - src/tools/forms.ts:7-24 (handler)Handler function for marketo_get_forms. Builds query params (maxReturn, offset, status) from args and calls makeRequest('/rest/asset/v1/forms.json', 'GET', params). On success returns formatted JSON; on error returns an error response.
server.tool( "marketo_get_forms", "List forms in Marketo. Supports pagination via maxReturn (max 200) and offset. Optionally filter by status (approved/draft). Returns form metadata including name, URL, status, and folder.", { maxReturn: z.number().optional().describe("Max forms to return (1-200, default 20)"), offset: z.number().optional().describe("Pagination offset"), status: z.enum(["approved", "draft"]).optional().describe("Filter by approval status"), }, async (args) => { try { const params: Record<string, unknown> = {}; if (args.maxReturn) params.maxReturn = args.maxReturn; if (args.offset) params.offset = args.offset; if (args.status) params.status = args.status; return ok(await makeRequest("/rest/asset/v1/forms.json", "GET", params)); } catch (e) { return err(e); } } ); - src/tools/forms.ts:10-14 (schema)Input schema for marketo_get_forms: maxReturn (optional number), offset (optional number), status (optional enum 'approved'|'draft'), all described.
{ maxReturn: z.number().optional().describe("Max forms to return (1-200, default 20)"), offset: z.number().optional().describe("Pagination offset"), status: z.enum(["approved", "draft"]).optional().describe("Filter by approval status"), }, - src/index.ts:5-5 (registration)Import of registerFormTools from ./tools/forms.js in the main entry point.
import { registerFormTools } from "./tools/forms.js"; - src/index.ts:21-21 (registration)Invocation of registerFormTools(server) which registers all form tools including marketo_get_forms.
registerFormTools(server);