Skip to main content
Glama
allkindsxyz

Railway MCP Server

by allkindsxyz

Railway MCP Server

Model Context Protocol (MCP) сервер для Railway API - позволяет AI системам (Claude, Cursor и другим) напрямую управлять Railway проектами, деплоями и сервисами.

🚀 Возможности

Управление проектами

  • Просмотр всех проектов и их сервисов

  • Получение детальной информации о проекте

  • Мониторинг статуса сервисов

Управление деплоями

  • Просмотр логов деплоев (build logs, deploy logs)

  • Запуск нового деплоя (redeploy)

  • Отмена текущего деплоя

  • Перезапуск деплоя

Управление переменными окружения

  • Просмотр переменных сервиса

  • Создание/обновление переменных

  • Удаление переменных

Мониторинг

  • Статус деплоев в реальном времени

  • URL адреса сервисов

  • Метаданные проектов и сервисов

Related MCP server: Railway MCP Server

📦 Установка

Требования

  • Node.js 18+

  • Railway API токен

Быстрая установка

# Клонировать репозиторий
git clone <your-repo-url>
cd railway-mcp-server

# Установить зависимости
npm install

# Собрать проект
npm run build

Получение Railway API токена

  1. Зайдите на Railway

  2. Перейдите в Account Settings → Tokens

  3. Создайте новый токен

  4. Скопируйте токен

🔧 Настройка

Для Claude Desktop

Добавьте в конфигурацию Claude Desktop (claude_desktop_config.json):

На macOS:

~/Library/Application\ Support/Claude/claude_desktop_config.json

На Windows:

%APPDATA%/Claude/claude_desktop_config.json

Конфигурация:

{
  "mcpServers": {
    "railway": {
      "command": "node",
      "args": ["/absolute/path/to/railway-mcp-server/dist/index.js"],
      "env": {
        "RAILWAY_TOKEN": "your-railway-token-here"
      }
    }
  }
}

Для Cursor

Добавьте в настройки Cursor:

{
  "mcpServers": {
    "railway": {
      "command": "node",
      "args": ["/absolute/path/to/railway-mcp-server/dist/index.js"],
      "env": {
        "RAILWAY_TOKEN": "your-railway-token-here"
      }
    }
  }
}

🛠️ Использование

Основные команды

После настройки вы можете использовать следующие команды в Claude или Cursor:

Просмотр проектов

Покажи мне все мои Railway проекты

Просмотр конкретного проекта

Покажи детали проекта {project-id}

Просмотр логов деплоя

Покажи логи деплоя {deployment-id}

Перезапуск сервиса

Перезапусти сервис {service-id}

Управление переменными

Установи переменную NODE_ENV=production для сервиса {service-id}

Доступные инструменты

Инструмент

Описание

get_projects

Получить все проекты

get_project

Получить детали проекта

get_service

Получить детали сервиса

get_deployment_logs

Получить логи деплоя

redeploy_service

Перезапустить сервис

cancel_deployment

Отменить деплой

restart_deployment

Перезапустить деплой

update_service_variable

Обновить переменную

delete_service_variable

Удалить переменную

🧪 Тестирование

Использование MCP Inspector

# Запустить инспектор для отладки
npm run inspector

Откройте браузер по указанному URL для интерактивного тестирования.

Тестирование из командной строки

# Установить переменную окружения
export RAILWAY_TOKEN="your-token-here"

# Запустить сервер
npm start

📖 Примеры использования

Мониторинг деплоев

Claude: Покажи мне статус всех деплоев в проекте Marvin

Управление переменными

Claude: Установи переменную DATABASE_URL для backend сервиса

Анализ логов

Claude: Покажи логи последнего деплоя и найди ошибки

Автоматический редеплой

Claude: Если деплой frontend завершился с ошибкой, перезапусти его

🔒 Безопасность

  • Токены: Railway токены хранятся только в переменных окружения

  • Локальное выполнение: MCP сервер работает локально

  • Подтверждение действий: Изменяющие операции требуют подтверждения

  • Изоляция: Каждый сервис работает в изолированном контексте

