dbt-list-macros
List dbt macros from manifest.json using filters for package or macro name to find relevant macros quickly.
Instructions
List dbt macros from manifest.json with package / name filters
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| package | No | Filter by package name | |
| search | No | Substring match against macro name | |
| limit | No |
Implementation Reference
- src/tools/dbt-macros.ts:10-28 (handler)Handler function for dbt-list-macros. Loads the manifest, iterates over macros, applies optional package/name filters and a limit, then returns matching macros with their metadata.
export async function dbtListMacros(args: z.infer<typeof dbtListMacrosSchema>): Promise<unknown> { const manifest = loadManifest(); const out: Array<Record<string, unknown>> = []; const search = args.search?.toLowerCase(); for (const m of Object.values(manifest.macros)) { if (args.package && m.package_name !== args.package) continue; if (search && !m.name.toLowerCase().includes(search)) continue; out.push({ uniqueId: m.unique_id, name: m.name, package: m.package_name, path: m.original_file_path, arguments: m.arguments?.map((a) => ({ name: a.name, type: a.type })) ?? [], description: m.description, }); if (out.length >= args.limit) break; } return { count: out.length, macros: out }; } - src/tools/dbt-macros.ts:4-8 (schema)Zod schema defining the input parameters for dbt-list-macros: package filter, search substring, and limit (default 500).
export const dbtListMacrosSchema = z.object({ package: z.string().optional().describe("Filter by package name"), search: z.string().optional().describe("Substring match against macro name"), limit: z.coerce.number().int().min(1).max(2000).default(500), }); - src/index.ts:84-85 (registration)Registration of the dbt-list-macros tool in the MCP server, linking the schema and handler.
tool("dbt-list-macros", "List dbt macros from manifest.json with package / name filters", dbtListMacrosSchema.shape, wrapToolHandler(dbtListMacros)); tool("dbt-get-macro", "Get a dbt macro: signature, raw SQL, and reverse-lookup of nodes that call it", dbtGetMacroSchema.shape, wrapToolHandler(dbtGetMacro));