@node2flow/n8n-management-mcp 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,172 @@
1
+ /**
2
+ * n8n API Client
3
+ * Wrapper for n8n REST API v1 calls with error handling
4
+ */
5
+ export class N8nClient {
6
+ config;
7
+ constructor(config) {
8
+ this.config = config;
9
+ }
10
+ /**
11
+ * Make authenticated request to n8n API
12
+ */
13
+ async request(endpoint, options = {}) {
14
+ const url = `${this.config.apiUrl}${endpoint}`;
15
+ const response = await fetch(url, {
16
+ ...options,
17
+ headers: {
18
+ 'X-N8N-API-KEY': this.config.apiKey,
19
+ 'Content-Type': 'application/json',
20
+ ...options.headers,
21
+ },
22
+ });
23
+ if (!response.ok) {
24
+ const error = await response.text();
25
+ throw new Error(`n8n API Error (${response.status}): ${error}`);
26
+ }
27
+ return response.json();
28
+ }
29
+ // Workflow Methods
30
+ async listWorkflows() {
31
+ return this.request('/api/v1/workflows', { method: 'GET' });
32
+ }
33
+ async getWorkflow(id) {
34
+ return this.request(`/api/v1/workflows/${id}`, { method: 'GET' });
35
+ }
36
+ async createWorkflow(workflow) {
37
+ return this.request('/api/v1/workflows', {
38
+ method: 'POST',
39
+ body: JSON.stringify(workflow),
40
+ });
41
+ }
42
+ async updateWorkflow(id, workflow) {
43
+ return this.request(`/api/v1/workflows/${id}`, {
44
+ method: 'PUT',
45
+ body: JSON.stringify(workflow),
46
+ });
47
+ }
48
+ async deleteWorkflow(id) {
49
+ return this.request(`/api/v1/workflows/${id}`, { method: 'DELETE' });
50
+ }
51
+ async activateWorkflow(id) {
52
+ return this.request(`/api/v1/workflows/${id}/activate`, {
53
+ method: 'POST',
54
+ });
55
+ }
56
+ async deactivateWorkflow(id) {
57
+ return this.request(`/api/v1/workflows/${id}/deactivate`, {
58
+ method: 'POST',
59
+ });
60
+ }
61
+ async executeWorkflow(id, data) {
62
+ return this.request(`/api/v1/workflows/${id}/run`, {
63
+ method: 'POST',
64
+ body: JSON.stringify(data || {}),
65
+ });
66
+ }
67
+ async getWorkflowTags(id) {
68
+ return this.request(`/api/v1/workflows/${id}/tags`, { method: 'GET' });
69
+ }
70
+ async updateWorkflowTags(id, tags) {
71
+ return this.request(`/api/v1/workflows/${id}/tags`, {
72
+ method: 'PUT',
73
+ body: JSON.stringify(tags.map(t => ({ name: t }))),
74
+ });
75
+ }
76
+ // Execution Methods
77
+ async listExecutions(workflowId) {
78
+ const query = workflowId ? `?workflowId=${workflowId}` : '';
79
+ return this.request(`/api/v1/executions${query}`, { method: 'GET' });
80
+ }
81
+ async getExecution(id) {
82
+ return this.request(`/api/v1/executions/${id}`, { method: 'GET' });
83
+ }
84
+ async deleteExecution(id) {
85
+ return this.request(`/api/v1/executions/${id}`, { method: 'DELETE' });
86
+ }
87
+ async retryExecution(id) {
88
+ return this.request(`/api/v1/executions/${id}/retry`, {
89
+ method: 'POST',
90
+ body: JSON.stringify({}),
91
+ });
92
+ }
93
+ // Credential Methods
94
+ async createCredential(credential) {
95
+ return this.request('/api/v1/credentials', {
96
+ method: 'POST',
97
+ body: JSON.stringify(credential),
98
+ });
99
+ }
100
+ async updateCredential(id, credential) {
101
+ return this.request(`/api/v1/credentials/${id}`, {
102
+ method: 'PATCH',
103
+ body: JSON.stringify(credential),
104
+ });
105
+ }
106
+ async deleteCredential(id) {
107
+ return this.request(`/api/v1/credentials/${id}`, { method: 'DELETE' });
108
+ }
109
+ async getCredentialSchema(credentialType) {
110
+ return this.request(`/api/v1/credentials/schema/${credentialType}`, {
111
+ method: 'GET',
112
+ });
113
+ }
114
+ // Tag Methods
115
+ async listTags() {
116
+ return this.request('/api/v1/tags', { method: 'GET' });
117
+ }
118
+ async getTag(id) {
119
+ return this.request(`/api/v1/tags/${id}`, { method: 'GET' });
120
+ }
121
+ async createTag(name) {
122
+ return this.request('/api/v1/tags', {
123
+ method: 'POST',
124
+ body: JSON.stringify({ name }),
125
+ });
126
+ }
127
+ async updateTag(id, name) {
128
+ return this.request(`/api/v1/tags/${id}`, {
129
+ method: 'PUT',
130
+ body: JSON.stringify({ name }),
131
+ });
132
+ }
133
+ async deleteTag(id) {
134
+ return this.request(`/api/v1/tags/${id}`, { method: 'DELETE' });
135
+ }
136
+ // Variable Methods
137
+ async listVariables() {
138
+ return this.request('/api/v1/variables', { method: 'GET' });
139
+ }
140
+ async createVariable(key, value) {
141
+ return this.request('/api/v1/variables', {
142
+ method: 'POST',
143
+ body: JSON.stringify({ key, value }),
144
+ });
145
+ }
146
+ async updateVariable(id, key, value) {
147
+ return this.request(`/api/v1/variables/${id}`, {
148
+ method: 'PUT',
149
+ body: JSON.stringify({ key, value }),
150
+ });
151
+ }
152
+ async deleteVariable(id) {
153
+ return this.request(`/api/v1/variables/${id}`, { method: 'DELETE' });
154
+ }
155
+ // User Methods (requires owner permissions)
156
+ async listUsers() {
157
+ return this.request('/api/v1/users', { method: 'GET' });
158
+ }
159
+ async getUser(identifier) {
160
+ return this.request(`/api/v1/users/${identifier}`, { method: 'GET' });
161
+ }
162
+ async deleteUser(id) {
163
+ return this.request(`/api/v1/users/${id}`, { method: 'DELETE' });
164
+ }
165
+ async updateUserRole(id, role) {
166
+ return this.request(`/api/v1/users/${id}/role`, {
167
+ method: 'PATCH',
168
+ body: JSON.stringify({ role }),
169
+ });
170
+ }
171
+ }
172
+ //# sourceMappingURL=n8n-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"n8n-client.js","sourceRoot":"","sources":["../src/n8n-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shared MCP Server creation logic
3
+ * Used by both Node.js entry (index.ts) and CF Worker entry (worker.ts)
4
+ */
5
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
6
+ import { N8nClient } from './n8n-client.js';
7
+ /**
8
+ * Handle MCP tool calls by routing to N8nClient methods
9
+ */
10
+ export declare function handleToolCall(toolName: string, args: any, client: N8nClient): Promise<any>;
11
+ /**
12
+ * Create a configured MCP Server instance
13
+ * Config is optional — tools/list works without config, tool calls require it
14
+ */
15
+ export declare function createServer(config?: {
16
+ apiUrl: string;
17
+ apiKey: string;
18
+ }): Server;
19
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAMnE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAqEjG;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CA8DhF"}
package/dist/server.js ADDED
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Shared MCP Server creation logic
3
+ * Used by both Node.js entry (index.ts) and CF Worker entry (worker.ts)
4
+ */
5
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
6
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
7
+ import { N8nClient } from './n8n-client.js';
8
+ import { TOOLS } from './tools.js';
9
+ /**
10
+ * Handle MCP tool calls by routing to N8nClient methods
11
+ */
12
+ export async function handleToolCall(toolName, args, client) {
13
+ switch (toolName) {
14
+ // Workflow operations
15
+ case 'n8n_list_workflows':
16
+ return client.listWorkflows();
17
+ case 'n8n_get_workflow':
18
+ return client.getWorkflow(args.id);
19
+ case 'n8n_create_workflow':
20
+ return client.createWorkflow(args);
21
+ case 'n8n_update_workflow':
22
+ return client.updateWorkflow(args.id, args);
23
+ case 'n8n_delete_workflow':
24
+ return client.deleteWorkflow(args.id);
25
+ case 'n8n_activate_workflow':
26
+ return client.activateWorkflow(args.id);
27
+ case 'n8n_deactivate_workflow':
28
+ return client.deactivateWorkflow(args.id);
29
+ case 'n8n_execute_workflow':
30
+ return client.executeWorkflow(args.id, args.data);
31
+ case 'n8n_get_workflow_tags':
32
+ return client.getWorkflowTags(args.id);
33
+ case 'n8n_update_workflow_tags':
34
+ return client.updateWorkflowTags(args.id, args.tags);
35
+ // Execution operations
36
+ case 'n8n_list_executions':
37
+ return client.listExecutions(args.workflowId);
38
+ case 'n8n_get_execution':
39
+ return client.getExecution(args.id);
40
+ case 'n8n_delete_execution':
41
+ return client.deleteExecution(args.id);
42
+ case 'n8n_retry_execution':
43
+ return client.retryExecution(args.id);
44
+ // Credential operations
45
+ case 'n8n_create_credential':
46
+ return client.createCredential(args);
47
+ case 'n8n_update_credential':
48
+ return client.updateCredential(args.id, args);
49
+ case 'n8n_delete_credential':
50
+ return client.deleteCredential(args.id);
51
+ case 'n8n_get_credential_schema':
52
+ return client.getCredentialSchema(args.credentialType);
53
+ // Tag operations
54
+ case 'n8n_list_tags':
55
+ return client.listTags();
56
+ case 'n8n_get_tag':
57
+ return client.getTag(args.id);
58
+ case 'n8n_create_tag':
59
+ return client.createTag(args.name);
60
+ case 'n8n_update_tag':
61
+ return client.updateTag(args.id, args.name);
62
+ case 'n8n_delete_tag':
63
+ return client.deleteTag(args.id);
64
+ // User operations
65
+ case 'n8n_list_users':
66
+ return client.listUsers();
67
+ case 'n8n_get_user':
68
+ return client.getUser(args.identifier);
69
+ case 'n8n_delete_user':
70
+ return client.deleteUser(args.id);
71
+ case 'n8n_update_user_role':
72
+ return client.updateUserRole(args.id, args.role);
73
+ default:
74
+ throw new Error(`Unknown tool: ${toolName}`);
75
+ }
76
+ }
77
+ /**
78
+ * Create a configured MCP Server instance
79
+ * Config is optional — tools/list works without config, tool calls require it
80
+ */
81
+ export function createServer(config) {
82
+ const server = new Server({
83
+ name: 'n8n-management-mcp',
84
+ version: '1.0.5',
85
+ }, {
86
+ capabilities: {
87
+ tools: {},
88
+ },
89
+ });
90
+ let client = null;
91
+ function getClient() {
92
+ if (!client) {
93
+ if (!config) {
94
+ throw new Error('Missing required configuration: N8N_URL and N8N_API_KEY. ' +
95
+ 'Set them before using any tools.');
96
+ }
97
+ client = new N8nClient(config);
98
+ }
99
+ return client;
100
+ }
101
+ // List available tools
102
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
103
+ return { tools: TOOLS };
104
+ });
105
+ // Handle tool calls
106
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
107
+ const { name, arguments: args } = request.params;
108
+ try {
109
+ const result = await handleToolCall(name, args || {}, getClient());
110
+ return {
111
+ content: [
112
+ {
113
+ type: 'text',
114
+ text: JSON.stringify(result, null, 2),
115
+ },
116
+ ],
117
+ };
118
+ }
119
+ catch (error) {
120
+ return {
121
+ content: [
122
+ {
123
+ type: 'text',
124
+ text: `Error: ${error.message}`,
125
+ },
126
+ ],
127
+ isError: true,
128
+ };
129
+ }
130
+ });
131
+ return server;
132
+ }
133
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}