🐛 Отладка

Проверка токена

# Проверить валидность токена
curl -H "Authorization: Bearer your-token" https://backboard.railway.app/graphql/v2

Логи сервера

# Просмотр логов
npm run dev

Общие проблемы

  1. "RAILWAY_TOKEN is required" - Убедитесь, что токен установлен

  2. "Unauthorized" - Проверьте корректность токена

  3. "Tool not found" - Перезапустите Claude Desktop

📚 Дополнительные ресурсы

🤝 Содействие

Чтобы внести свой вклад:

  1. Форкните репозиторий

  2. Создайте feature branch

  3. Внесите изменения

  4. Создайте pull request

📄 Лицензия

MIT License - смотрите файл LICENSE для деталей.

🆘 Поддержка

  • Создайте GitHub Issue для багов

  • Обратитесь в Railway Discord для вопросов по API

  • Документация MCP для общих вопросов


Создано командой Marvin Studio 🚀

Available Tools

9 tools
cancel_deploymentC

Cancel a running deployment

ParametersJSON Schema
NameRequiredDescriptionDefault
deploymentIdYesThe Railway deployment ID to cancel

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 action ('Cancel') but doesn't explain what 'cancel' entails (e.g., whether it stops the deployment immediately, if it's reversible, what permissions are required, or any side effects). This leaves significant gaps in understanding the tool's behavior beyond the basic action.

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 with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand at a glance, which is ideal for conciseness.

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 cancellation operation (a potentially destructive action), the lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like reversibility, permissions, or response format, which are crucial for safe and effective use. This leaves significant gaps in 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 'deploymentId' parameter clearly documented. The description doesn't add any meaning beyond what the schema provides (e.g., it doesn't specify format or source for the ID). Since the schema does the heavy lifting, 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.

Purpose4/5

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

