Skip to main content
Glama

Railway MCP Server

A Model Context Protocol (MCP) server for integrating with the Railway.app platform.

Table of Contents

Related MCP server: Railway MCP Server

Features

Status

Meaning

āœ…

Complete

šŸš§šŸ”Øā³

Being Built or Needs Testing

āŒ

Not Built at the moment

  • āœ… Authentication with Railway API tokens

  • āœ… Project management (list, info, delete)

  • āœ… Deployment management (list, restart)

  • āœ… Service management (create from GitHub repo or Docker image, list)

  • āœ… Variable management (list, create/update, delete)

  • āœ… Service Network management

  • āœ… Volume management

  • āŒ Full support for all templates

    • šŸš§šŸ”Øā³ Database template support

    • Automatic database and networking workflows

  • šŸš§šŸ”Øā³ Most commonly used workflows

  • āŒ Automatic GitHub repository linking for services

Installation

Prerequisites

Quick Start

This MCP server is designed to work with MCP Clients like:

  • Claude for Desktop | āœ… Battle-Tested

  • Cursor | āœ… Needs Testing

  • Cline | šŸš§šŸ”Øā³ Needs Testing

  • Windsurf | šŸš§šŸ”Øā³ Needs Testing

  • Other MCP Clients | šŸš§šŸ”Øā³ Needs Testing

Installing via Smithery

To install railway-mcp automatically, we recommend using Smithery

Claude Desktop

npx -y @smithery/cli install @jason-tan-swe/railway-mcp --client claude

Cursor

npx -y @smithery/cli@latest run @jason-tan-swe/railway-mcp --config "{\"railwayApiToken\":\"token\"}"
  1. Head to your cursor settings and find the MCP section

  2. Click 'Add new MCP server'

  3. Name it however, you like, we recommend railway-mcp for better clarity

  4. Paste this command into the 'Command' section, where is your accounts Railway token:

npx -y @jasontanswe/railway-mcp <RAILWAY_API_TOKEN>
  1. Create or edit your Claude for Desktop config file:

    • macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  2. Add the railway-mcp server to your configuration with your API token:

   "railway": {
      "command": "npx",
      "args": ["-y", "@jasontanswe/railway-mcp"],
      "env": {
         "RAILWAY_API_TOKEN": "your-railway-api-token-here"
      }
   }

When you have multiple MCP servers, your config file might look like this:

{
  "mcpServers": {
    // ... All of your existing MCP servers ...

    // Add the railway-mcp server to your configuration with your API token
    "railway": {
      "command": "npx",
      "args": ["-y", "@jasontanswe/railway-mcp"],
      "env": {
        "RAILWAY_API_TOKEN": "your-railway-api-token-here"
      }
    }
  }
}
  1. Restart Claude for Desktop

  2. You can now start using Railway tools directly in Claude. For example:

Please list all my Railway projects
  1. Alternatively, if you don't want to add your token to the configuration file, you can configure it within Claude using:

Please configure the Railway API with my token: {YOUR_API_TOKEN_HERE}

Recommendations and Other Information

This server best combines with MCP-clients that have access to terminal or with Git (Cursor, Windsurf). Using this MCP with others is recommended as railway-mcp orchestrates containers and streamlines your deployment process seamlessly.

For Claude

  • Out of the box, Claude does not have terminal access, so it cannot trigger deployments as it will not be able to get the latest commit.

  • Spinning up different services and monitoring them are the best use case with Claude.

For Cursor

  • Use with GitHub MCP or have the repository already setup on GitHub and cloned locally on your machine to leverage full integration with railway-mcp.

  • When Cursor makes a change, it may forget to push it's changes to GitHub causing it to try and deploy a commit that Railway cannot pull.

    • SOLUTION: Always ask or include somewhere in your prompt: Have you pushed our changes to GitHub yet?

Security Considerations

  • Railway API tokens provide full access to your account. Keep them secure.

  • When using the environment variable method, your token is stored in the Claude Desktop configuration file.

  • Sensitive variable values are automatically masked when displayed.

  • All API calls use HTTPS for secure communication.

  • The server's memory-only token storage means your token is never written to disk outside of the configuration file.

Troubleshooting

If you encounter issues:

  1. Token Authentication Issues

    • Ensure your API token is valid and has the necessary permissions

    • If using the environment variable method, check that the token is correctly formatted in the config file

    • Try using the configure tool directly in Claude if the environment token isn't working

  2. Server Connection Issues

    • Check that you've installed the latest version of the server

    • Verify that Node.js version 18 or higher is installed

    • Restart Claude for Desktop after making changes to the configuration

  3. API Errors

    • Verify that you're using correct project, environment, and service IDs

    • Check Railway's status page for any service disruptions

    • Railway API has rate limits - avoid making too many requests in a short period

Contributing

We welcome contributions from the community! Please see our Contributing Guidelines for details on how to get started, development guidelines, and debugging information.

Available Tools

Authentication

  • configure - Set your Railway API token (only needed if not provided in environment variables)

Projects

  • project-list - List all projects in your account

  • project-info - Get detailed information about a specific project

  • project-create - Create a new project with optional team ID

  • project-delete - Delete a project

  • project-environments - List all environments in a project

Services

  • service-list - List all services in a specific project

  • service-info - Get detailed information about a specific service

  • service-create-from-repo - Create a new service from a GitHub repository

  • service-create-from-image - Create a new service from a Docker image

  • service-delete - Delete a service from a project

  • service-restart - Restart a service in a specific environment

  • service-update - Update service configuration (build command, start command, etc.) | 🚧 Needs Testing

Deployments

  • deployment-list - List recent deployments for a service

  • deployment-trigger - Trigger a new deployment for a service

  • deployment-logs - Get logs for a specific deployment

  • deployment-health-check - Check the health/status of a deployment

Variables

  • variable-list - List variables for a service or environment

  • variable-set - Create or update a variable

  • variable-delete - Delete a variable

  • variable-bulk-set - Bulk update variables for a service | 🚧 Needs Testing

  • variable-copy - Copy variables between environments | 🚧 Needs Testing

Databases

  • database-list-types - List all available database types that can be deployed

  • database-deploy - Deploy a new database service

Setting up a new service

  1. List projects to get the project ID

  2. Create a new service from a template

  3. Add environment variables

  4. View the service deployment

Managing environment variables

  1. List projects to find your project ID

  2. List variables to see what's currently set

  3. Create or update variables as needed

  4. Delete any obsolete variables

Available Tools

36 tools
configure_api_tokenA

[UTILITY] Configure the Railway API token for authentication (only needed if not set in environment variables)

āš”ļø Best for: āœ“ Initial setup āœ“ Token updates āœ“ Authentication configuration

āš ļø Not for: Ɨ Project configuration Ɨ Service settings Ɨ Environment variables

→ Next steps: project_list, service_list

