Skip to main content
Glama

deployment_status

Check the current status of a deployment to monitor progress, verify successful completion, or identify failures in Railway infrastructure.

Instructions

[API] Check the current status of a deployment

⚡️ Best for: ✓ Monitoring deployment progress ✓ Verifying successful deployments ✓ Checking for deployment failures

⚠️ Not for: × Service runtime logs × Database logs

→ Prerequisites: deployment_list, deployment_trigger

→ Next steps: deployment_logs

→ Related: service_info, service_restart, deployment_wait

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deploymentIdYesID of the deployment to check status for

Implementation Reference

  • Full tool definition for 'deployment_status', including input schema, description, and handler function that delegates to deploymentService.healthCheckDeployment(deploymentId). This is the core implementation of the MCP tool.
      "deployment_status",
      formatToolDescription({
        type: 'API',
        description: "Check the current status of a deployment",
        bestFor: [
          "Monitoring deployment progress",
          "Verifying successful deployments",
          "Checking for deployment failures"
        ],
        notFor: [
          "Service runtime logs",
          "Database logs"
        ],
        relations: {
          prerequisites: ["deployment_list", "deployment_trigger"],
          nextSteps: ["deployment_logs"],
          related: ["service_info", "service_restart", "deployment_wait"]
        }
      }),
      {
        deploymentId: z.string().describe("ID of the deployment to check status for")
      },
      async ({ deploymentId }) => {
        return deploymentService.healthCheckDeployment(deploymentId);
      }
    )
  • Supporting service method called by the tool handler, performs the actual health check with delay and response formatting.
    async healthCheckDeployment(deploymentId: string) {
      try {
        // Wait for 5 seconds before checking status
        // Seems like the LLMs like to call this function multiple times in combination
        // with the health check function, so we need to wait a bit
        await new Promise(resolve => setTimeout(resolve, 5000));
        const status = await this.client.deployments.healthCheckDeployment(deploymentId);
        const emoji = getStatusEmoji(status);
        
        return createSuccessResponse({
          text: `Deployment Status: ${emoji} ${status}`,
          data: { status }
        });
      } catch (error) {
        return createErrorResponse(`Error checking deployment health: ${formatError(error)}`);
      }
    }
  • Registers all tools including 'deployment_status' (via ...deploymentTools) with the MCP server.
    export 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
        );
      });
  • src/index.ts:6-20 (registration)
    Top-level call to registerAllTools, which includes the deployment_status tool.
    import { registerAllTools } from "@/tools/index.js";
    
    // Get token from command line if provided
    const cliToken = process.argv[2];
    if (cliToken) {
      process.env.RAILWAY_API_TOKEN = cliToken;
    }
    
    const server = new McpServer({
      name: "railway-mcp",
      version: "1.0.0",
    });
    
    // Register all tool modules
    registerAllTools(server);
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It implies a read-only operation ('Check', 'Monitoring', 'Verifying') but doesn't explicitly state whether this requires authentication, has rate limits, or what the response format looks like. The description adds some behavioral context (e.g., it's for status checking, not logs), but lacks details on error handling, permissions, or output structure, leaving gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose, followed by organized sections (Best for, Not for, Prerequisites, etc.). It's appropriately sized for the tool's complexity, with each sentence adding value (e.g., distinguishing from logs, guiding usage). Minor points are deducted for some redundancy (e.g., 'Check' in the first line and 'Monitoring' in Best for), but overall it's efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (1 parameter, no output schema, no annotations), the description is mostly complete. It covers purpose, usage guidelines, and relationships with other tools. However, it lacks details on behavioral aspects like authentication needs or response format, which would be helpful since no annotations or output schema are provided. This gap prevents a perfect score, but it's sufficient for basic use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'deploymentId' documented as 'ID of the deployment to check status for'. The description doesn't add any additional parameter semantics beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't need to given the schema's completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Check') and resource ('status of a deployment'), distinguishing it from siblings like deployment_list (which lists deployments) and deployment_logs (which provides logs). The title-like first line '[API] Check the current status of a deployment' directly communicates the core function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance with 'Best for' and 'Not for' sections, naming specific use cases (monitoring progress, verifying success, checking failures) and exclusions (service runtime logs, database logs). It also lists prerequisites (deployment_list, deployment_trigger), next steps (deployment_logs), and related tools (service_info, service_restart, deployment_wait), offering comprehensive context for when to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/epitaphe360/railway-mcp'

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