template_get_workflow_status
Check the status of a Railway.app workflow to monitor deployment progress and verify completion.
Instructions
[API] Get the status of a workflow
⚡️ Best for: ✓ Checking workflow status
⚠️ Not for: × Creating new services
→ Next steps: service_info
→ Related: template_list, template_deploy
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | ID of the workflow to get the status of |
Implementation Reference
- src/tools/template.tool.ts:70-88 (registration)Creates and registers the template_get_workflow_status tool object with description, input schema, and handler functioncreateTool( "template_get_workflow_status", formatToolDescription({ type: 'API', description: "Get the status of a workflow", bestFor: ["Checking workflow status"], notFor: ["Creating new services"], relations: { nextSteps: ["service_info"], related: ["template_list, template_deploy"] } }), { workflowId: z.string().describe("ID of the workflow to get the status of") }, async ({ workflowId }) => { return templatesService.getWorkflowStatus(workflowId); } ),
- src/tools/template.tool.ts:85-87 (handler)Tool execution handler that retrieves workflow status via templatesServiceasync ({ workflowId }) => { return templatesService.getWorkflowStatus(workflowId); }
- src/tools/template.tool.ts:82-84 (schema)Zod input schema defining workflowId parameter{ workflowId: z.string().describe("ID of the workflow to get the status of") },
- Service method implementing the core logic: fetches workflow status from client API and formats success/error responsesasync getWorkflowStatus(workflowId: string) { const response = await this.client.templates.getWorkflowStatus(workflowId); if (response.error) { return createErrorResponse(`Error with workflow ${workflowId}: ${response.error}`); } if (response.status.toLowerCase() === 'complete') { return createSuccessResponse({ text: `Workflow ${workflowId} completed successfully`, data: response }); } return createSuccessResponse({ text: `Workflow ${workflowId} is still running. Status: ${response.status}`, data: response }); }
- src/tools/index.ts:16-37 (registration)Final MCP server registration of all tools, including template_get_workflow_status from templateToolsexport function registerAllTools(server: McpServer) { // Collect all tools const allTools = [ ...databaseTools, ...deploymentTools, ...domainTools, ...projectTools, ...serviceTools, ...tcpProxyTools, ...variableTools, ...configTools, ...volumeTools, ...templateTools, ] as Tool[]; // Register each tool with the server allTools.forEach((tool) => { server.tool( ...tool ); }); }