Skip to main content
Glama

n8n-workflow-builder-mcp

by ifmelate
add-node-exec.test.js2.62 kB
const { describe, it, expect, beforeAll, afterAll, beforeEach } = require('@jest/globals'); const fs = require('fs').promises; const path = require('path'); // This test simulates add_node behavior in src/index.ts without spinning the MCP server. // It validates version normalization + fallback for several canonical nodes. // Lightweight helpers mirroring src/nodes/cache.ts behavior function normalizeNodeType(inputType) { const lower = inputType.toLowerCase(); return lower.startsWith('n8n-nodes-base.') ? inputType : `n8n-nodes-base.${inputType}`; } function toNumeric(v) { if (typeof v === 'number') return v; const n = parseFloat(String(v)); return Number.isNaN(n) ? 1 : n; } async function getNodeVersionFromDefs(version, type) { const simple = type.includes('.') ? type.split('.').pop() : type; const file = `${simple}.json`; const p = path.resolve(__dirname, `../../workflow_nodes/${version}/${file}`); const raw = await fs.readFile(p, 'utf8'); const json = JSON.parse(raw); return toNumeric(json.version); } describe('add_node version normalization (simulated)', () => { const n8nVersion = '1.103.0'; it('httpRequest should resolve to 4.2', async () => { const finalType = normalizeNodeType('httpRequest'); const ver = await getNodeVersionFromDefs(n8nVersion, finalType); expect(finalType).toBe('n8n-nodes-base.httpRequest'); expect(ver).toBeCloseTo(4.2, 5); }); it('if should resolve to 2.2', async () => { const finalType = normalizeNodeType('if'); const ver = await getNodeVersionFromDefs(n8nVersion, finalType); expect(finalType).toBe('n8n-nodes-base.if'); expect(ver).toBeCloseTo(2.2, 5); }); it('switch should resolve to 3.2', async () => { const finalType = normalizeNodeType('switch'); const ver = await getNodeVersionFromDefs(n8nVersion, finalType); expect(finalType).toBe('n8n-nodes-base.switch'); expect(ver).toBeCloseTo(3.2, 5); }); it('merge should resolve to 3.2', async () => { const finalType = normalizeNodeType('merge'); const ver = await getNodeVersionFromDefs(n8nVersion, finalType); expect(finalType).toBe('n8n-nodes-base.merge'); expect(ver).toBeCloseTo(3.2, 5); }); it('postgres should resolve to 2.6', async () => { const finalType = normalizeNodeType('postgres'); const ver = await getNodeVersionFromDefs(n8nVersion, finalType); expect(finalType).toBe('n8n-nodes-base.postgres'); expect(ver).toBeCloseTo(2.6, 5); }); });

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/ifmelate/n8n-workflow-builder-mcp'

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