Skip to main content
Glama
railwayapp

Railway MCP Server

Official
by railwayapp

@railway/mcp-server is deprecated

Railway MCP is now bundled into the Railway CLI.

This npm package no longer contains the standalone TypeScript MCP server. It is a compatibility shim that launches:

railway mcp

Migration

Install or upgrade the Railway CLI:

bash <(curl -fsSL https://railway.com/install.sh)

Then configure supported MCP clients:

railway mcp install

To configure the hosted MCP server instead of the local stdio server:

railway mcp install --remote

You can also configure a local MCP client directly with:

{
  "mcpServers": {
    "railway": {
      "command": "railway",
      "args": ["mcp"]
    }
  }
}

Remove old client entries that run:

npx -y @railway/mcp-server

Related MCP server: Railway MCP Server

Compatibility

For existing configs that still invoke @railway/mcp-server, this package delegates to railway mcp.

If the Railway CLI is missing, the package exits with migration instructions.

Docs

See the Railway CLI MCP docs: https://docs.railway.com/cli/mcp

Available Tools

14 tools
check-railway-statusCheck Railway CLI StatusA

Check whether the Railway CLI is installed and if the user is logged in. This tool helps agents verify the Railway CLI setup before attempting to use other Railway tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/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 describes what the tool checks (installation and login status) but doesn't disclose behavioral details like what specific checks are performed, what happens if CLI isn't found, whether it provides diagnostic information, or what the output format looks like. It's adequate but lacks depth.

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?

Two concise sentences with zero waste. The first sentence states the purpose, the second provides usage context. Every word earns its place, and the information is front-loaded with the core functionality stated immediately.

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 zero-parameter verification tool with no output schema, the description is reasonably complete. It explains what's being checked and when to use it. However, without annotations or output schema, it could benefit from mentioning what kind of status information is returned (e.g., binary success/failure vs detailed diagnostics).

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 zero parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and it correctly focuses on the tool's purpose rather than attempting to describe non-existent inputs.

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 ('check whether... installed' and 'logged in') and identifies the resource (Railway CLI). It distinguishes this verification tool from sibling deployment/management tools by focusing on setup status rather than operational actions.

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 explicitly states when to use this tool: 'before attempting to use other Railway tools.' This provides clear contextual guidance about its role as a prerequisite check, distinguishing it from all sibling tools that perform actual Railway operations.

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

create-environmentCreate EnvironmentB

Create a new Railway environment for the currently linked project. Optionally duplicate an existing environment and set service variables.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathYesThe path to the workspace where the environment should be created
environmentNameYesThe name for the new environment
duplicateEnvironmentNoThe name of an existing environment to duplicate
serviceVariablesNoService variables to assign in the new environment (only works when duplicating)

TDQS

B3.4/5.0
Behavior2/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. While it mentions the creation action and optional duplication, it lacks critical details like required permissions, whether this is a destructive operation, rate limits, or what happens on failure. For a creation tool with zero annotation coverage, this is insufficient.

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 appropriately sized with two sentences that efficiently convey the core functionality and optional features. It's front-loaded with the primary purpose, though it could be slightly more structured by explicitly separating required from optional behaviors.

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?

For a creation tool with 4 parameters, 100% schema coverage, but no annotations and no output schema, the description is moderately complete. It covers the basic purpose but lacks behavioral context, error handling information, and output expectations, which are important for a tool that creates resources.

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%, providing good documentation for all parameters. The description adds minimal value beyond the schema by mentioning the optional duplication and service variables, but doesn't explain parameter interactions (e.g., that serviceVariables only works with duplicateEnvironment) or provide additional context beyond what's already in the schema descriptions.

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 environment') and resource ('for the currently linked project'), distinguishing it from siblings like 'create-project-and-link' or 'link-environment'. It also mentions optional capabilities ('duplicate an existing environment and set service variables'), providing comprehensive purpose clarity.

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

Usage Guidelines3/5

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

The description implies usage context ('for the currently linked project') but doesn't explicitly state when to use this tool versus alternatives like 'link-environment' or 'create-project-and-link'. No exclusions or prerequisites are mentioned, leaving some ambiguity about appropriate scenarios.

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

deployDeploy to RailwayC

Upload and deploy from the current directory. Supports CI mode, environment, and service options.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathYesThe path to the workspace to deploy
ciNoStream build logs only, then exit (equivalent to setting $CI=true)
environmentNoEnvironment to deploy to (defaults to linked environment)
serviceNoService to deploy to (defaults to linked service)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but lacks critical behavioral details. It mentions 'Upload and deploy' implying a write operation, but doesn't disclose permissions needed, whether it's destructive, rate limits, or what happens on failure. The CI mode hint is useful but insufficient 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.

Conciseness4/5

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

The description is brief and front-loaded with the core action, using two efficient sentences. However, the second sentence could be more structured to clearly separate features, and it slightly under-specifies given the tool's complexity.

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?

For a deployment tool with 4 parameters, no annotations, and no output schema, the description is inadequate. It misses behavioral context, output expectations, error handling, and differentiation from siblings, leaving significant gaps for an AI agent to understand and invoke 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 fully documents all parameters. The description adds minimal value by listing 'CI mode, environment, and service options' but doesn't explain semantics beyond what the schema provides, such as how defaults work or interaction effects.

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 ('Upload and deploy') and resource ('from the current directory'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'deploy-template' or 'list-deployments' beyond the basic action, missing specific distinctions about scope or method.

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 'deploy-template' or 'check-railway-status'. It mentions supported options but doesn't specify prerequisites, exclusions, or contextual triggers, leaving usage ambiguous.

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

deploy-templateDeploy Railway TemplateA

Search and deploy Railway templates. This tool will search for templates using fuzzy search and automatically deploy the selected template to the current Railway project and environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathYesThe path to the workspace to deploy the template to
searchQueryYesSearch query to filter templates by name, description, or category
templateIndexNoIndex of the template to deploy (required if multiple templates found)
teamIdNoThe ID of the team (optional)

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses key behaviors: fuzzy search, automatic deployment, and deployment target (current project/environment). However, it lacks details on permissions needed, rate limits, error handling, or what 'automatically deploy' entails (e.g., confirmation steps).

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?

Two concise sentences front-load the core purpose and key behaviors. Every phrase adds value: 'search and deploy' (action), 'fuzzy search' (method), 'automatically deploy' (behavior), 'current Railway project and environment' (context). No wasted words.

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?

For a 4-parameter mutation tool with no annotations and no output schema, the description is adequate but incomplete. It covers the what and how but lacks details on side effects, return values, error cases, or integration with sibling tools. Given the complexity, more behavioral context would be helpful.

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 fully documents all 4 parameters. The description adds no parameter-specific semantics beyond implying 'searchQuery' is used for fuzzy search and 'workspacePath' targets deployment. Baseline 3 is appropriate as the schema handles 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: 'Search and deploy Railway templates' with specific verbs and resources. It distinguishes from siblings like 'deploy' (which likely deploys services) by specifying template deployment, though it doesn't explicitly contrast with all sibling tools.

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

Usage Guidelines3/5

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

The description implies usage context ('to the current Railway project and environment') but doesn't explicitly state when to use this vs. alternatives like 'deploy' or 'create-project-and-link'. No guidance on prerequisites, exclusions, or comparison with sibling tools is provided.

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

generate-domainGenerate Railway DomainB

Generate a domain for the currently linked Railway project. If a domain already exists, it will return the existing domain URL. Optionally specify a service to generate the domain for.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathYesThe path to the workspace to generate domain for
serviceNoThe name of the service to generate the domain for (optional)

TDQS

B3.2/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. It discloses that the tool returns an existing domain URL if one already exists, which is useful behavioral context. However, it doesn't mention potential side effects (e.g., whether this modifies infrastructure, requires permissions, or has rate limits), and the output format is unspecified. For a tool that likely involves infrastructure changes, this is a significant gap.

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 two sentences with zero waste: the first states the core purpose and behavior, and the second adds optional parameter context. It's front-loaded with the main action and efficiently structured, making it easy to parse quickly.

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 (likely involving infrastructure changes), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what a 'domain' entails in this context, potential errors, or the return value format. For a tool with no structured safety or output information, more descriptive detail is needed to guide effective 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 both parameters fully. The description adds minimal value by mentioning the optional 'service' parameter, but doesn't provide additional semantics beyond what's in the schema (e.g., format examples or constraints). With high schema coverage, the baseline is 3, and the description doesn't significantly enhance understanding.

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 ('generate a domain') and resource ('for the currently linked Railway project'), with additional context about returning existing domains. It distinguishes from siblings like 'create-project-and-link' or 'deploy' by focusing specifically on domain generation. However, it doesn't explicitly differentiate from all potential domain-related tools that might exist.

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

Usage Guidelines3/5

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

The description implies usage when a domain is needed for a Railway project, mentioning optional service specification. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'deploy' (which might handle domains differently) or 'link-service', nor does it mention prerequisites like having a linked project. The context is clear but lacks specific when/when-not instructions.

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

get-logsGet Railway LogsA

Get build or deployment logs for the currently linked Railway project. This will only pull the latest successful deployment by default, so if you need to inspect a failed build, you'll need to supply a deployment ID. You can optionally specify a deployment ID, service, and environment. If no deployment ID is provided, it will get logs from the latest deployment. The 'lines' and 'filter' parameters require Railway CLI v4.9.0+. Use 'lines' to limit the number of log lines (disables streaming) and 'filter' to search logs by terms or attributes (e.g., '@level:error', 'user', '@level:warn AND rate limit'). For older CLI versions, these parameters will be ignored and logs will stream.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathYesThe path to the workspace to get logs from
logTypeYesType of logs to retrieve: 'build' for build logs or 'deploy' for deployment logs
deploymentIdNoDeployment ID to pull logs from. Omit to pull from latest deployment
serviceNoService to view logs from (defaults to linked service)
environmentNoEnvironment to view logs from (defaults to linked environment)
linesNoNumber of log lines to return (disables streaming). Requires Railway CLI v4.9.0+. Useful for searching through recent logs.
filterNoFilter logs by search terms or attributes. Requires Railway CLI v4.9.0+. Examples: 'error', '@level:error', '@level:warn AND rate limit', 'user login', '@status:500'. See https://docs.railway.com/guides/logs for more info.
jsonNoJSON provides structured log data with more information (e.g. timestamps) but uses more tokens. Defaults to false to save tokens. Set to true for more detailed logs.

TDQS

A4.3/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: default behavior (pulls latest successful deployment), prerequisites (requires linked project), version dependencies (CLI v4.9.0+ for some parameters), and effects (disables streaming with 'lines'). However, it lacks details on rate limits, error handling, or authentication needs, which are common for API tools.

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 appropriately sized and front-loaded, starting with the core purpose and default behavior. Each sentence adds useful information, such as version requirements and parameter usage, with no wasted text. However, it could be slightly more streamlined by integrating some details more cohesively.

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 (8 parameters, no output schema, no annotations), the description does a good job of covering usage, behavior, and parameter context. It explains defaults, version dependencies, and practical examples. However, without an output schema, it doesn't detail the return format or structure, which is a minor gap for a log retrieval 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 schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds some context, such as explaining that 'lines' and 'filter' require Railway CLI v4.9.0+ and providing examples for 'filter', but this is minimal beyond the schema. This meets the baseline of 3 for high schema coverage without significant added 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 tool retrieves 'build or deployment logs for the currently linked Railway project,' specifying both the verb ('Get') and resource ('logs'). It distinguishes itself from siblings like 'list-deployments' or 'check-railway-status' by focusing on log retrieval rather than listing or status checking, making the purpose 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 on when to use this tool versus alternatives: it specifies that it 'will only pull the latest successful deployment by default' and that for failed builds, you need to supply a deployment ID. It also mentions using 'lines' and 'filter' parameters for specific versions of the Railway CLI, offering clear context and exclusions for usage.

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

list-deploymentsList Railway DeploymentsA

List deployments for a Railway service with IDs, statuses and other metadata. Requires Railway CLI v4.10.0+.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathYesThe path to the workspace to list deployments from
serviceNoService name or ID to list deployments for (defaults to linked service)
environmentNoEnvironment to list deployments from (defaults to linked environment)
limitNoMaximum number of deployments to show (default: 20, max: 1000)
jsonNoReturn deployments as structured JSON data. When true, the output will contain ids, statuses, and other metadata

TDQS

A3.5/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. It mentions a CLI version requirement, which is useful context, but does not disclose other behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, or what happens if parameters are invalid. The description lacks details on output format or pagination behavior.

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 front-loaded with the core purpose in the first sentence, and the second sentence adds essential prerequisite information without redundancy. Every sentence earns its place, making it appropriately sized and efficient.

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 complexity (5 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose and a prerequisite but lacks details on behavioral traits, output format, or error handling. Without annotations or output schema, more context would improve completeness for a listing tool with multiple parameters.

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 no additional meaning beyond what the schema provides, such as explaining parameter interactions or default behaviors. 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 action ('List deployments') and the resource ('for a Railway service'), specifying what information is returned ('IDs, statuses and other metadata'). It distinguishes this from sibling tools like 'deploy' or 'get-logs' by focusing on listing rather than creating or retrieving logs.

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

Usage Guidelines3/5

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

The description implies usage by specifying a prerequisite ('Requires Railway CLI v4.10.0+'), but it does not explicitly state when to use this tool versus alternatives like 'list-services' or 'list-projects'. No exclusions or specific contexts for usage are provided beyond the CLI version requirement.

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

list-projectsList Railway ProjectsB

List all Railway projects for the currently logged in account

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/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 states it's a list operation but doesn't describe return format (e.g., pagination, fields included), error conditions, or authentication requirements beyond 'currently logged in account'. This leaves significant gaps for a tool that likely returns structured data.

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, clear sentence with zero waste. It's front-loaded with the core action and resource, and every word contributes to understanding the tool's purpose without redundancy or fluff.

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 no annotations and no output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., list of project objects, error responses), which is critical for a list tool. While the purpose is clear, the lack of behavioral and output details makes it insufficient for full agent understanding.

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 doesn't discuss parameters, focusing on the tool's purpose. A baseline of 4 is applied since no parameters exist, and the description doesn't introduce unnecessary complexity.

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 ('List all') and resource ('Railway projects'), specifying scope ('for the currently logged in account'). It distinguishes from siblings like 'create-project-and-link' or 'list-services' by focusing on projects only. However, it doesn't explicitly differentiate from other list tools like 'list-deployments' or 'list-services' beyond the resource name.

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., authentication status), compare with other list tools, or indicate scenarios where it's preferred over other project-related tools like 'create-project-and-link'. The context is implied but not explicit.

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

list-servicesList Railway ServicesC

List all services for the currently linked Railway project

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathYesThe path to the workspace to list services from

TDQS

C2.9/5.0
Behavior2/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 scope ('currently linked Railway project') but fails to describe return format, pagination, error conditions, or authentication needs. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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 directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, with zero waste.

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 tool's simplicity (1 parameter, no output schema, no annotations), the description is minimal but incomplete. It lacks details on return values, error handling, and usage context relative to siblings, making it insufficient for full agent understanding despite the low 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%, so the schema fully documents the single parameter 'workspacePath'. The description adds no additional meaning beyond implying context about the linked project, which doesn't enhance parameter understanding. Baseline 3 is appropriate when the schema does all the work.

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 ('List all services') and the target resource ('for the currently linked Railway project'), providing specific verb+resource pairing. However, it doesn't distinguish this tool from sibling tools like 'list-projects' or 'list-deployments' beyond the resource type, missing explicit 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 like 'list-projects' or 'list-deployments', nor does it mention prerequisites such as having a linked project. It only states the basic function without contextual usage information.

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

list-variablesList Railway VariablesC

Show variables for the active environment

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathYesThe path to the workspace to list variables from
serviceNoThe service to show variables for (optional)
environmentNoThe environment to show variables for (optional)
kvNoShow variables in KV format (optional)
jsonNoOutput in JSON format (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states it 'shows' variables, implying a read operation without details on permissions, rate limits, or output format. It doesn't disclose whether this is a safe read, if it requires authentication, or how results are structured, leaving 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 without unnecessary words. It's appropriately sized for a listing tool, with zero wasted text, making it easy to parse quickly.

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 no annotations and no output schema, the description is incomplete for a tool with 5 parameters. It lacks details on behavioral traits, output format, or error handling, which are crucial for an agent to use it correctly. The minimal description doesn't compensate for the missing structured data.

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 has 100% description coverage, so parameters are well-documented in the schema itself. The description adds no additional parameter semantics beyond implying 'active environment' context, which aligns with the optional 'environment' parameter but doesn't provide extra meaning. 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.

Purpose4/5

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

The description clearly states the action ('Show') and resource ('variables for the active environment'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'set-variables' or 'list-services', which would require mentioning it's a read-only listing operation versus mutation or other resource types.

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 minimal guidance by implying usage in the 'active environment', but lacks explicit when-to-use instructions, prerequisites, or alternatives. It doesn't clarify when to use this versus other listing tools like 'list-services' or 'list-deployments', or how it relates to 'set-variables' for mutation.

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

set-variablesSet Railway VariablesC

Set environment variables for the active environment

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathYesThe path to the workspace to set variables in
variablesYesArray of '{key}={value}' environment variable pairs to set
serviceNoThe service to set variables for (optional)
environmentNoThe environment to set variables for (optional)
skipDeploysNoSkip triggering deploys when setting variables (optional)

TDQS

C2.9/5.0
Behavior2/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 states the tool sets environment variables, implying a write/mutation operation, but doesn't mention critical behaviors like whether this requires specific permissions, if changes are reversible, potential side effects (e.g., triggering deploys), or rate limits. This is inadequate for a mutation 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly while conveying the essential action and target.

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 tool's complexity (mutation operation with 5 parameters) and lack of both annotations and output schema, the description is insufficient. It doesn't explain what happens after setting variables (e.g., success/failure responses, whether deploys are triggered by default), leaving significant gaps for an AI agent to understand the tool's full behavior and outcomes.

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 doesn't add any parameter-specific information beyond what's in the schema, such as examples or constraints not captured in structured fields. This meets the baseline for high schema coverage but doesn't provide extra value.

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 ('Set') and resource ('environment variables for the active environment'), making the purpose immediately understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'list-variables' or 'create-environment', which could help with similar operations in the Railway context.

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 'list-variables' for checking existing variables or 'create-environment' for environment setup. It mentions 'active environment' but doesn't clarify prerequisites or contextual constraints, leaving usage scenarios ambiguous.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.0
    • Changedget-logs3 fields changed
      • addedInput schema / properties / filter
        Added value: +{
        +  "description": "Filter logs by search terms or attributes. Requires Railway CLI v4.9.0+. Examples: 'error', '@level:error', '@level:warn AND rate limit', 'user login', '@status:500'. See https://docs.railway.com/guides/logs for more info.",
        +  "type": "string"
        +}
      • addedInput schema / properties / json
        Added value: +{
        +  "description": "JSON provides structured log data with more information (e.g. timestamps) but uses more tokens. Defaults to false to save tokens. Set to true for more detailed logs.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / lines
        Added value: +{
        +  "description": "Number of log lines to return (disables streaming). Requires Railway CLI v4.9.0+. Useful for searching through recent logs.",
        +  "type": "number"
        +}
    • Addedlist-deployments
  2. 13 tool updates
    • First observedcheck-railway-status
    • First observedcreate-environment
    • First observedcreate-project-and-link
    • First observeddeploy
    • First observeddeploy-template
    • First observedgenerate-domain
    • First observedget-logs
    • First observedlink-environment
    • First observedlink-service
    • First observedlist-projects
    • First observedlist-services
    • First observedlist-variables
    • First observedset-variables

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific Railway resources like projects, environments, services, deployments, and variables, with clear action verbs. However, 'deploy' and 'deploy-template' could be confused as both handle deployment, though their descriptions clarify one is for directory uploads and the other for templates.

Naming Consistency4/5

Tool names predominantly follow a consistent verb-noun pattern (e.g., create-environment, list-services, set-variables), with clear and readable conventions. Minor deviations include 'check-railway-status' using a verb-noun-adjective structure and hyphenated names throughout, but overall consistency is high.

Tool Count5/5

With 14 tools, the count is well-scoped for managing Railway projects, covering setup, deployment, logging, and resource management. Each tool serves a clear purpose without redundancy, fitting typical server tool ranges and the domain's complexity.

Completeness5/5

The tool set provides comprehensive coverage for Railway operations, including project and environment creation, deployment, logging, variable management, and listing resources. There are no obvious gaps; agents can perform full lifecycle management from setup to monitoring.

Maintenance

ActivityInactive
ResponsivenessSyncing

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
    D
    maintenance
    Enables management of Railway.app infrastructure through natural language, including deploying services from GitHub repos or Docker images, managing environment variables, monitoring deployments, and configuring networking and volumes.
    36
    58
    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/railwayapp/railway-mcp-server'

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