→ Related: project_create

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesRailway API token (create one at https://railway.app/account/tokens)

TDQS

A4.4/5.0
Behavior4/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 of behavioral disclosure. It effectively describes the tool's purpose (authentication configuration), when it's needed ('only needed if not set in environment variables'), and hints at its mutating nature ('Configure', 'Token updates'), which is appropriate. However, it lacks details on potential side effects (e.g., token persistence, error handling) or response format, leaving some behavioral aspects unclear.

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

Conciseness5/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 bullet points for best uses, exclusions, and related tools. Every sentence earns its place by providing clear, actionable information without redundancy or fluff, making it highly efficient and easy to parse.

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 complexity (simple authentication setup with one parameter), no annotations, and no output schema, the description is largely complete. It covers purpose, usage guidelines, and exclusions effectively. However, it lacks details on behavioral outcomes (e.g., what happens after configuration, error scenarios), which would enhance completeness for a tool with no structured output information.

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 'token' fully documented in the schema. The description does not add any additional meaning or context beyond what the schema provides (e.g., it doesn't explain token format, security implications, or validation rules). With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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 specific action ('Configure the Railway API token for authentication') and resource ('Railway API token'), distinguishing it from all sibling tools which focus on projects, services, deployments, domains, variables, volumes, etc. The purpose is unambiguous and directly addresses authentication setup rather than operational tasks.

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 on when to use this tool ('Initial setup', 'Token updates', 'Authentication configuration') and when not to use it ('Not for: Project configuration, Service settings, Environment variables'). It also suggests next steps ('project_list, service_list') and related tools ('project_create'), offering clear alternatives and context for usage.

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

database_deploy_from_templateA

[WORKFLOW] Deploy a pre-configured database using Railway's official templates and best practices

āš”ļø Best for: āœ“ Standard database deployments āœ“ Quick setup with security defaults āœ“ Common database types (PostgreSQL, MongoDB, Redis)

āš ļø Not for: Ɨ Custom database versions Ɨ Complex configurations Ɨ Unsupported database types

→ Prerequisites: database_list_types

→ Alternatives: service_create_from_image

→ Next steps: variable_list, service_info

→ Related: volume_create, service_update

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project where the database will be deployed
typeYesType of database to deploy (e.g., postgresql, mongodb, redis). Use service_create_from_image for other types.
regionYesRegion where the database should be deployed, try us-west1 before all other regions
environmentIdYesEnvironment ID where the database will be deployed (usually obtained from project_info)
nameNoOptional custom name for the database service. Default: {type}-database

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this is a deployment tool (implying creation/mutation), mentions security defaults and best practices, and provides workflow context ('Next steps', 'Related'). However, it doesn't explicitly state permission requirements, rate limits, or error handling details.

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 with clear sections (workflow, best for, not for, prerequisites, alternatives, next steps, related) and uses bullet points and symbols for readability. While slightly verbose, every section adds value, and the information is front-loaded with the core purpose.

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?

For a deployment tool with no annotations and no output schema, the description provides strong contextual completeness. It covers purpose, usage guidelines, prerequisites, alternatives, and related tools. The main gap is the lack of output information (what the tool returns), but given the workflow context and sibling tools, it's reasonably complete.

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?

The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain parameter interactions or provide examples). This meets the baseline for high schema coverage.

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 specific action ('Deploy a pre-configured database') and resource ('using Railway's official templates and best practices'), distinguishing it from siblings like service_create_from_image by focusing on template-based database deployment. It explicitly mentions the scope ('Common database types') and differentiates from custom configurations.

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, clearly stating when to use (standard deployments, quick setup) and when not to use (custom versions, complex configurations). It names a prerequisite (database_list_types) and an alternative (service_create_from_image), offering comprehensive usage context.

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

database_list_typesA

[QUERY] List all available database types that can be deployed using Railway's official templates

āš”ļø Best for: āœ“ Discovering supported database types āœ“ Planning database deployments āœ“ Checking template availability

āš ļø Not for: Ɨ Listing existing databases Ɨ Getting database connection details

→ Alternatives: service_create_from_image

→ Next steps: database_deploy

→ Related: database_deploy, service_create_from_image

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates the tool's purpose as a read-only discovery operation ('List all available database types'), implying no destructive actions. However, it lacks details on potential limitations like rate limits or authentication requirements, which would be beneficial for a tool with zero 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.

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose in the first sentence. Each subsequent section ('Best for', 'Not for', 'Alternatives', etc.) adds specific value without redundancy. The use of symbols (āš”ļø, āœ“, āš ļø, Ɨ, →) enhances readability without wasting space.

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 simplicity (0 parameters, no output schema, no annotations), the description is largely complete. It clearly explains the tool's purpose, usage, and context. However, without an output schema, it could benefit from briefly mentioning the expected return format (e.g., a list of database type names), though this is a minor gap for a discovery tool.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds value by clarifying the scope ('database types that can be deployed using Railway's official templates'), which isn't captured in the schema. This compensates well, though it doesn't need to explain parameters since there are none.

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 specific action ('List all available database types') and the resource ('database types that can be deployed using Railway's official templates'). It distinguishes itself from sibling tools like 'database_deploy_from_template' by focusing on discovery rather than deployment.

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, clearly indicating when to use this tool (e.g., 'Discovering supported database types') and when not to (e.g., 'Listing existing databases'). It also names alternatives ('service_create_from_image') and related tools ('database_deploy'), offering comprehensive usage context.

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

deployment_listA

[API] List recent deployments for a service in a specific environment

āš”ļø Best for: āœ“ Viewing deployment history āœ“ Monitoring service updates

→ Prerequisites: service_list

→ Next steps: deployment_logs, deployment_trigger

→ Related: service_info, service_restart

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project containing the service
serviceIdYesID of the service to list deployments for
environmentIdYesID of the environment to list deployments from (usually obtained from service_list)
limitNoOptional: Maximum number of deployments to return (default: 10)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It mentions 'recent deployments' and 'monitoring service updates' which imply read-only behavior, but doesn't explicitly state whether this is a read operation, what permissions are needed, or how results are returned (pagination, format). It adds some context but lacks comprehensive behavioral disclosure 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.

Conciseness5/5

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

The description is well-structured with clear sections (purpose, best for, prerequisites, next steps, related tools). Every sentence earns its place - the first sentence states the core purpose, and subsequent sections provide valuable guidance without redundancy. It's appropriately sized and front-loaded.

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?

For a read-only list tool with 100% schema coverage but no output schema, the description provides good contextual completeness. It covers purpose, usage guidelines, and relationships with other tools. The main gap is lack of output information (what the deployment list looks like), but given this is a list operation with clear sibling tools, it's reasonably complete.

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%, so the schema already documents all parameters. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain how to obtain environmentId from service_list, though the schema hints at this). Baseline 3 is appropriate when schema does the heavy lifting.

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 specific verb ('List') and resource ('recent deployments for a service in a specific environment'). It distinguishes from siblings like deployment_logs (which shows logs) and deployment_trigger (which initiates deployments) by focusing on listing deployment history.

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' section listing specific use cases (viewing deployment history, monitoring service updates), prerequisites (service_list), next steps (deployment_logs, deployment_trigger), and related tools (service_info, service_restart). This gives clear 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.

deployment_logsA

[API] Get logs for a specific deployment

āš”ļø Best for: āœ“ Debugging deployment issues āœ“ Monitoring deployment progress āœ“ Checking build output

āš ļø Not for: Ɨ Service runtime logs Ɨ Database logs

→ Prerequisites: deployment_list

→ Next steps: deployment_status

→ Related: service_info, deployment_trigger

ParametersJSON Schema
NameRequiredDescriptionDefault
deploymentIdYesID of the deployment to get logs for
limitNoMaximum number of log entries to fetch

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions the tool is for 'Get logs' (implying a read operation) and specifies use cases, but does not detail aspects like authentication requirements, rate limits, error handling, or log format. The description adds some context (e.g., what it's not for) but lacks depth on operational behavior, leaving gaps for an agent.

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

Conciseness5/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 bullet points for best uses, exclusions, and related steps. Every sentence earns its place by providing clear, actionable information without redundancy or fluff, making it efficient for an agent to parse.

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 (2 parameters, no output schema, no annotations), the description is largely complete: it clarifies purpose, usage, and exclusions. However, it lacks details on behavioral aspects (e.g., log format, pagination) and output expectations, which could hinder an agent's ability to use it effectively. The absence of an output schema increases the need for more context, but the description partially compensates with usage guidelines.

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 both parameters (deploymentId, limit) clearly documented in the schema. The description does not add any parameter-specific information beyond what the schema provides, such as format examples or constraints. Given the high coverage, the baseline score of 3 is appropriate, as the schema handles the heavy lifting.

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 ('Get logs') and resource ('for a specific deployment'), distinguishing it from siblings like deployment_status (which checks status rather than logs) and deployment_list (which lists deployments rather than fetching logs). The title is null, so the description fully carries this burden.

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 on when to use this tool ('Best for: Debugging deployment issues, Monitoring deployment progress, Checking build output') and when not to use it ('Not for: Service runtime logs, Database logs'). It also lists prerequisites ('deployment_list'), next steps ('deployment_status'), and related tools ('service_info, deployment_trigger'), offering comprehensive alternatives and context.

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

deployment_statusA

[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

ParametersJSON Schema
NameRequiredDescriptionDefault
deploymentIdYesID of the deployment to check status for

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It effectively describes the tool's behavior as a read-only status check (implied by 'Check' and monitoring use cases), though it doesn't explicitly mention safety aspects like rate limits or error handling. The context is clear but could be more detailed on behavioral traits.

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

Conciseness5/5

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

The description is efficiently structured with bullet points and icons, front-loading the core purpose and followed by organized sections (Best for, Not for, prerequisites, etc.). Every sentence earns its place with no wasted words, making it highly scannable and informative.

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 (single parameter, no output schema, no annotations), the description is largely complete—covering purpose, usage, and context well. However, it lacks details on return values or error cases, which would be helpful since there's no output schema, leaving a minor gap in full contextual understanding.

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?

The input schema has 100% description coverage, with the parameter 'deploymentId' well-documented in the schema itself. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without extra value.

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 specific action ('Check the current status') and resource ('a deployment'), distinguishing it from sibling tools like deployment_list (which lists deployments) and deployment_logs (which provides logs). The purpose is precise and unambiguous.

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' (monitoring progress, verifying success, checking failures) and 'Not for' (service/database logs), plus prerequisites (deployment_list, deployment_trigger), next steps (deployment_logs), and related tools (service_info, service_restart, deployment_wait). This comprehensively defines when and how 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.

deployment_triggerA

[API] Trigger a new deployment for a service

āš”ļø Best for: āœ“ Deploying code changes āœ“ Applying configuration updates āœ“ Rolling back to previous states

āš ļø Not for: Ɨ Restarting services (use service_restart) Ɨ Updating service config (use service_update) Ɨ Database changes

→ Prerequisites: service_list

→ Alternatives: service_restart

→ Next steps: deployment_logs, deployment_status

→ Related: variable_set, service_update

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project
serviceIdYesID of the service
environmentIdYesID of the environment
commitShaYesSpecific commit SHA from the Git repository

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this tool triggers deployments for code changes, configuration updates, and rollbacks, and it clarifies exclusions (e.g., not for database changes). However, it lacks details on potential side effects like downtime or error handling, which would be beneficial for a mutation tool.

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

Conciseness5/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.). Each sentence adds value without redundancy, making it efficient and easy to parse.

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 complexity of a deployment tool with no annotations and no output schema, the description does a strong job by covering purpose, usage guidelines, and exclusions. It could improve by detailing return values or error cases, but it provides sufficient context for an agent to understand when and how to use it effectively.

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?

The schema description coverage is 100%, so the schema already documents all four parameters. The description does not add any parameter-specific information beyond what the schema provides, such as explaining how 'commitSha' relates to deployments. Thus, it meets the baseline of 3 without compensating for gaps.

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 ('Trigger') and resource ('new deployment for a service'). It distinguishes from siblings by explicitly mentioning what it's not for (e.g., 'Restarting services (use service_restart)'), making the scope unambiguous.

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 alternatives (e.g., 'service_restart', 'service_update'). It also lists prerequisites ('service_list') and related tools, offering comprehensive context for when to use this tool versus others.

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

domain_checkA

[API] Check if a domain is available for use

āš”ļø Best for: āœ“ Validating domain availability āœ“ Pre-deployment checks āœ“ Domain planning

→ Next steps: domain_create

→ Related: domain_list

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to check availability for

TDQS

A4.4/5.0
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 check ('Check if a domain is available') but doesn't disclose behavioral traits like rate limits, authentication needs, error handling, or what 'available' means (e.g., registered status, cost). It adds some context with usage scenarios but lacks detailed operational transparency.

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

Conciseness5/5

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

The description is appropriately sized and well-structured, with a clear purpose statement upfront, followed by bullet-pointed usage guidelines and related tools. Every sentence earns its place, and there is no wasted text.

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 low complexity (single parameter, no output schema, no annotations), the description is mostly complete. It covers purpose, usage, and next steps effectively. However, it lacks details on return values or error cases, which would be helpful since there's no output schema.

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

Parameters4/5

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

The input schema has 100% description coverage, with the single parameter 'domain' fully documented. The description doesn't add parameter-specific semantics beyond what the schema provides, but with only one parameter and high schema coverage, the baseline is strong. No additional value is added, but no compensation is needed.

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 ('domain availability'), distinguishing it from siblings like domain_create, domain_list, and domain_update. It explicitly states 'Check if a domain is available for use,' which is precise and actionable.

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 usage guidance with a 'Best for' section listing specific scenarios (validating availability, pre-deployment checks, domain planning) and mentions 'Next steps: domain_create' and 'Related: domain_list,' clearly indicating 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.

domain_createA

[API] Create a new domain for a service

āš”ļø Best for: āœ“ Setting up custom domains āœ“ Configuring service endpoints āœ“ Adding HTTPS endpoints

āš ļø Not for: Ɨ TCP proxy setup (use tcp_proxy_create) Ɨ Internal service communication

→ Prerequisites: service_list, domain_check

→ Alternatives: tcp_proxy_create

→ Next steps: domain_update

→ Related: service_info, domain_list

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentIdYesID of the environment
serviceIdYesID of the service
domainNoCustom domain name (optional, as railway will generate one for you and is generally better to leave it up to railway to generate one. There's usually no need to specify this and there are no use cases for overriding it.)
suffixNoSuffix for the domain (optional, railway will generate one for you and is generally better to leave it up to railway to generate one.)
targetPortNoTarget port for the domain (optional, as railway will use the default port for the service and detect it automatically.)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It hints at creation behavior ('Create a new domain') and mentions prerequisites, but lacks details on permissions, rate limits, or error handling. However, it adds useful context like HTTPS endpoints and Railway's automatic generation, which compensates partially for the annotation gap.

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 with bullet points and icons, making it easy to scan. However, it includes some redundancy (e.g., repeating 'railway will generate one for you' in the schema) and could be more front-loaded; the core purpose is clear but buried slightly in formatting.

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 complexity of a creation tool with no annotations or output schema, the description does a good job covering usage, alternatives, and prerequisites. It lacks details on return values or error cases, but the structured guidance and clear purpose make it mostly complete for agent 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%, so the schema already documents all 5 parameters thoroughly. The description does not add any parameter-specific semantics beyond what the schema provides, such as explaining the interaction between domain and suffix. This meets the baseline of 3 for high schema coverage.

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 specific action ('Create a new domain') and resource ('for a service'), distinguishing it from siblings like domain_update, domain_list, and tcp_proxy_create. The title is null, making the description's clarity even more critical, and it successfully fulfills this role.

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 alternatives (tcp_proxy_create), prerequisites (service_list, domain_check), next steps (domain_update), and related tools (service_info, domain_list). This comprehensive coverage helps the agent understand when and how to use this tool effectively.

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

domain_deleteA

[API] Delete a domain from a service

āš”ļø Best for: āœ“ Removing unused domains āœ“ Cleaning up configurations āœ“ Domain management

āš ļø Not for: Ɨ Temporary domain disabling Ɨ Port updates (use domain_update)

→ Prerequisites: domain_list

→ Alternatives: domain_update

→ Related: service_update

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the domain to delete

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly indicates this is a destructive operation ('Delete'), mentions use cases like 'Removing unused domains' and 'Cleaning up configurations', and implies permanent deletion rather than temporary disabling. However, it doesn't specify authentication requirements, rate limits, or error conditions.

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

Conciseness5/5

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

The description is efficiently structured with clear sections (API context, Best for, Not for, Prerequisites, Alternatives, Related). Every sentence serves a distinct purpose with no wasted words, and critical information is front-loaded.

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?

For a destructive tool with no annotations and no output schema, the description does well by clarifying the tool's purpose, usage context, and relationships. However, it doesn't describe what happens after deletion (e.g., confirmation message, error if domain doesn't exist) or potential side effects on related services.

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

Parameters4/5

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

The input schema has 100% description coverage, so the schema already documents the single 'id' parameter. The description doesn't add parameter-specific information beyond what the schema provides, but with only one parameter and complete schema coverage, the baseline is appropriately high.

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 specific action ('Delete a domain from a service'), identifies the resource ('domain'), and distinguishes it from sibling tools like domain_update and domain_list. It uses precise language that leaves no ambiguity about the tool's 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, names specific alternatives (domain_update), mentions prerequisites (domain_list), and relates to other tools (service_update). This comprehensive guidance helps the agent understand when to use this tool versus other options.

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

domain_listA

[API] List all domains (both service and custom) for a service

āš”ļø Best for: āœ“ Viewing service endpoints āœ“ Managing domain configurations āœ“ Auditing domain settings

→ Prerequisites: service_list

→ Next steps: domain_create, domain_update

→ Related: service_info, tcp_proxy_list

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project containing the service
environmentIdYesID of the environment that the service is in to list domains from (usually obtained from service_list)
serviceIdYesID of the service to list domains for

TDQS

A4.2/5.0
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 mentions that the tool lists 'all domains (both service and custom)' and hints at its read-only nature through usage contexts like 'Viewing' and 'Auditing,' but it does not explicitly state whether it's a safe read operation, requires specific permissions, or details output format. It adds some value but lacks comprehensive behavioral disclosure.

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

Conciseness5/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 bullet points for usage guidelines, prerequisites, next steps, and related tools. Every sentence earns its place by providing clear, actionable information without redundancy or fluff.

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 complexity (a list operation with 3 parameters), no annotations, and no output schema, the description does a good job by covering purpose, usage, and context. However, it lacks details on output format (e.g., what data is returned) and behavioral aspects like pagination or error handling, which would be needed for full completeness.

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%, so the schema already documents all three parameters (projectId, environmentId, serviceId) with descriptions. The description does not add any parameter-specific details beyond what the schema provides, such as format examples or dependencies, so it meets the baseline for high schema coverage.

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: 'List all domains (both service and custom) for a service.' It specifies the verb ('List'), resource ('domains'), and scope ('for a service'), and distinguishes it from siblings like domain_check, domain_create, domain_update, and domain_delete by focusing on listing rather than other operations.

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 on when to use this tool: 'Best for: Viewing service endpoints, Managing domain configurations, Auditing domain settings.' It also lists prerequisites ('service_list'), next steps ('domain_create, domain_update'), and related tools ('service_info, tcp_proxy_list'), clearly indicating context and alternatives.

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

domain_updateA

[API] Update a domain's configuration

āš”ļø Best for: āœ“ Changing target ports āœ“ Updating domain settings āœ“ Reconfiguring endpoints

āš ļø Not for: Ɨ Changing domain names (delete and recreate instead) Ɨ TCP proxy configuration

→ Prerequisites: domain_list

→ Next steps: domain_list

→ Related: service_update

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the domain to update
targetPortYesNew port number to route traffic to

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this is a mutation tool ('Update'), specifies constraints (e.g., cannot change domain names, not for TCP proxy), and mentions prerequisites and next steps. However, it lacks details on permissions, rate limits, or error handling, which would be helpful for a mutation tool.

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

Conciseness5/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 bullet-pointed sections for best uses, exclusions, and related actions. Every sentence adds value without redundancy, making it efficient and easy to scan for an AI agent.

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 complexity of a domain update tool with 2 parameters, no annotations, and no output schema, the description does a good job covering purpose, usage guidelines, and exclusions. It mentions prerequisites and next steps, which adds helpful context. However, it could improve by detailing the response format or error cases, as there's no output schema to rely on.

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?

The schema description coverage is 100%, so the schema already documents both parameters (id and targetPort). The description adds some context by mentioning 'target ports' and 'ID of the domain', but this largely repeats what's in the schema. It doesn't provide additional semantics like format examples or constraints beyond the schema, so a baseline score of 3 is appropriate.

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 specific verbs ('Update a domain's configuration') and distinguishes it from siblings like domain_create, domain_delete, and domain_list. It explicitly mentions what it updates (target ports, settings, endpoints), making the scope unambiguous.

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 (changing target ports, updating settings) and exclusions (changing domain names, TCP proxy configuration). It also lists prerequisites (domain_list), next steps (domain_list), and related tools (service_update), 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.

list_service_variablesA

[API] List all environment variables for a service

āš”ļø Best for: āœ“ Viewing service configuration āœ“ Auditing environment variables āœ“ Checking connection strings

→ Prerequisites: service_list

→ Next steps: variable_set, variable_delete

→ Related: service_info, variable_bulk_set

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project containing the service
environmentIdYesID of the environment to list variables from (usually obtained from service_list)
serviceIdNoOptional: ID of the service to list variables for, if not provided, shared variables across all services will be listed

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It effectively communicates this is a read-only operation (implied by 'List' and 'Viewing/Auditing/Checking' use cases) and clarifies scope ('shared variables across all services' when serviceId not provided). However, it doesn't mention rate limits, authentication requirements, or pagination behavior, leaving some gaps.

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

Conciseness5/5

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

The description is efficiently structured with clear sections (purpose statement, best for, prerequisites, next steps, related). Every sentence earns its place by providing distinct value: the opening statement defines the tool, bullet points offer practical guidance, and related tools provide context. No wasted words or redundancy.

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?

For a read-only listing tool with no output schema and no annotations, the description provides strong contextual completeness. It covers purpose, use cases, prerequisites, and related tools. The main gap is lack of information about return format (what the list actually contains), but given this is a listing operation and the schema covers inputs well, it's reasonably complete.

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%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (like explaining format constraints or providing examples). This meets the baseline expectation when schema coverage is complete.

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 specific verb ('List') and resource ('all environment variables for a service'). It distinguishes itself from sibling tools like service_info, variable_bulk_set, and variable_set by focusing exclusively on listing variables rather than creating, updating, or getting general service information.

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 dedicated sections: 'Best for' lists three specific use cases (viewing configuration, auditing, checking connection strings), 'Prerequisites' names service_list as required, 'Next steps' suggests variable_set and variable_delete, and 'Related' mentions service_info and variable_bulk_set. This gives clear context on 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.

project_createA

[API] Create a new Railway project

āš”ļø Best for: āœ“ Starting new applications āœ“ Setting up development environments āœ“ Creating project spaces

āš ļø Not for: Ɨ Duplicating existing projects

→ Next steps: service_create_from_repo, service_create_from_image, database_deploy

→ Related: project_delete, project_update

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new project
teamIdNoOptional team ID to create the project under

TDQS

A4.4/5.0
Behavior4/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 discloses that this tool creates new projects (implying a write/mutation operation) and warns against using it for duplication, which adds useful behavioral context. However, it doesn't mention permissions, rate limits, or error handling, leaving some gaps for a creation tool.

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

Conciseness5/5

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

The description is well-structured with bullet points and symbols (āš”ļø, āš ļø, →), making it easy to scan. It's front-loaded with the core purpose and efficiently uses every sentence to provide value without redundancy, such as listing best uses, exclusions, and related tools in a compact format.

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 no annotations and no output schema, the description does a good job covering the tool's purpose, usage guidelines, and behavioral aspects. It addresses complexity by guiding on when to use and what to avoid. However, it lacks details on output or error handling, which could be useful for a creation tool, keeping it from a perfect score.

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 both parameters (name, teamId) documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, such as formatting examples or constraints. With high schema coverage, the baseline of 3 is appropriate as the description doesn't compensate with extra details.

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 specific action ('Create a new Railway project') with the resource ('Railway project'), distinguishing it from siblings like project_delete, project_update, and project_list. It goes beyond just restating the name by specifying the domain (Railway) and the creation action.

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' (starting new applications, setting up development environments, creating project spaces) and 'Not for' (duplicating existing projects). It also lists 'Next steps' (service_create_from_repo, service_create_from_image, database_deploy) and 'Related' tools (project_delete, project_update), offering clear alternatives and context for when to use this tool versus others.

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

project_deleteA

[API] Delete a Railway project and all its resources

āš”ļø Best for: āœ“ Removing unused projects āœ“ Cleaning up test projects

āš ļø Not for: Ɨ Temporary project deactivation Ɨ Service-level cleanup (use service_delete)

→ Prerequisites: project_list, project_info

→ Alternatives: service_delete

→ Related: project_create

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project to delete

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates the destructive nature ('Delete... and all its resources'), which is critical for a mutation tool. However, it doesn't mention potential side effects like irreversible deletion, confirmation requirements, or error handling, leaving some behavioral gaps.

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

Conciseness5/5

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

The description is efficiently structured with clear sections (API note, purpose, guidelines, prerequisites, alternatives) using symbols and bullet points. Every sentence adds value without redundancy, and information is front-loaded with the core action first.

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?

For a destructive deletion tool with no annotations and no output schema, the description does well by covering purpose, usage boundaries, and related tools. However, it lacks details on what 'all its resources' entails concretely (e.g., services, databases, volumes) and doesn't describe the return value or error cases, which are important for such a high-stakes operation.

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

Parameters4/5

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

Schema description coverage is 100% with one parameter (projectId) well-documented in the schema. The description doesn't add parameter-specific details beyond what the schema provides, but with high schema coverage and only one parameter, the baseline is strong. It implies the parameter identifies the target project but doesn't elaborate further.

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 specific action ('Delete a Railway project and all its resources') and distinguishes it from sibling tools like service_delete. It explicitly mentions the scope ('all its resources'), making the purpose unambiguous and differentiated.

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' (removing unused projects, cleaning up test projects) and 'Not for' (temporary deactivation, service-level cleanup), plus named alternatives (service_delete) and prerequisites (project_list, project_info). This gives comprehensive when-to-use and when-not-to-use context.

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

project_environmentsB

List all environments in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project

TDQS

B3.1/5.0
Behavior2/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 of behavioral disclosure. It states this is a list operation, implying it's likely read-only and non-destructive, but doesn't confirm this or add details like pagination, sorting, error conditions, or authentication requirements. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose ('List all environments in a project') with zero wasted words. It's appropriately sized for a simple list tool and earns its place by clearly stating the action and target.

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

Completeness3/5

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

Given the tool's low complexity (single parameter, no output schema, no annotations), the description is minimally complete but lacks depth. It covers the basic purpose but doesn't address behavioral aspects like return format or error handling, which would be helpful for an agent despite the simple nature of the tool.

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?

The input schema has 100% description coverage, with the single parameter 'projectId' clearly documented in the schema. The description doesn't add any meaning beyond what the schema provides (e.g., it doesn't explain what an 'environment' is or how the project ID should be formatted), so it meets the baseline score when schema coverage is high.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all environments in a project'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'project_list' or 'domain_list', which follow similar patterns for different resources, so it doesn't reach the highest score for sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid project ID), exclusions, or comparisons to related tools like 'project_info' or 'deployment_list', leaving the agent to infer usage context solely from the tool name and parameters.

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

project_infoA

[API] Get detailed information about a specific Railway project

āš”ļø Best for: āœ“ Viewing project details and status āœ“ Checking environments and services āœ“ Project configuration review

→ Prerequisites: project_list

→ Next steps: service_list, variable_list

→ Related: project_update, project_delete

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project to get information about

TDQS

A4.2/5.0
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 indicates this is a read operation ('Get detailed information'), which is helpful, but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or what specific details are returned. The description adds some context but leaves significant 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.

Conciseness5/5

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

The description is well-structured and appropriately sized. It uses clear sections with bullet points and arrows for organization, front-loading the core purpose. Every sentence earns its place by providing distinct value (purpose, usage scenarios, prerequisites, next steps, related tools).

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 (single parameter, read operation) and lack of annotations/output schema, the description does a good job covering usage context. However, it doesn't explain what 'detailed information' includes or the response format, which would be helpful since there's no output schema. It's mostly complete but has minor gaps in behavioral transparency.

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 single parameter 'projectId' fully documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides (e.g., format examples, where to find project IDs). This meets the baseline of 3 when the schema does the heavy lifting.

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 ('Get detailed information') and resource ('about a specific Railway project'). It distinguishes from siblings like project_list (which lists projects) and project_update/project_delete (which modify projects) by focusing on retrieving detailed information for a single project.

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 on when to use this tool ('Best for: Viewing project details and status, Checking environments and services, Project configuration review'), prerequisites ('Prerequisites: project_list'), next steps ('Next steps: service_list, variable_list'), and related alternatives ('Related: project_update, project_delete'). This comprehensive guidance helps the agent select this tool appropriately.

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

project_listA

[API] List all projects in your Railway account

āš”ļø Best for: āœ“ Getting an overview of all projects āœ“ Finding project IDs āœ“ Project discovery and management

→ Next steps: project_info, service_list

→ Related: project_create, project_delete

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's purpose as a read-only listing operation ('List all projects'), implying safe, non-destructive behavior. However, it lacks details on rate limits, pagination, or authentication needs, which would be beneficial for a tool with no annotations.

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

Conciseness5/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 bullet points for best use cases and clear next steps/related tools. Every sentence adds value without redundancy, making it efficient and easy to parse.

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 low complexity (0 parameters, no annotations, no output schema), the description is largely complete for its purpose. It covers what the tool does, when to use it, and related actions. A minor gap is the lack of output format details, but this is acceptable for a simple listing tool.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, maintaining focus on the tool's purpose and usage. This aligns with the baseline expectation for tools with no parameters.

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 specific action ('List all projects') and resource ('in your Railway account'), distinguishing it from siblings like project_create, project_delete, project_info, and service_list. It explicitly mentions what the tool does without being vague or tautological.

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 on when to use this tool ('Best for: Getting an overview of all projects, Finding project IDs, Project discovery and management') and suggests next steps (project_info, service_list) and related tools (project_create, project_delete), clearly differentiating it from alternatives in the sibling list.

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

service_create_from_imageA

[API] Create a new service from a Docker image

āš”ļø Best for: āœ“ Custom database deployments āœ“ Pre-built container deployments āœ“ Specific version requirements

āš ļø Not for: Ɨ Standard database deployments (use database_deploy) Ɨ GitHub repository deployments (use service_create_from_repo) Ɨ Services needing build process

→ Prerequisites: project_list

→ Alternatives: database_deploy, service_create_from_repo

→ Next steps: variable_set, service_update, tcp_proxy_create

→ Related: volume_create, deployment_trigger

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project to create the service in
imageYesDocker image to use (e.g., 'postgres:13-alpine')
nameNoOptional custom name for the service

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It mentions prerequisites and next steps, which adds useful context, but lacks details on behavioral traits like permissions needed, rate limits, or what happens on creation (e.g., default settings, costs). The description doesn't contradict annotations, but could be more informative for a creation tool.

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

Conciseness5/5

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

The description is well-structured with bullet points and symbols, front-loaded with the core purpose. Every sentence adds value (e.g., use cases, exclusions, prerequisites), with no wasted words, making it efficient and easy to scan.

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 no annotations and no output schema, the description does well by covering purpose, guidelines, and context (prerequisites, next steps). However, as a creation tool, it could benefit from more behavioral details (e.g., response format, error handling) to be fully complete, though it's largely adequate.

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%, so the schema already documents all parameters. The description doesn't add specific meaning beyond the schema (e.g., format examples for image beyond what's in schema, or implications of optional name). Baseline 3 is appropriate as the schema does the heavy lifting.

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 creates a new service from a Docker image, specifying both the action (create) and resource (service from image). It distinguishes from sibling tools like service_create_from_repo and database_deploy, making it specific and differentiated.

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 alternatives (database_deploy, service_create_from_repo) and stating prerequisites (project_list). This gives clear context on when to use this tool versus others.

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

service_create_from_repoA

[API] Create a new service from a GitHub repository

āš”ļø Best for: āœ“ Deploying applications from source code āœ“ Services that need build processes āœ“ GitHub-hosted projects

āš ļø Not for: Ɨ Pre-built Docker images (use service_create_from_image) Ɨ Database deployments (use database_deploy) Ɨ Static file hosting

→ Prerequisites: project_list

→ Alternatives: service_create_from_image, database_deploy

→ Next steps: variable_set, service_update

→ Related: deployment_trigger, service_info

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project to create the service in
repoYesGitHub repository URL or name (e.g., 'owner/repo')
nameNoOptional custom name for the service

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It effectively discloses key behavioral traits: it's a creation/mutation tool (implied by 'Create'), suitable for build processes, and has prerequisites. However, it doesn't mention potential side effects, error conditions, or authentication requirements.

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

Conciseness5/5

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

The description is well-structured with clear sections (Best for, Not for, Prerequisites, Alternatives, Next steps, Related). Every sentence earns its place by providing actionable guidance without redundancy. It's front-loaded with the core purpose.

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?

For a creation tool with no annotations and no output schema, the description provides excellent context about when to use it, alternatives, prerequisites, and related tools. The main gap is lack of information about return values or error behavior, which would be helpful given the mutation nature.

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%, so the schema already documents all three parameters. The description doesn't add specific parameter semantics beyond what's in the schema (e.g., format examples for 'repo' are in schema). Baseline 3 is appropriate when schema does the heavy lifting.

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 specific action ('Create a new service'), resource ('from a GitHub repository'), and scope ('[API]'), distinguishing it from sibling tools like service_create_from_image. It explicitly mentions deploying applications from source code and GitHub-hosted projects.

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 alternatives (service_create_from_image, database_deploy). It also lists prerequisites (project_list) and related tools, offering comprehensive usage context.

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

service_deleteA

[API] Delete a service from a project

āš”ļø Best for: āœ“ Removing unused services āœ“ Cleaning up test services āœ“ Project reorganization

āš ļø Not for: Ɨ Temporary service stoppage (use service_restart) Ɨ Updating service configuration (use service_update)

→ Prerequisites: service_list, service_info

→ Alternatives: service_restart

→ Related: project_delete

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project containing the service
serviceIdYesID of the service to delete

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this is a destructive operation (implied by 'Delete' and 'Removing unused services'), specifies use cases that suggest permanence ('Cleaning up test services'), and distinguishes it from non-destructive alternatives. However, it doesn't mention potential side effects like data loss or irreversible consequences, which would be helpful for a deletion tool.

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

Conciseness5/5

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

The description is well-structured with clear sections (purpose, best for, not for, prerequisites, alternatives, related), uses bullet points and symbols for readability, and every sentence adds value without redundancy. It's appropriately sized for a destructive operation that requires careful usage guidance.

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?

For a destructive tool with no annotations and no output schema, the description does an excellent job covering purpose, usage guidelines, and behavioral context. It clearly indicates this is a deletion operation and when to use it versus alternatives. The main gap is the lack of information about what happens after deletion (e.g., confirmation message, error conditions, or irreversible effects), which would be valuable given the tool's nature.

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?

The schema description coverage is 100%, with both parameters (projectId and serviceId) clearly documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, such as format examples or relationship between the IDs. This meets the baseline expectation when schema coverage is complete.

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 specific action ('Delete a service from a project'), identifies the resource ('service'), and distinguishes it from sibling tools like service_restart and service_update. It goes beyond just restating the name by specifying the context (from a project).

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 alternatives (service_restart for temporary stoppage, service_update for configuration changes). It also lists prerequisites (service_list, service_info) and related tools (project_delete), offering comprehensive usage context.

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

service_infoA

[API] Get detailed information about a specific service

āš”ļø Best for: āœ“ Viewing service configuration and status āœ“ Checking deployment details āœ“ Monitoring service health

→ Prerequisites: service_list

→ Next steps: deployment_list, variable_list

→ Related: service_update, deployment_trigger

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project containing the service
serviceIdYesID of the service to get information about
environmentIdYesID of the environment to check (usually obtained from service_list)

TDQS

A4.2/5.0
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 describes the tool as a read operation ('Get detailed information'), which implies it's non-destructive, but doesn't explicitly state permission requirements, rate limits, or error behaviors. The description adds some context about what information is retrieved (configuration, status, deployment details, health) but lacks comprehensive behavioral disclosure.

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

Conciseness5/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, Prerequisites, Next steps, Related). Every sentence earns its place by providing actionable guidance without redundancy or fluff.

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 (3 required parameters, no output schema, no annotations), the description provides good contextual coverage. It explains the tool's purpose, usage scenarios, prerequisites, and related tools. However, without annotations or output schema, it could benefit from more detail on return values or error handling to be fully complete.

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%, so the schema already documents all three parameters (projectId, serviceId, environmentId) with clear descriptions. The description doesn't add any parameter-specific information beyond what's in the schema, such as format examples or relationships between parameters. Baseline 3 is appropriate when schema coverage is complete.

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 ('Get') and resource ('detailed information about a specific service'). It distinguishes itself from siblings like service_list (which lists services) and service_update (which modifies services) by focusing on retrieving detailed information for a single service.

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' scenarios (viewing configuration, checking deployment details, monitoring health), prerequisites (service_list), next steps (deployment_list, variable_list), and related tools (service_update, deployment_trigger). This clearly indicates 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.

service_listA

[API] List all services in a specific Railway project

āš”ļø Best for: āœ“ Getting an overview of a project's services āœ“ Finding service IDs āœ“ Checking service status

→ Prerequisites: project_list

→ Next steps: service_info, deployment_list

→ Related: project_info, variable_list

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project to list services from

TDQS

A4.2/5.0
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 mentions the tool lists services, finds IDs, and checks status, which implies a read-only operation, but doesn't explicitly state behavioral traits like whether it requires authentication, has rate limits, or returns paginated results. It adds some context (e.g., overview purpose) but lacks details on error handling or output format.

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

Conciseness5/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 bullet-point sections for usage, prerequisites, and related tools. Every sentence earns its place by providing actionable information without redundancy, making it efficient and easy to scan.

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 low complexity (1 parameter, no output schema, no annotations), the description is mostly complete. It covers purpose, usage, and relationships, but lacks details on behavioral aspects like authentication or output format, which would be helpful since no annotations or output schema exist. It's sufficient but has minor gaps.

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 single parameter 'projectId' fully documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides (e.g., format examples or constraints), so it meets the baseline of 3 for high schema coverage without extra value.

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 specific action ('List all services') and resource ('in a specific Railway project'), distinguishing it from siblings like service_info (detailed info), service_create_* (creation), and service_delete (deletion). It explicitly mentions the scope ('all services') and target ('specific Railway project'), making the purpose unambiguous.

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 a 'Best for' section listing three use cases, prerequisites ('project_list'), next steps ('service_info, deployment_list'), and related tools ('project_info, variable_list'). This clearly indicates when to use this tool versus alternatives, such as using service_info for details or project_list as a prerequisite.

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

service_restartA

[API] Restart a service in a specific environment

āš”ļø Best for: āœ“ Applying configuration changes āœ“ Clearing service state āœ“ Resolving runtime issues

āš ļø Not for: Ɨ Deploying new code (use deployment_trigger) Ɨ Updating service config (use service_update) Ɨ Long-term service stoppage (use service_delete)

→ Prerequisites: service_list

→ Alternatives: deployment_trigger

→ Related: service_info, deployment_logs

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesID of the service to restart
environmentIdYesID of the environment where the service should be restarted (usually obtained from service_info)

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates the tool's purpose (restarting a service) and practical use cases (applying config changes, clearing state, resolving issues), which implies a mutation operation with potential downtime. However, it lacks details on permissions, rate limits, or response format, leaving some behavioral aspects unspecified.

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

Conciseness5/5

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

The description is well-structured with bullet points and icons, making it easy to scan. It is front-loaded with the core purpose, followed by usage guidelines, prerequisites, and related tools. Every sentence earns its place without redundancy, achieving high efficiency in communication.

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 complexity (a mutation operation with 2 parameters), no annotations, and no output schema, the description does a strong job by covering purpose, usage guidelines, prerequisites, and alternatives. It lacks details on output format or error handling, but for a restart tool, the provided context is largely sufficient for an agent to use it correctly.

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%, so the schema already documents both parameters (serviceId, environmentId) adequately. The description adds minimal value beyond the schema by mentioning that environmentId is 'usually obtained from service_info', but this is a minor enhancement. The baseline score of 3 is appropriate as the schema does the heavy lifting.

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 action ('Restart a service') and specifies the scope ('in a specific environment'), using a specific verb+resource combination. It distinguishes itself from sibling tools like service_delete (long-term stoppage) and service_update (config changes), making the purpose unambiguous.

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 alternatives (deployment_trigger, service_update, service_delete). It also includes prerequisites (service_list) and related tools (service_info, deployment_logs), offering comprehensive context for when to use this tool versus others.

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

service_updateA

[API] Update a service's configuration

āš”ļø Best for: āœ“ Changing service settings āœ“ Updating resource limits āœ“ Modifying deployment configuration

āš ļø Not for: Ɨ Updating environment variables (use variable_set) Ɨ Restarting services (use service_restart) Ɨ Triggering new deployments (use deployment_trigger)

→ Prerequisites: service_list, service_info

→ Next steps: deployment_trigger

→ Related: service_restart, variable_set

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project containing the service
serviceIdYesID of the service to update
environmentIdYesID of the environment to update (usually obtained from service_info)
regionNoOptional: Region to deploy the service in
rootDirectoryNoOptional: Root directory containing the service code
buildCommandNoOptional: Command to build the service
startCommandNoOptional: Command to start the service
numReplicasNoOptional: Number of service replicas to run
healthcheckPathNoOptional: Path for health checks
sleepApplicationNoOptional: Whether to enable sleep mode

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It does well by indicating this is a configuration update tool (implying mutation), listing related tools that suggest behavioral relationships, and mentioning prerequisites that imply dependencies. However, it doesn't explicitly state permission requirements, rate limits, or whether changes are reversible/destructive.

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

Conciseness5/5

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

The description is well-structured with clear sections (Best for, Not for, Prerequisites, Next steps, Related) and uses efficient bullet points and symbols. Every sentence earns its place by providing actionable guidance without redundancy. The information is front-loaded with the core purpose statement.

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?

For a mutation tool with 10 parameters and no annotations/output schema, the description does an excellent job providing usage context, alternatives, and workflow relationships. The main gap is the lack of explicit behavioral warnings about permissions, destructiveness, or rate limits that would be important for a configuration update tool.

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%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. However, it does provide context about environmentId being 'usually obtained from service_info' which adds practical usage insight.

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 explicitly states 'Update a service's configuration' which is a specific verb+resource combination. It clearly distinguishes this tool from siblings like service_restart, variable_set, and deployment_trigger by listing what it's not for, making its purpose unambiguous.

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 excellent usage guidance with explicit 'Best for' and 'Not for' sections, naming specific alternative tools for excluded use cases. It also lists prerequisites (service_list, service_info) and next steps (deployment_trigger), giving comprehensive context for when and how to use this tool.

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

tcp_proxy_createA

[API] Create a new TCP proxy for a service

āš”ļø Best for: āœ“ Setting up database access āœ“ Configuring external connections āœ“ Exposing TCP services

āš ļø Not for: Ɨ HTTP/HTTPS endpoints (use domain_create) Ɨ Internal service communication

→ Prerequisites: service_list

→ Alternatives: domain_create

→ Next steps: tcp_proxy_list

→ Related: service_info, service_update

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentIdYesID of the environment (usually obtained from service_info)
serviceIdYesID of the service
applicationPortYesPort of application/service to proxy, usually based off of the service's Dockerfile or designated running port.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It effectively communicates this is a creation/mutation tool (implied by 'Create'), specifies use cases and exclusions, and references prerequisites and related tools. It doesn't mention permission requirements, rate limits, or error conditions, but provides substantial behavioral context for a creation tool.

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

Conciseness5/5

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

The description is efficiently structured with clear sections (API label, purpose, best for, not for, prerequisites, alternatives, next steps, related). Every sentence earns its place with no redundant information, and it's appropriately sized for the tool's complexity.

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?

For a creation tool with no annotations and no output schema, the description provides excellent context about when to use it, prerequisites, alternatives, and related tools. It doesn't describe the return value or creation confirmation details, but given the comprehensive usage guidance and clear purpose, it's nearly complete for agent selection.

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%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score of 3 for high schema coverage.

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 as 'Create a new TCP proxy for a service' with specific verb ('Create') and resource ('TCP proxy'), distinguishing it from sibling tools like domain_create for HTTP/HTTPS endpoints. It explicitly differentiates from alternatives and related tools.

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 (database access, external connections) and exclusions (HTTP/HTTPS endpoints, internal communication). It explicitly references prerequisites (service_list), alternatives (domain_create), and next steps (tcp_proxy_list).

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

tcp_proxy_deleteA

[API] Delete a TCP proxy

āš”ļø Best for: āœ“ Removing unused proxies āœ“ Security management āœ“ Endpoint cleanup

āš ļø Not for: Ɨ Temporary proxy disabling Ɨ Port updates

→ Prerequisites: tcp_proxy_list

→ Related: service_update

ParametersJSON Schema
NameRequiredDescriptionDefault
proxyIdYesID of the TCP proxy to delete

TDQS

A4.2/5.0
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 indicates this is a destructive operation ('Delete'), which implies irreversible removal, but lacks details on permissions, error handling, or confirmation steps. The description adds some behavioral context (e.g., security management use cases) but doesn't fully compensate for the absence of annotations, leaving gaps in transparency.

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

Conciseness5/5

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

The description is efficiently structured with bullet points and symbols for readability, front-loading the core purpose and avoiding redundancy. Each section ('Best for', 'Not for', 'Prerequisites', 'Related') adds value without unnecessary elaboration, making it easy to scan and understand quickly.

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?

For a destructive tool with no annotations and no output schema, the description does well by covering purpose, usage guidelines, and prerequisites. However, it lacks details on behavioral aspects like error responses or confirmation requirements, which are important for a delete operation. It's mostly complete but has minor gaps given the tool's complexity.

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 single parameter 'proxyId' well-documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, such as format examples or validation rules. Given the high schema coverage, a baseline score of 3 is appropriate, as the description doesn't enhance parameter understanding but doesn't need to.

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 specific action ('Delete a TCP proxy') and resource ('TCP proxy'), distinguishing it from sibling tools like tcp_proxy_create or tcp_proxy_list. It uses a precise verb and identifies the exact resource type, leaving no ambiguity about its 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 on when to use it ('Best for: Removing unused proxies, Security management, Endpoint cleanup') and when not to use it ('Not for: Temporary proxy disabling, Port updates'), with clear alternatives implied (e.g., use service_update for updates). It also mentions prerequisites ('tcp_proxy_list') and related tools ('service_update'), offering comprehensive usage context.

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

tcp_proxy_listA

[API] List all TCP proxies for a service in a specific environment

āš”ļø Best for: āœ“ Viewing TCP proxy configurations āœ“ Managing external access āœ“ Auditing service endpoints

→ Prerequisites: service_list

→ Next steps: tcp_proxy_create

→ Related: domain_list, service_info

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentIdYesID of the environment containing the service
serviceIdYesID of the service to list TCP proxies for

TDQS

A4.2/5.0
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 states this is a listing operation ('List all TCP proxies'), implying it's read-only and non-destructive, which is appropriate. However, it doesn't disclose behavioral details like pagination, rate limits, authentication requirements, or error conditions, 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.

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose in the first line. Each subsequent section ('Best for', 'Prerequisites', 'Next steps', 'Related') adds value without redundancy. Every sentence earns its place, making it efficient and easy to parse.

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 no annotations and no output schema, the description does well by covering purpose, usage guidelines, and relationships. However, it lacks details on return values (e.g., format of listed proxies) and behavioral aspects like error handling, which would improve completeness for a tool with no structured output documentation.

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%, so the schema already documents both parameters (environmentId and serviceId). The description adds context by mentioning 'environment' and 'service', but doesn't provide additional semantic details beyond what the schema offers. This meets the baseline for high schema coverage.

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 specific action ('List all TCP proxies'), resource ('for a service in a specific environment'), and scope ('all TCP proxies'). It distinguishes from siblings like tcp_proxy_create (creation) and tcp_proxy_delete (deletion) by focusing on listing operations.

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' scenarios (viewing configurations, managing access, auditing endpoints), prerequisites (service_list), next steps (tcp_proxy_create), and related tools (domain_list, service_info). This clearly indicates 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.

variable_bulk_setA

[WORKFLOW] Create or update multiple environment variables at once

āš”ļø Best for: āœ“ Migrating configuration between services āœ“ Initial service setup āœ“ Bulk configuration updates

āš ļø Not for: Ɨ Single variable updates (use variable_set) Ɨ Temporary configuration changes

→ Prerequisites: service_list

→ Alternatives: variable_set

→ Next steps: deployment_trigger, service_restart

→ Related: variable_list, service_update

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project containing the service
environmentIdYesID of the environment for the variables (usually obtained from service_list)
variablesYesObject mapping variable names to values
serviceIdNoOptional: ID of the service for the variables, if omitted updates shared variables)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this is a mutation tool ('Create or update'), specifies prerequisites, and hints at operational context by linking to 'deployment_trigger' and 'service_restart' as next steps. However, it lacks details on permissions, error handling, or rate limits.

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 with bullet points and icons, making it easy to scan. It is appropriately sized, with each section adding value, though the 'Related' section could be slightly trimmed as it overlaps with sibling context. Overall, it is efficient and front-loaded with key information.

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?

