mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-02-06 05:23:08 +00:00
feat: enhance template tooling with pagination and flexible retrieval
- Add pagination support to all template search/list tools - Consistent response format with total, limit, offset, hasMore - Support for customizable limits (1-100) and offsets - Add new list_templates tool for browsing all templates - Returns minimal data (id, name, views, node count) - Supports sorting by views, created_at, or name - Efficient for discovering available templates - Enhance get_template with flexible response modes - nodes_only: Just list of node types (minimal tokens) - structure: Nodes with positions and connections - full: Complete workflow JSON (default) - Update database_statistics to show template count - Shows total templates, average/min/max views - Provides complete database overview - Add count methods to repository for pagination - getSearchCount, getNodeTemplatesCount, getTaskTemplatesCount - Enables accurate pagination info 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -323,9 +323,37 @@ export const n8nDocumentationToolsFinal: ToolDefinition[] = [
|
||||
required: ['nodeType'],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'list_templates',
|
||||
description: `List all templates with minimal data (id, name, views, node count). Use for browsing available templates.`,
|
||||
inputSchema: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
limit: {
|
||||
type: 'number',
|
||||
description: 'Number of results (1-100). Default 10.',
|
||||
default: 10,
|
||||
minimum: 1,
|
||||
maximum: 100,
|
||||
},
|
||||
offset: {
|
||||
type: 'number',
|
||||
description: 'Pagination offset. Default 0.',
|
||||
default: 0,
|
||||
minimum: 0,
|
||||
},
|
||||
sortBy: {
|
||||
type: 'string',
|
||||
enum: ['views', 'created_at', 'name'],
|
||||
description: 'Sort field. Default: views (popularity).',
|
||||
default: 'views',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'list_node_templates',
|
||||
description: `Find templates using specific nodes. 399 community workflows. Use FULL types: "n8n-nodes-base.httpRequest".`,
|
||||
description: `Find templates using specific nodes. Returns paginated results. Use FULL types: "n8n-nodes-base.httpRequest".`,
|
||||
inputSchema: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
@@ -338,6 +366,14 @@ export const n8nDocumentationToolsFinal: ToolDefinition[] = [
|
||||
type: 'number',
|
||||
description: 'Maximum number of templates to return. Default 10.',
|
||||
default: 10,
|
||||
minimum: 1,
|
||||
maximum: 100,
|
||||
},
|
||||
offset: {
|
||||
type: 'number',
|
||||
description: 'Pagination offset. Default 0.',
|
||||
default: 0,
|
||||
minimum: 0,
|
||||
},
|
||||
},
|
||||
required: ['nodeTypes'],
|
||||
@@ -345,7 +381,7 @@ export const n8nDocumentationToolsFinal: ToolDefinition[] = [
|
||||
},
|
||||
{
|
||||
name: 'get_template',
|
||||
description: `Get complete workflow JSON by ID. Ready to import. IDs from list_node_templates or search_templates.`,
|
||||
description: `Get template by ID. Use mode to control response size: nodes_only (minimal), structure (nodes+connections), full (complete workflow).`,
|
||||
inputSchema: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
@@ -353,13 +389,19 @@ export const n8nDocumentationToolsFinal: ToolDefinition[] = [
|
||||
type: 'number',
|
||||
description: 'The template ID to retrieve',
|
||||
},
|
||||
mode: {
|
||||
type: 'string',
|
||||
enum: ['nodes_only', 'structure', 'full'],
|
||||
description: 'Response detail level. nodes_only: just node list, structure: nodes+connections, full: complete workflow JSON.',
|
||||
default: 'full',
|
||||
},
|
||||
},
|
||||
required: ['templateId'],
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'search_templates',
|
||||
description: `Search templates by name/description keywords. NOT for node types! For nodes use list_node_templates. Example: "chatbot".`,
|
||||
description: `Search templates by name/description keywords. Returns paginated results. NOT for node types! For nodes use list_node_templates.`,
|
||||
inputSchema: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
@@ -371,6 +413,14 @@ export const n8nDocumentationToolsFinal: ToolDefinition[] = [
|
||||
type: 'number',
|
||||
description: 'Maximum number of results. Default 20.',
|
||||
default: 20,
|
||||
minimum: 1,
|
||||
maximum: 100,
|
||||
},
|
||||
offset: {
|
||||
type: 'number',
|
||||
description: 'Pagination offset. Default 0.',
|
||||
default: 0,
|
||||
minimum: 0,
|
||||
},
|
||||
},
|
||||
required: ['query'],
|
||||
@@ -378,7 +428,7 @@ export const n8nDocumentationToolsFinal: ToolDefinition[] = [
|
||||
},
|
||||
{
|
||||
name: 'get_templates_for_task',
|
||||
description: `Curated templates by task: ai_automation, data_sync, webhooks, email, slack, data_transform, files, scheduling, api, database.`,
|
||||
description: `Curated templates by task. Returns paginated results sorted by popularity.`,
|
||||
inputSchema: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
@@ -398,6 +448,19 @@ export const n8nDocumentationToolsFinal: ToolDefinition[] = [
|
||||
],
|
||||
description: 'The type of task to get templates for',
|
||||
},
|
||||
limit: {
|
||||
type: 'number',
|
||||
description: 'Maximum number of results. Default 10.',
|
||||
default: 10,
|
||||
minimum: 1,
|
||||
maximum: 100,
|
||||
},
|
||||
offset: {
|
||||
type: 'number',
|
||||
description: 'Pagination offset. Default 0.',
|
||||
default: 0,
|
||||
minimum: 0,
|
||||
},
|
||||
},
|
||||
required: ['task'],
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user