mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-03-18 00:13:08 +00:00
feat: implement AI-optimized MCP tools with 95% size reduction
- Add get_node_essentials tool for 10-20 essential properties only - Add search_node_properties for targeted property search - Add get_node_for_task with 14 pre-configured templates - Add validate_node_config for comprehensive validation - Add get_property_dependencies for visibility analysis - Implement PropertyFilter service with curated essentials - Implement ExampleGenerator with working examples - Implement TaskTemplates for common workflows - Implement ConfigValidator with security checks - Implement PropertyDependencies for dependency analysis - Enhance property descriptions to 100% coverage - Add version information to essentials response - Update documentation with new tools Response sizes reduced from 100KB+ to <5KB for better AI agent usability. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
56
scripts/debug-node.js
Normal file
56
scripts/debug-node.js
Normal file
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
* Debug script to check node data structure
|
||||
*/
|
||||
|
||||
const { N8NDocumentationMCPServer } = require('../dist/mcp/server-update');
|
||||
|
||||
async function debugNode() {
|
||||
console.log('🔍 Debugging node data\n');
|
||||
|
||||
try {
|
||||
// Initialize server
|
||||
const server = new N8NDocumentationMCPServer();
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
|
||||
// Get node info directly
|
||||
const nodeType = 'nodes-base.httpRequest';
|
||||
console.log(`Checking node: ${nodeType}\n`);
|
||||
|
||||
try {
|
||||
const nodeInfo = await server.executeTool('get_node_info', { nodeType });
|
||||
|
||||
console.log('Node info retrieved successfully');
|
||||
console.log('Node type:', nodeInfo.nodeType);
|
||||
console.log('Has properties:', !!nodeInfo.properties);
|
||||
console.log('Properties count:', nodeInfo.properties?.length || 0);
|
||||
console.log('Has operations:', !!nodeInfo.operations);
|
||||
console.log('Operations:', nodeInfo.operations);
|
||||
console.log('Operations type:', typeof nodeInfo.operations);
|
||||
console.log('Operations length:', nodeInfo.operations?.length);
|
||||
|
||||
// Check raw data
|
||||
console.log('\n📊 Raw data check:');
|
||||
console.log('properties_schema type:', typeof nodeInfo.properties_schema);
|
||||
console.log('operations type:', typeof nodeInfo.operations);
|
||||
|
||||
// Check if operations is a string that needs parsing
|
||||
if (typeof nodeInfo.operations === 'string') {
|
||||
console.log('\nOperations is a string, trying to parse:');
|
||||
console.log('Operations string:', nodeInfo.operations);
|
||||
console.log('Operations length:', nodeInfo.operations.length);
|
||||
console.log('First 100 chars:', nodeInfo.operations.substring(0, 100));
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error getting node info:', error);
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('Fatal error:', error);
|
||||
}
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
debugNode().catch(console.error);
|
||||
Reference in New Issue
Block a user