For a mutation tool with no annotations and no output schema, the description does a good job covering purpose, usage, and prerequisites. It links to relevant tools and next steps, providing operational context. However, it could improve by detailing output behavior or error scenarios, given the complexity of bulk operations.

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?

The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description does not add any parameter-specific semantics beyond what the schema provides, such as explaining variable naming conventions or value formats. It meets the baseline for high schema coverage.

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 specific action ('Create or update multiple environment variables at once') and distinguishes it from sibling tools by explicitly mentioning 'variable_set' as an alternative for single variable updates. It identifies the resource (environment variables) and scope (bulk operations).

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 dedicated 'Best for' and 'Not for' sections, naming specific use cases (migrating configuration, initial setup, bulk updates) and exclusions (single variable updates, temporary changes). It also lists prerequisites (service_list), alternatives (variable_set), and related tools, offering comprehensive usage context.

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

variable_copyA

[WORKFLOW] Copy variables from one environment to another

āš”ļø Best for: āœ“ Environment migration āœ“ Configuration sharing āœ“ Environment duplication

āš ļø Not for: Ɨ Single variable updates (use variable_set) Ɨ Temporary configuration changes

→ Prerequisites: service_list

→ Alternatives: variable_set

→ Next steps: deployment_trigger, service_restart

→ Related: variable_list, service_update

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project
sourceEnvironmentIdYesID of the source environment (usually obtained from project_info)
targetEnvironmentIdYesID of the target environment (usually obtained from project_info)
serviceIdNoID of the service (optional, if omitted copies shared variables)
overwriteNoWhether to overwrite existing variables in the target environment

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It effectively discloses key behavioral traits: it's a workflow tool for environment migration/duplication, not for single updates. It mentions the optional serviceId parameter for shared vs. service-specific variables and implies batch operation. However, it doesn't detail potential side effects like rate limits or error handling.

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 with bullet points and icons, making it scannable and front-loaded. However, the 'Related' and 'Next steps' sections, while helpful, add some redundancy as these are already implied by sibling tool names, slightly reducing efficiency.

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?

