list_nodes
Retrieve and filter n8n nodes by category, package, or AI capability using list_nodes on n8n-MCP. Supports triggers, transforms, outputs, inputs, and AI tools for efficient workflow automation.
Instructions
List n8n nodes. Common: list_nodes({limit:200}) for all, list_nodes({category:'trigger'}) for triggers. Package: "n8n-nodes-base" or "@n8n/n8n-nodes-langchain". Categories: trigger/transform/output/input.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | trigger|transform|output|input|AI | |
| developmentStyle | No | Usually "programmatic" | |
| isAITool | No | Filter AI-capable nodes | |
| limit | No | Max results (default 50, use 200+ for all) | |
| package | No | "n8n-nodes-base" (core) or "@n8n/n8n-nodes-langchain" (AI) |
Implementation Reference
- src/mcp-tools-engine.ts:19-21 (handler)Primary handler function for the 'list_nodes' MCP tool. Accepts optional args.limit and delegates to NodeRepository.getAllNodes() for execution.async listNodes(args: any = {}) { return this.repository.getAllNodes(args.limit); }
- Core database query logic for listing all nodes, supports optional LIMIT for pagination, parses results into structured Node objects.getAllNodes(limit?: number): any[] { let sql = 'SELECT * FROM nodes ORDER BY display_name'; if (limit) { sql += ` LIMIT ${limit}`; } const rows = this.db.prepare(sql).all() as any[]; return rows.map(row => this.parseNodeRow(row)); }
- Supporting method in NodeDocumentationService that lists all nodes from database, used by repository or directly.async listNodes(): Promise<NodeInfo[]> { await this.ensureInitialized(); const stmt = this.db!.prepare('SELECT * FROM nodes ORDER BY name'); const rows = stmt.all(); return rows.map(row => this.rowToNodeInfo(row)); }
- scripts/migrate-tool-docs.ts:11-13 (registration)References 'list_nodes' as a discovery tool in migration script for tool documentation structure.'list_nodes', 'list_ai_tools', 'get_database_statistics'
- dist/mcp-tools-engine.d.ts:7-7 (schema)TypeScript declaration defining the listNodes method signature with optional args and Promise<any[]> return.listNodes(args?: any): Promise<any[]>;