status
Check deployment status of n8n workflows to identify which are deployed and which require deployment.
Instructions
Show deployment status of workflows (which are deployed, which need deployment)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/server/mcflow.ts:75-85 (registration)MCP server registration: handles ListToolsRequest (returns tool definitions including 'status') and CallToolRequest (delegates to ToolHandler.handleTool)
// Tools handler this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: getToolDefinitions(), })); this.server.setRequestHandler(CallToolRequestSchema, async (request) => { return await this.toolHandler.handleTool( request.params.name, request.params.arguments ); }); - src/tools/registry.ts:340-347 (schema)Tool schema/definition for 'status': no input params required
{ name: 'status', description: 'Show deployment status of workflows (which are deployed, which need deployment)', inputSchema: { type: 'object', properties: {}, }, }, - src/tools/handler.ts:191-200 (handler)ToolHandler.handleTool switch case for 'status': instantiates ChangeTracker and calls getChangeDetails() to produce the status output
case 'status': const changeTracker = new ChangeTracker(this.workflowsPath); await changeTracker.initialize(); const statusDetails = await changeTracker.getChangeDetails(); return { content: [{ type: 'text', text: statusDetails }] }; - src/utils/change-tracker.ts:270-296 (helper)ChangeTracker.getChangeDetails(): formats the deployment status text based on getDeploymentStatus() results, listing deployed/pending workflows with details
async getChangeDetails(): Promise<string> { const status = await this.getDeploymentStatus(); let output = 'š Workflow Deployment Status\n\n'; output += `Total Workflows: ${status.total}\n`; output += `ā Deployed: ${status.deployed}\n`; output += `ā³ Pending: ${status.pending}\n\n`; if (status.pending > 0) { output += 'š Workflows Needing Deployment:\n'; for (const workflow of status.workflows) { if (workflow.status !== 'deployed') { const icon = workflow.status === 'modified' ? 'š' : 'š'; output += ` ${icon} ${workflow.name}\n`; output += ` Modified: ${new Date(workflow.lastModified).toLocaleString()}\n`; if (workflow.deployedAt) { output += ` Last deployed: ${new Date(workflow.deployedAt).toLocaleString()}\n`; } } } output += '\nš” Run "McFlow deploy" to deploy pending changes\n'; } else { output += '⨠All workflows are up to date!\n'; } return output; }