For a 5-parameter mutation tool with no annotations and no output schema, the description does a good job covering purpose, usage, and context. It clearly indicates this is a write operation (copying variables) and provides workflow guidance. The main gap is lack of output format details, but given the tool's nature, the description is reasonably complete.

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%, so the schema already documents all 5 parameters thoroughly. The description adds minimal parameter semantics beyond the schema, mainly implying the serviceId distinction between shared and service-specific variables. This meets the baseline for high schema coverage.

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 specific verb ('Copy') and resource ('variables from one environment to another'), and distinguishes it from sibling tools like variable_set and variable_bulk_set. The [WORKFLOW] tag further emphasizes its scope as a batch operation.

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 alternatives (variable_set) and prerequisites (service_list). It also lists related tools and next steps, offering comprehensive context for when to use this tool versus others.

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

variable_deleteA

[API] Delete a variable for a service in a specific environment

āš”ļø Best for: āœ“ Removing unused configuration āœ“ Security cleanup āœ“ Configuration management

āš ļø Not for: Ɨ Temporary variable disabling Ɨ Bulk variable removal

→ Prerequisites: service_list

→ Next steps: deployment_trigger, service_restart

→ Related: variable_list, variable_set

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project
environmentIdYesID of the environment to delete the variable from (usually obtained from service_list)
nameYesName of the variable to delete
serviceIdNoID of the service (optional, if omitted deletes a shared variable)

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this is a destructive operation (implied by 'Delete' and 'Security cleanup'), specifies prerequisites and next steps, and clarifies that serviceId is optional for shared variables. However, it lacks details on error conditions, confirmation prompts, or irreversible effects, leaving some behavioral gaps.

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