The description clearly states the action ('Cancel') and target ('a running deployment'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from potential alternatives like 'restart_deployment' or 'redeploy_service' among the sibling tools, which would require explicit differentiation for a perfect score.

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 'restart_deployment' or 'redeploy_service', nor does it mention prerequisites (e.g., the deployment must be running). It implies usage for canceling deployments but lacks explicit context or exclusions, resulting in minimal guidance.

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

delete_service_variableC

Delete an environment variable from a service

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesThe Railway service ID
nameYesThe environment variable name to delete

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 destructive action ('Delete') but fails to mention critical details like required permissions, whether the deletion is permanent or reversible, potential side effects on the service, or error handling. This leaves significant gaps 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 a single, clear sentence with no wasted words, making it highly efficient and easy to parse. It is appropriately sized for a simple tool and front-loads the key information effectively.

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 that this is a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., permanence, permissions), usage context, and expected outcomes, which are essential for safe and effective tool invocation in this scenario.

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 input schema already documents both parameters ('serviceId' and 'name') adequately. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints, but doesn't need to compensate for gaps, resulting in a baseline score.

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 ('Delete') and the resource ('an environment variable from a service'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'update_service_variable' beyond the action verb, which slightly limits its specificity.

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, such as 'update_service_variable' for modifying variables or other sibling tools for different operations. It lacks context about prerequisites, dependencies, or scenarios where deletion is appropriate.

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

get_deployment_logsB

Get logs for a specific deployment

ParametersJSON Schema
NameRequiredDescriptionDefault
deploymentIdYesThe Railway deployment ID

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 the full burden of behavioral disclosure. It states it 'gets logs' which implies a read-only operation, but doesn't specify whether this requires authentication, has rate limits, returns structured vs. unstructured data, or includes pagination/timestamp filtering. For a logging 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 directly states the tool's function without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the core purpose immediately.

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 single-parameter read operation with good schema coverage but no annotations or output schema, the description is minimally adequate. It identifies the core function but lacks important context about log format, volume, authentication needs, and how it differs from sibling tools. The absence of an output schema means the description should ideally hint at return values, which it doesn't.

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 'deploymentId' clearly documented as 'The Railway deployment ID'. The description doesn't add any additional semantic context beyond this (e.g., where to find the ID, format examples, or related parameters like log level/time range). Baseline 3 is appropriate 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.

Purpose4/5

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

The description clearly states the action ('Get logs') and target resource ('for a specific deployment'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_deployment' or 'get_service' that might also retrieve deployment-related information, nor does it specify what type of logs (e.g., build, runtime, error).

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. There's no mention of prerequisites (e.g., needing a deployment ID from another operation), when this is appropriate versus other logging tools (if any exist), or what context it's meant for (debugging, monitoring, etc.).

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

get_projectC

Get details of a specific Railway project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe Railway project ID

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 this is a read operation ('Get details'), but doesn't mention authentication requirements, rate limits, error conditions, or what details are returned. This leaves significant gaps for a tool that likely interacts with an external API.

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 for a simple read operation and front-loaded with the essential information.

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 tool with no annotations and no output schema, the description is insufficient. It doesn't explain what details are returned, potential error cases, or behavioral constraints. Given the complexity of interacting with Railway projects and the lack of structured information, more context is needed.

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 single parameter 'projectId' clearly documented in the schema. The description doesn't add any additional meaning about the parameter beyond what's in the schema, 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.

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('details of a specific Railway project'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling 'get_projects' (which likely lists multiple projects) or 'get_service' (which focuses on services rather than projects), missing full sibling distinction.

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 'get_projects' or 'get_service'. It lacks context about prerequisites, such as needing a project ID, or when this tool is appropriate compared to other read operations.

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

get_projectsB

Get all Railway projects and their services

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 states the tool retrieves data ('Get'), implying a read operation, but doesn't disclose behavioral traits such as rate limits, authentication needs, pagination, or what 'all' entails (e.g., scope or limitations). This leaves significant 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it highly concise and well-structured.

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 simplicity (0 parameters, no output schema) and lack of annotations, the description is minimally adequate but incomplete. It covers the basic action but misses behavioral context (e.g., how data is returned, any constraints), leaving room for improvement despite the low complexity.

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, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a high baseline score as it avoids redundancy.

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 ('Get') and resource ('Railway projects and their services'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'get_project' (singular vs. plural), leaving some ambiguity about when to use each.

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?

No guidance is provided on when to use this tool versus alternatives like 'get_project' (singular) or other sibling tools. The description implies a broad retrieval but doesn't specify contexts, prerequisites, or exclusions for usage.

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

get_serviceB

Get details of a specific Railway service including deployments and variables

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesThe Railway service ID

TDQS

B3.3/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 this is a read operation ('Get details'), which is clear, but lacks information on permissions required, rate limits, error handling, or what specific details are returned beyond 'deployments and variables'. For a tool with no annotations, this leaves significant gaps in understanding how it behaves in practice.

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 ('Get details of a specific Railway service') and specifies key inclusions ('including deployments and variables'). There is no wasted verbiage, and every word contributes to understanding the tool's function.

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 moderate complexity (retrieving service details with no output schema), the description is minimally adequate. It covers the purpose and scope but lacks details on return format, error cases, or behavioral traits. With no annotations and no output schema, the description should do more to compensate, but it at least provides a clear starting point.

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 'serviceId' clearly documented. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't need to compensate but also doesn't add value here.

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 'Get' and the resource 'Railway service details', specifying what information is retrieved (details including deployments and variables). It distinguishes from siblings like get_project/get_projects by focusing on a specific service rather than projects. However, it doesn't explicitly contrast with other service-related tools like update_service_variable.

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 needing service details, deployments, and variables, which differentiates it from siblings that handle deployments (cancel_deployment, restart_deployment) or variables (delete_service_variable, update_service_variable). However, it lacks explicit guidance on when to use this versus get_project (which might include service info) or clear exclusions for alternative scenarios.

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

redeploy_serviceC

Trigger a new deployment for a service

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesThe Railway service ID to redeploy

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 full burden for behavioral disclosure. While 'Trigger a new deployment' implies a write/mutation operation, it doesn't disclose important behavioral aspects like whether this requires specific permissions, whether it's idempotent, what happens to existing deployments, or potential side effects. The description is minimal and lacks critical context for a deployment 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 extremely concise - a single sentence that directly states the tool's purpose without any unnecessary words. It's perfectly front-loaded with the core functionality immediately apparent.

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/mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens during redeployment, what the expected outcome is, whether there are limitations or constraints, or how this differs from related deployment operations. The minimal description leaves too many questions unanswered for effective tool 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%, with the single parameter 'serviceId' well-documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema, so it 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.

Purpose4/5

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

The description clearly states the action ('Trigger a new deployment') and resource ('for a service'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'restart_deployment' or 'cancel_deployment', which appear related to deployment operations.

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. With sibling tools like 'restart_deployment' and 'cancel_deployment' available, there's no indication of how 'redeploy_service' differs from them or when one should be chosen over another.

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

restart_deploymentC

Restart a deployment

ParametersJSON Schema
NameRequiredDescriptionDefault
deploymentIdYesThe Railway deployment ID to restart

TDQS

C2.7/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. 'Restart a deployment' implies a mutation that could disrupt service, but it doesn't clarify whether this requires specific permissions, if it's reversible, what side effects occur (e.g., downtime), or response behavior. For a mutation tool with zero annotation coverage, 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 extremely concise at three words, with zero wasted language. It's front-loaded with the core action and resource, making it easy to parse. This efficiency is commendable, though it comes at the cost of detail.

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 deployment restart (a mutation with potential service impact), the description is inadequate. With no annotations, no output schema, and minimal behavioral context, it fails to provide enough information for safe and effective use. The agent must infer critical details like permissions, effects, and error handling.

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 'deploymentId' documented as 'The Railway deployment ID to restart'. The description adds no additional meaning beyond this, such as format examples or constraints. With high schema coverage, 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.

Purpose3/5

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

The description 'Restart a deployment' clearly states the action (restart) and target resource (deployment), which is better than a tautology. However, it lacks specificity about what 'restart' entails operationally and doesn't distinguish this tool from sibling tools like 'redeploy_service' or 'cancel_deployment', leaving ambiguity about when to use each.

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. With siblings like 'redeploy_service' and 'cancel_deployment' available, there's no indication of prerequisites, typical use cases, or exclusions. This forces the agent to guess based on tool names alone.

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

update_service_variableC

Update or create an environment variable for a service

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesThe Railway service ID
nameYesThe environment variable name
valueYesThe environment variable value

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 action ('Update or create') but lacks critical details like whether this requires specific permissions, if changes are reversible, potential side effects (e.g., service restarts), 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 front-loads the core purpose without unnecessary words. Every part earns its place by clearly stating the action and resource, 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 of a mutation tool with no annotations and no output schema, the description is incomplete. It fails to address behavioral aspects like permissions, side effects, or response format, leaving significant gaps for an AI agent to understand how to use this tool effectively in context.

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 (serviceId, name, value) with clear descriptions. The description adds no additional meaning beyond implying the parameters relate to environment variables, which is already evident from the schema. Baseline 3 is appropriate 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.

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 or create') and resource ('environment variable for a service'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'delete_service_variable' beyond the obvious action difference, missing explicit scope or context distinctions.

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, such as when to update versus create, or how it relates to siblings like 'delete_service_variable' or 'redeploy_service'. There are no prerequisites, exclusions, or contextual hints mentioned.

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

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific resources and actions, such as cancel_deployment vs. restart_deployment, and get_project vs. get_service, with no overlapping functionality that would cause confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as get_deployment_logs and update_service_variable, with no deviations in style or convention throughout the set.

Tool Count5/5

With 9 tools, the server is well-scoped for managing Railway projects, services, deployments, and environment variables, providing a focused set that covers essential operations without being overwhelming or insufficient.

Completeness4/5

The tool set offers strong coverage for deployment management, environment variables, and project/service queries, but minor gaps exist, such as the inability to create or delete projects or services, which agents might need to work around.

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
    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, including deploying services from GitHub repos or Docker images, managing environment variables, monitoring deployments, and configuring networking and volumes.
    36
    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/allkindsxyz/railway-mcp-server'

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