mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-02-10 07:13:07 +00:00
feat(p0-r3): implement pre-extracted template configurations system
Major Features:
- Pre-extracted 197 node configurations from 2,646 workflow templates
- Removed get_node_for_task tool (28% failure rate, 31 tasks)
- Enhanced search_nodes and get_node_essentials with includeExamples parameter
- 30-60x faster queries (<1ms vs 30-60ms)
Database Schema:
- New table: template_node_configs with optimized indexes
- New view: ranked_node_configs for top 5 configs per node
- Migration script: add-template-node-configs.sql
Template Processing:
- extractNodeConfigs: Extract configs from workflow templates
- detectExpressions: Identify n8n expressions ({{...}}, $json, $node)
- insertAndRankConfigs: Rank by popularity, keep top 10 per node
Tool Enhancements:
- search_nodes: Added includeExamples parameter (top 2 configs)
- get_node_essentials: Added includeExamples parameter (top 3 configs)
CLI Features:
- --extract-only: Extract configs without fetching new templates
- Automatic table creation if missing
Breaking Changes:
- Removed get_node_for_task tool
- Use search_nodes({includeExamples: true}) or get_node_essentials({includeExamples: true}) instead
Performance:
- Query time: <1ms for pre-extracted configs
- 85x more examples (2,646 vs 31)
- Database size increase: ~197 configs stored
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -17,14 +17,13 @@ import {
|
||||
validateWorkflowConnectionsDoc,
|
||||
validateWorkflowExpressionsDoc
|
||||
} from './validation';
|
||||
import {
|
||||
listTasksDoc,
|
||||
getNodeForTaskDoc,
|
||||
listNodeTemplatesDoc,
|
||||
getTemplateDoc,
|
||||
import {
|
||||
listTasksDoc,
|
||||
listNodeTemplatesDoc,
|
||||
getTemplateDoc,
|
||||
searchTemplatesDoc,
|
||||
searchTemplatesByMetadataDoc,
|
||||
getTemplatesForTaskDoc
|
||||
searchTemplatesByMetadataDoc,
|
||||
getTemplatesForTaskDoc
|
||||
} from './templates';
|
||||
import {
|
||||
toolsDocumentationDoc,
|
||||
@@ -81,7 +80,6 @@ export const toolsDocumentation: Record<string, ToolDocumentation> = {
|
||||
|
||||
// Template tools
|
||||
list_tasks: listTasksDoc,
|
||||
get_node_for_task: getNodeForTaskDoc,
|
||||
list_node_templates: listNodeTemplatesDoc,
|
||||
get_template: getTemplateDoc,
|
||||
search_templates: searchTemplatesDoc,
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
import { ToolDocumentation } from '../types';
|
||||
|
||||
export const getNodeForTaskDoc: ToolDocumentation = {
|
||||
name: 'get_node_for_task',
|
||||
category: 'templates',
|
||||
essentials: {
|
||||
description: 'Get pre-configured node for tasks: post_json_request, receive_webhook, query_database, send_slack_message, etc. Use list_tasks for all.',
|
||||
keyParameters: ['task'],
|
||||
example: 'get_node_for_task({task: "post_json_request"})',
|
||||
performance: 'Instant',
|
||||
tips: [
|
||||
'Returns ready-to-use configuration',
|
||||
'See list_tasks for available tasks',
|
||||
'Includes credentials structure'
|
||||
]
|
||||
},
|
||||
full: {
|
||||
description: 'Returns pre-configured node settings for common automation tasks. Each configuration includes the correct node type, essential parameters, and credential requirements. Perfect for quickly setting up standard automations.',
|
||||
parameters: {
|
||||
task: { type: 'string', required: true, description: 'Task name from list_tasks (e.g., "post_json_request", "send_email")' }
|
||||
},
|
||||
returns: 'Complete node configuration with type, displayName, parameters, credentials structure',
|
||||
examples: [
|
||||
'get_node_for_task({task: "post_json_request"}) - HTTP POST setup',
|
||||
'get_node_for_task({task: "receive_webhook"}) - Webhook receiver',
|
||||
'get_node_for_task({task: "send_slack_message"}) - Slack config'
|
||||
],
|
||||
useCases: [
|
||||
'Quick node configuration',
|
||||
'Learning proper node setup',
|
||||
'Standard automation patterns',
|
||||
'Credential structure reference'
|
||||
],
|
||||
performance: 'Instant - Pre-configured templates',
|
||||
bestPractices: [
|
||||
'Use list_tasks to discover options',
|
||||
'Customize returned config as needed',
|
||||
'Check credential requirements',
|
||||
'Validate with validate_node_operation'
|
||||
],
|
||||
pitfalls: [
|
||||
'Templates may need customization',
|
||||
'Credentials must be configured separately',
|
||||
'Not all tasks available for all nodes'
|
||||
],
|
||||
relatedTools: ['list_tasks', 'validate_node_operation', 'get_node_essentials']
|
||||
}
|
||||
};
|
||||
@@ -1,4 +1,3 @@
|
||||
export { getNodeForTaskDoc } from './get-node-for-task';
|
||||
export { listTasksDoc } from './list-tasks';
|
||||
export { listNodeTemplatesDoc } from './list-node-templates';
|
||||
export { getTemplateDoc } from './get-template';
|
||||
|
||||
Reference in New Issue
Block a user