Conciseness5/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.). Every sentence earns its place by providing actionable guidance without redundancy, making it efficient and easy to parse for an AI agent.

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 complexity (destructive operation with 4 parameters) and lack of annotations or output schema, the description does a strong job covering usage context, prerequisites, and related tools. However, it doesn't explain return values or error behaviors, which would be helpful for a deletion tool. It's largely complete but has minor gaps in output expectations.

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%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema, only implying that environmentId is 'usually obtained from service_list' and noting serviceId's optionality for shared variables. This meets the baseline for high schema coverage but doesn't significantly enhance parameter understanding.

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 specific action ('Delete a variable for a service in a specific environment'), identifies the resource (variable), and distinguishes it from siblings like variable_list, variable_set, and variable_bulk_set by focusing on single-variable deletion. It goes beyond just restating the name to explain the operation's scope.

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 (removing unused configuration, security cleanup) and exclusions (temporary disabling, bulk removal). It also lists prerequisites (service_list), next steps (deployment_trigger, service_restart), and related tools (variable_list, variable_set), 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.

variable_setA

[API] Create or update an environment variable

āš”ļø Best for: āœ“ Setting configuration values āœ“ Updating connection strings āœ“ Managing service secrets

āš ļø Not for: Ɨ Bulk variable updates (use variable_bulk_set) Ɨ Temporary configuration changes

