Skip to main content
Glama

n8n-MCP

by 88-888
test-parsing-operations.jsβ€’2.51 kB
#!/usr/bin/env node const markdown = ` ## Operations * **Channel** * **Archive** a channel. * **Close** a direct message or multi-person direct message. * **Create** a public or private channel-based conversation. * **Get** information about a channel. * **Get Many**: Get a list of channels in Slack. * **File** * **Get** a file. * **Get Many**: Get and filter team files. * **Upload**: Create or upload an existing file. ## Templates and examples `; function extractOperations(markdown) { const operations = []; // Find operations section const operationsMatch = markdown.match(/##\s+Operations\s*\n([\s\S]*?)(?=\n##|\n#|$)/i); if (!operationsMatch) { console.log('No operations section found'); return operations; } const operationsText = operationsMatch[1]; console.log('Operations text:', operationsText.substring(0, 200)); // Parse operation structure let currentResource = null; const lines = operationsText.split('\n'); for (let i = 0; i < lines.length; i++) { const line = lines[i]; const trimmedLine = line.trim(); // Resource level (e.g., "* **Channel**") if (trimmedLine.match(/^\*\s+\*\*([^*]+)\*\*/)) { currentResource = trimmedLine.match(/^\*\s+\*\*([^*]+)\*\*/)[1].trim(); console.log(`Found resource: ${currentResource}`); continue; } // Skip if we don't have a current resource if (!currentResource) continue; // Operation level - look for indented bullets (4 spaces + *) if (line.match(/^\s{4}\*\s+/)) { console.log(`Found operation line: "${line}"`); // Extract operation name and description const operationMatch = trimmedLine.match(/^\*\s+\*\*([^*]+)\*\*(.*)$/); if (operationMatch) { const operation = operationMatch[1].trim(); let description = operationMatch[2].trim(); // Clean up description description = description.replace(/^:\s*/, '').replace(/\.$/, '').trim(); operations.push({ resource: currentResource, operation, description: description || operation, }); console.log(` Parsed: ${operation} - ${description}`); } } } return operations; } const operations = extractOperations(markdown); console.log('\nTotal operations found:', operations.length); console.log('\nOperations:'); operations.forEach(op => { console.log(`- ${op.resource}.${op.operation}: ${op.description}`); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/88-888/n8n-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server