→ Prerequisites: service_list

→ Alternatives: variable_bulk_set

→ Next steps: deployment_trigger, service_restart

→ Related: variable_list, variable_delete

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project containing the service
environmentIdYesID of the environment for the variable (usually obtained from service_list)
nameYesName of the environment variable
valueYesValue to set for the variable
serviceIdNoOptional: ID of the service for the variable, if omitted creates/updates a shared variable

TDQS

A4.4/5.0
Behavior4/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 effectively discloses key behavioral traits: it's a mutation tool ('create or update'), implies persistence (not for temporary changes), and hints at scope (shared vs. service-specific variables via optional serviceId). However, it doesn't mention potential side effects like service restarts or rate limits, leaving some behavioral aspects uncovered.

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

Conciseness5/5

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

The description is well-structured and appropriately sized, using bullet points and icons for clarity. Every sentence earns its place by providing actionable information (purpose, best uses, exclusions, prerequisites, alternatives, next steps, related tools) without redundancy or fluff.

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 complexity (mutation with 5 parameters) and lack of annotations/output schema, the description does an excellent job covering purpose, usage, and context. It mentions prerequisites, alternatives, and related tools, which helps the agent understand the ecosystem. The only minor gap is the lack of explicit output information, but this is mitigated by the clear action-oriented description.

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%, so the schema already documents all 5 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain format constraints or provide examples). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't detract either.

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 specific verbs ('create or update') and resource ('environment variable'), and distinguishes it from sibling tools by explicitly mentioning what it's not for (bulk updates, temporary changes). The title is null, but the description fully compensates with precise action and scope.

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 on when to use this tool ('Best for: Setting configuration values, Updating connection strings, Managing service secrets'), when not to use it ('Not for: Bulk variable updates, Temporary configuration changes'), and names alternatives ('variable_bulk_set'). It also lists prerequisites ('service_list') and related tools, making usage context very clear.

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

volume_createA

[API] Create a new persistent volume for a service

āš”ļø Best for: āœ“ Setting up database storage āœ“ Configuring persistent data āœ“ Adding file storage

āš ļø Not for: Ɨ Temporary storage needs Ɨ Static file hosting Ɨ Memory caching

→ Prerequisites: service_list

→ Next steps: volume_list

→ Related: service_update, database_deploy

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project containing the service
environmentIdYesID of the environment for the volume (usually obtained from service_info)
serviceIdYesID of the service to attach volume to
mountPathYesPath where the volume should be mounted in the container

TDQS

A4.2/5.0
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 write operation ('Create') but doesn't disclose behavioral traits like required permissions, whether the volume is immediately available, error handling, or rate limits. The description adds some context (e.g., 'persistent volume for a service') but lacks detailed behavioral information, resulting in a moderate score.

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

Conciseness5/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 bullet points for usage guidelines and related steps. Every sentence earns its place by providing clear value without redundancy, making it efficient and easy to parse.

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 complexity of creating a persistent volume with 4 required parameters and no output schema, the description is fairly complete. It covers purpose, usage guidelines, prerequisites, and related tools. However, it lacks details on behavioral aspects (e.g., permissions, errors) and doesn't explain return values, which slightly reduces completeness for a mutation tool with no annotations.

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%, meaning the input schema already documents all four parameters (projectId, environmentId, serviceId, mountPath) with descriptions. The description doesn't add any parameter-specific semantics beyond what the schema provides, so it meets the baseline of 3 without compensating for gaps.

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 ('Create') and resource ('new persistent volume for a service'). It distinguishes itself from siblings like volume_list, volume_update, and volume_delete by focusing on creation rather than listing, updating, or deleting volumes.

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 on when to use ('Best for: Setting up database storage, Configuring persistent data, Adding file storage') and when not to use ('Not for: Temporary storage needs, Static file hosting, Memory caching'). It also lists related tools (service_update, database_deploy) and prerequisites (service_list), offering clear alternatives and context.

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

volume_deleteA

[API] Delete a volume from a service

āš”ļø Best for: āœ“ Removing unused storage āœ“ Storage cleanup āœ“ Resource management

āš ļø Not for: Ɨ Temporary data removal Ɨ Data backup (use volume_backup first)

→ Prerequisites: volume_list

→ Related: service_update

ParametersJSON Schema
NameRequiredDescriptionDefault
volumeIdYesID of the volume to delete

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this is a destructive operation ('Delete'), implies permanent removal ('Storage cleanup'), and suggests caution with prerequisites and related tools. However, it lacks details on permissions, rate limits, or error handling, which would be valuable for a deletion tool.

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

Conciseness5/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 bullet-pointed guidelines and related information. Every sentence earns its place by providing actionable context without redundancy, making it efficient and easy to scan.

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 complexity (destructive deletion), lack of annotations, and no output schema, the description does a good job covering purpose, usage, and prerequisites. However, it could improve by mentioning potential side effects (e.g., data loss irreversibility) or response expectations, which would enhance completeness for such a critical operation.

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?

The schema description coverage is 100%, with the parameter 'volumeId' fully documented in the schema. The description does not add any additional meaning or context about the parameter beyond what the schema provides, such as format examples or sourcing guidance. This meets the baseline score when schema coverage is high.

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 specific action ('Delete a volume from a service') with the resource ('volume') and scope ('from a service'), distinguishing it from siblings like volume_create, volume_list, and volume_update. It uses a precise verb and identifies the target resource explicitly.

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 (e.g., 'Removing unused storage') and exclusions (e.g., 'Temporary data removal'). It also lists prerequisites ('volume_list') and related tools ('service_update'), offering clear when-to-use and when-not-to-use context.

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

volume_listA

[API] List all volumes in a project

āš”ļø Best for: āœ“ Viewing persistent storage configurations āœ“ Managing data volumes āœ“ Auditing storage usage

→ Prerequisites: project_list

→ Next steps: volume_create

→ Related: service_info, database_deploy

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project to list volumes for

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool is for 'viewing persistent storage configurations' and 'auditing storage usage' which implies read-only behavior, but doesn't explicitly state whether this is a read operation, what permissions are required, or describe pagination/rate limiting. The 'Best for' section adds some behavioral context but doesn't fully cover operational characteristics.

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 with clear sections (API label, purpose statement, Best for, Prerequisites, Next steps, Related). It's appropriately sized at 6 lines with no redundant information. Every sentence earns its place, though the emoji and formatting symbols could be considered slightly decorative rather than strictly necessary.

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?

For a single-parameter list tool with no output schema, the description provides good contextual completeness. It covers purpose, use cases, prerequisites, next steps, and related tools. The main gap is lack of information about return format (what data is included in the volume list) and any limitations (pagination, filtering options). However, given the tool's relative simplicity and the comprehensive usage guidance provided, it's mostly complete.

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 single parameter 'projectId' well-documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema. With high schema coverage, the baseline score of 3 is appropriate since the schema does the heavy lifting for parameter documentation.

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

Purpose4/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 as 'List all volumes in a project' with a specific verb (list) and resource (volumes). It distinguishes from some siblings like volume_create/delete/update but doesn't explicitly differentiate from other list tools like service_list or domain_list. The purpose is clear but sibling differentiation could be more specific.

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 excellent usage guidance with explicit sections: 'Best for' with three use cases, 'Prerequisites: project_list', 'Next steps: volume_create', and 'Related: service_info, database_deploy'. This gives clear context about when to use this tool and how it fits into workflows with specific alternatives and prerequisites named.

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

volume_updateC

Update a volume's properties

ParametersJSON Schema
NameRequiredDescriptionDefault
volumeIdYesID of the volume to update
nameYesNew name for the volume

TDQS

C2.9/5.0
Behavior2/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 of behavioral disclosure. 'Update' implies a mutation operation, but the description doesn't specify whether this requires specific permissions, what happens on failure, if changes are reversible, or any rate limits. It mentions 'properties' but doesn't clarify if all or only some properties are updatable, leaving behavioral aspects unclear.

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

Conciseness5/5

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

The description is extremely concise with a single sentence ('Update a volume's properties'), front-loading the key action and resource. There is no wasted verbiage, making it efficient for quick comprehension, though this brevity contributes to gaps in other dimensions.

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

Completeness2/5

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

Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It fails to address critical aspects like error handling, response format, or side effects, leaving the agent with insufficient context to use the tool effectively beyond basic parameter passing.

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?

The schema description coverage is 100%, with clear descriptions for both parameters ('volumeId' and 'name'), so the schema does the heavy lifting. The description adds minimal value beyond the schema by implying that 'properties' include 'name', but it doesn't explain parameter interactions or provide additional context like format examples or constraints.

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

Purpose4/5

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

The description clearly states the action ('Update') and resource ('a volume's properties'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'volume_delete' or 'volume_list' beyond the verb, nor does it specify which properties can be updated beyond what's implied by the schema.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'volume_create' or 'volume_delete', nor does it mention prerequisites (e.g., needing an existing volume). It lacks context about typical use cases or constraints, leaving the agent to infer usage from the tool name and schema alone.

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

TDQS

A3.9/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with well-defined boundaries, as evidenced by the detailed 'Best for' and 'Not for' sections that explicitly differentiate overlapping concepts. For example, deployment_trigger vs service_restart, variable_set vs variable_bulk_set, and domain_create vs tcp_proxy_create are all clearly distinguished with no ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern throughout, such as project_list, service_create_from_repo, and variable_delete. The naming is highly predictable and uniform across all 36 tools, with no mixing of conventions or styles.

Tool Count2/5

With 36 tools, this server feels overly heavy for a Railway deployment platform, suggesting fragmentation of functionality. While the domain is broad, many tools could potentially be consolidated (e.g., multiple variable management tools) or handled through parameters rather than separate tools, making the surface area unnecessarily large.

Completeness5/5

The tool set provides comprehensive coverage of Railway's domain, including full CRUD operations for projects, services, deployments, domains, variables, volumes, and TCP proxies. The workflow tools like database_deploy_from_template and variable_copy fill important gaps, and the detailed descriptions show thoughtful consideration of the entire deployment lifecycle.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Enables interaction with Railway cloud platform through the CLI to manage projects, services, deployments, and environments. Supports creating projects, deploying templates, managing environment variables, and monitoring logs through natural language commands.
    14
    5,931
    192
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables management of Railway.app infrastructure through natural language, allowing users to deploy services, manage environment variables, monitor deployments, and configure projects directly from MCP clients like Claude.
    38
    58
    MIT

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

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