Skip to main content
Glama
cuongdev

AWS CodePipeline MCP Server

by cuongdev

Сервер AWS CodePipeline MCP

Это сервер Model Context Protocol (MCP), который интегрируется с AWS CodePipeline, позволяя вам управлять вашими конвейерами через Windsurf и Cascade. Сервер предоставляет стандартизированный интерфейс для взаимодействия с сервисами AWS CodePipeline.

Автор: Куонг Т Нгуен

Функции

  • Список всех трубопроводов

  • Получите состояние конвейера и подробные определения конвейера

  • Список выполнений конвейера

  • Одобрить или отклонить действия по ручному утверждению

  • Повторить неудачные этапы

  • Запуск конвейера выполнения

  • Просмотр журналов выполнения конвейера

  • Остановить конвейерные исполнения

  • Ресурсы конвейера тегов

  • Создание веб-хуков для автоматического запуска конвейера

  • Получите показатели производительности конвейера

Related MCP server: Log Analyzer with MCP

Предпосылки

  • Node.js (v14 или более поздняя версия)

  • Аккаунт AWS с доступом к CodePipeline

  • Учетные данные AWS с разрешениями для CodePipeline, CloudWatch и IAM (для тегирования)

  • Windsurf IDE с помощником Cascade AI

Установка

  1. Клонируйте этот репозиторий:

git clone https://github.com/cuongdev/mcp-codepipeline-server.git
cd mcp-codepipeline-server
  1. Установить зависимости:

npm install
  1. Создайте файл .env на основе шаблона .env.example :

cp .env.example .env
  1. Обновите файл .env , указав свои учетные данные и конфигурацию AWS:

AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEY=your_secret_access_key
PORT=3000

Примечание : в целях безопасности никогда не передавайте файл .env в систему контроля версий.

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

Построить проект

npm run build

Запустить сервер

npm start

Для разработки с автоматическим перезапуском:

npm run dev

Интеграция с Windsurf

Этот сервер MCP предназначен для работы с Windsurf, что позволяет Cascade взаимодействовать с AWS CodePipeline посредством запросов на естественном языке.

Шаги настройки

  1. Убедитесь, что сервер запущен:

npm start
  1. Добавьте конфигурацию сервера в файл конфигурации Windsurf MCP по адресу ~/.codeium/windsurf/mcp_config.json :

{
   "mcpServers": {
    "codepipeline": {
      "command": "npx",
      "args": [
        "-y",
        "path/to/mcp-codepipeline-server/dist/index.js"
      ],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "your_access_key_id",
        "AWS_SECRET_ACCESS_KEY": "your_secret_access_key"
      }
    }
  }
}
  1. Создайте каталог, если он не существует:

mkdir -p ~/.codeium/windsurf
touch ~/.codeium/windsurf/mcp_config.json
  1. Перезапустите Windsurf, чтобы загрузить новую конфигурацию сервера MCP.

Использование с каскадом

После настройки вы можете взаимодействовать с AWS CodePipeline, используя естественный язык в Windsurf. Например:

  • «Список всех моих конвейеров CodePipeline»

  • «Покажите мне текущее состояние моего конвейера «производство-развертывание»»

  • «Запустить конвейер «тестовой сборки»»

  • «Получить метрики для моего конвейера «обработки данных»»

  • «Создать вебхук для моего конвейера 'frontend-deploy'»

Cascade преобразует эти запросы в соответствующие вызовы инструментов MCP.

Инструменты МКП

Управление основным трубопроводом

Название инструмента

Описание

Параметры

list_pipelines

Список всех конвейеров CodePipeline

Никто

get_pipeline_state

Получить состояние определенного трубопровода

pipelineName : Имя трубопровода

list_pipeline_executions

Список выполнений для определенного конвейера

pipelineName : Имя трубопровода

trigger_pipeline

Запустить конвейерное выполнение

pipelineName : Имя трубопровода

stop_pipeline_execution

Остановить выполнение конвейера

pipelineName : Имя конвейера executionId : Идентификатор выполнения reason : Необязательная причина остановки

Детали и показатели конвейера

Название инструмента

Описание

Параметры

get_pipeline_details

Получите полное определение трубопровода

pipelineName : Имя трубопровода

get_pipeline_execution_logs

Получить журналы выполнения конвейера

pipelineName : Имя конвейера executionId : Идентификатор выполнения

get_pipeline_metrics

Получите показатели производительности для конвейера

pipelineName : Имя конвейера period : Необязательный период метрики в секундах startTime : Необязательное время начала для метрик endTime : Необязательное время окончания для метрик

Действия и интеграции конвейера

Название инструмента

Описание

Параметры

approve_action

Одобрить или отклонить действие ручного одобрения

pipelineName : Имя конвейера stageName : Имя этапа actionName : Имя действия token : Токен одобрения approved : Логическое значение, указывающее на одобрение или отклонение comments : Необязательные комментарии

retry_stage

Повторите неудачный этап

pipelineName : Имя конвейера stageName : Имя этапа pipelineExecutionId : Идентификатор выполнения

tag_pipeline_resource

Добавить или обновить теги для ресурса конвейера

pipelineName : Имя конвейера tags : Массив пар ключ-значение для тегирования

create_pipeline_webhook

Создать вебхук для конвейера

pipelineName : Имя конвейера webhookName : Имя для webhook targetAction : Целевое действие для webhook authentication : Тип аутентификации authenticationConfiguration : Необязательные фильтры filters аутентификации : Необязательные фильтры событий

Поиск неисправностей

Распространенные проблемы

  1. Ошибка отказа в подключении :

    • Убедитесь, что сервер работает на указанном порту.

    • Проверьте, не заблокирован ли порт брандмауэром.

  2. Ошибки учетных данных AWS :

    • Проверьте свои учетные данные AWS в файле .env

    • Убедитесь, что у вашего пользователя IAM есть необходимые разрешения.

  3. Windsurf не обнаруживает сервер MCP :

    • Проверьте формат файла mcp_config.json

    • Убедитесь, что URL-адрес сервера правильный.

    • Перезапустите Windsurf после внесения изменений.

Журналы

Сервер записывает информацию в консоль. Проверьте эти журналы для устранения неполадок:

# Run with more verbose logging
DEBUG=* npm start

Примеры

Создание Webhook для интеграции с GitHub

{
  "pipelineName": "my-pipeline",
  "webhookName": "github-webhook",
  "targetAction": "Source",
  "authentication": "GITHUB_HMAC",
  "authenticationConfiguration": {
    "SecretToken": "my-secret-token"
  },
  "filters": [
    {
      "jsonPath": "$.ref",
      "matchEquals": "refs/heads/main"
    }
  ]
}

Получение показателей конвейера

{
  "pipelineName": "my-pipeline",
  "period": 86400,
  "startTime": "2025-03-10T00:00:00Z",
  "endTime": "2025-03-17T23:59:59Z"
}

Лицензия

МСК

Available Tools

12 tools
approve_actionC

Approve or reject a manual approval action

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline
stageNameYesName of the stage
actionNameYesName of the action
tokenYesApproval token
approvedYesBoolean indicating approval or rejection
commentsNoOptional comments

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. While 'approve or reject' implies a mutation, the description doesn't address permissions needed, whether the action is reversible, rate limits, or what happens upon success/failure. This leaves significant gaps for a tool that modifies pipeline states.

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 states the core purpose without any wasted words. It's appropriately sized and front-loaded, 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?

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after approval/rejection, error conditions, or how this interacts with other pipeline tools. Given the complexity of pipeline operations and lack of structured behavioral data, 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?

Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds no additional meaning about parameters beyond what's in the schema, such as explaining relationships between pipelineName, stageName, and actionName. 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 verb ('approve or reject') and the resource ('a manual approval action'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential alternatives like 'get_pipeline_state' or 'retry_stage' that might also interact with pipeline actions, so it doesn't reach the highest 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. With siblings like 'retry_stage' and 'stop_pipeline_execution' that also modify pipeline states, there's no indication of prerequisites, timing, or context for choosing 'approve_action' over other tools.

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

create_pipeline_webhookC

Create a webhook for a pipeline to enable automatic triggering

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline
webhookNameYesName for the webhook
targetActionYesThe name of the action in the pipeline that processes the webhook
authenticationYesAuthentication method for the webhook
authenticationConfigurationNoAuthentication configuration based on the authentication type
filtersNoEvent filters for the webhook

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but provides minimal behavioral insight. It states the tool creates a webhook but doesn't disclose critical traits: whether this is a mutating operation (implied but not confirmed), authentication requirements, rate limits, error conditions, or what happens on success (e.g., returns webhook ID). The phrase 'enable automatic triggering' hints at behavior but lacks specifics.

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. Every word earns its place: 'Create' (action), 'webhook' (resource), 'for a pipeline' (context), and 'to enable automatic triggering' (benefit). No 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?

For a complex mutation tool with 6 parameters (including nested objects), no annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects (permissions, side effects), output format, error handling, or usage context. The schema handles parameters well, but the description fails to compensate for missing annotation and 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%, so parameters are fully documented in the schema. The description adds no parameter-specific information beyond what's in the schema (e.g., doesn't explain relationships between 'authentication' and 'authenticationConfiguration', or how 'filters' work). Baseline 3 is appropriate as the schema handles parameter semantics adequately.

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 ('Create a webhook') and the target resource ('for a pipeline'), with the purpose 'to enable automatic triggering' providing functional context. It distinguishes from siblings like 'trigger_pipeline' (manual) or 'get_pipeline_details' (read-only), but doesn't explicitly contrast with other webhook-related tools (none present).

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 on when to use this tool versus alternatives is provided. It doesn't mention prerequisites (e.g., pipeline must exist), when webhooks are appropriate versus manual triggers, or how it differs from 'trigger_pipeline' (which appears to be manual). Usage is implied by the description but not explicitly stated.

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

get_pipeline_detailsC

Get the full definition of a specific pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline

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. It states the action ('Get') but doesn't describe whether this is a read-only operation, what permissions are required, how errors are handled, or the format of the returned definition. This leaves significant gaps for a tool that retrieves 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 no wasted words. It is front-loaded with the core action and resource, 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.

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the 'full definition' includes (e.g., configuration, stages, variables) or the response format, which is critical for a tool that retrieves detailed information. This leaves the agent with insufficient context to use the tool 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%, with the parameter 'pipelineName' fully documented in the schema. The description doesn't add any semantic details beyond what the schema provides, such as examples or constraints on the pipeline name. With high schema coverage, the baseline score of 3 is appropriate.

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 ('full definition of a specific pipeline'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_pipeline_state' or 'get_pipeline_metrics', which also retrieve pipeline information but focus on different aspects.

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. The description doesn't mention when this tool is appropriate compared to siblings like 'list_pipelines' (for overview) or 'get_pipeline_state' (for status), nor does it specify prerequisites or exclusions.

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

get_pipeline_execution_logsC

Get logs for a pipeline execution

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline
executionIdYesExecution 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 full burden for behavioral disclosure. It states what the tool does but doesn't cover important aspects like whether logs are real-time/historical, format (text/structured), size limits, pagination, or authentication requirements. This leaves significant gaps for a log retrieval 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, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a straightforward tool and gets directly to the point.

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 insufficiently complete. It doesn't explain what the logs contain, their format, or any limitations. For a tool that retrieves potentially complex execution logs, more context about the return value 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?

The input schema has 100% description coverage, with both parameters clearly documented. The description doesn't add any additional parameter semantics beyond what the schema provides, so it meets the baseline for adequate but unenhanced 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 verb ('Get') and resource ('logs for a pipeline execution'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_pipeline_details' or 'list_pipeline_executions' beyond the specific resource type, which prevents 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. It doesn't mention prerequisites, timing considerations, or how it differs from other pipeline-related tools in the sibling list, leaving the agent to infer usage context.

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

get_pipeline_metricsC

Get performance metrics for a pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline
periodNoTime period in seconds for the metrics (default: 86400 - 1 day)
startTimeNoStart time for metrics in ISO format (default: 1 week ago)
endTimeNoEnd time for metrics in ISO format (default: now)

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. It states 'Get performance metrics', implying a read-only operation, but does not specify if this requires authentication, has rate limits, returns real-time or historical data, or what format the metrics are in. This leaves significant gaps in understanding the tool's behavior beyond basic purpose.

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 any unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly, which is ideal for conciseness in tool descriptions.

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 metrics tool with 4 parameters and no output schema or annotations, the description is incomplete. It does not explain what 'performance metrics' entail (e.g., throughput, latency), how results are structured, or any behavioral traits like data freshness or access controls, leaving the agent with insufficient context for 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?

The input schema has 100% description coverage, with clear parameter details like defaults for 'period', 'startTime', and 'endTime'. The description adds no additional parameter semantics beyond what the schema provides, such as explaining what 'performance metrics' include or how parameters interact. This meets the baseline for high schema coverage but does not 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 verb 'Get' and the resource 'performance metrics for a pipeline', making the purpose specific and understandable. However, it does not distinguish this tool from potential siblings like 'get_pipeline_details' or 'get_pipeline_state', which might also retrieve pipeline-related data, leaving some ambiguity in 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. With sibling tools like 'get_pipeline_details' and 'get_pipeline_state', it does not specify if this is for performance data only, nor does it mention prerequisites or exclusions, leaving the agent to infer usage from the name alone.

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

get_pipeline_stateC

Get the state of a specific pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline

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. It only states the action without any details on permissions, rate limits, error conditions, or what the return value includes (e.g., status, timestamps, errors). This is inadequate for a tool that likely returns operational 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, direct sentence with no wasted words. It is front-loaded and efficiently conveys the core purpose, though it lacks depth due to its brevity.

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 'state' entails (e.g., running, failed, paused) or provide any context on the response structure, which is critical for an agent to use this tool effectively in a pipeline management system.

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 'pipelineName' clearly documented in the schema. The description adds no additional meaning beyond the schema, such as format examples or constraints, but the schema provides sufficient baseline information.

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 states the action ('Get') and target ('state of a specific pipeline'), which is clear but basic. It doesn't differentiate from siblings like 'get_pipeline_details' or 'get_pipeline_metrics', leaving ambiguity about what 'state' specifically refers to versus other pipeline attributes.

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. With siblings like 'get_pipeline_details' and 'get_pipeline_metrics', the description lacks any context on how 'state' differs from 'details' or 'metrics', leaving 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.

list_pipeline_executionsC

List executions for a specific pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline

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. It states the action ('List executions') but does not describe traits like pagination, sorting, filtering options, rate limits, authentication needs, or what data is returned (e.g., list of execution objects). 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 front-loaded with the core action ('List executions') and specifies the scope ('for a specific pipeline'), making it easy to parse quickly. There is no wasted verbiage or redundancy.

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 listing executions (which may involve multiple attributes like status, timestamps, IDs) and the lack of annotations and output schema, the description is incomplete. It does not explain what information is returned, how results are structured, or any behavioral aspects like limits or ordering. For a tool with no structured output documentation, the description should provide more context to be fully 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%, with the parameter 'pipelineName' fully documented in the schema as 'Name of the pipeline'. The description adds no additional meaning beyond this, such as format examples (e.g., case sensitivity) or constraints (e.g., must be an existing pipeline). With high schema coverage, the baseline score of 3 is appropriate, as the description does not compensate but also does not 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 verb ('List') and resource ('executions for a specific pipeline'), making the purpose understandable. It distinguishes from siblings like 'list_pipelines' (which lists pipelines rather than executions) and 'get_pipeline_execution_logs' (which gets logs for a specific execution). However, it lacks specificity about what 'executions' entails (e.g., status, timestamps, IDs), keeping it from 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. It does not mention prerequisites (e.g., needing a valid pipeline name), exclusions (e.g., not for real-time monitoring), or comparisons to siblings like 'get_pipeline_state' (which might show current state) or 'list_pipelines' (for broader listing). Usage is implied by the name but not explicitly stated.

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

list_pipelinesB

List all CodePipeline pipelines

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?

No annotations are provided, so the description carries full burden. It states a read operation ('List'), implying it's non-destructive, but doesn't disclose behavioral traits like pagination, rate limits, authentication needs, or what 'all' entails (e.g., across regions/accounts). For a list tool with zero annotation coverage, this is inadequate.

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 no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place.

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, no output schema, and multiple sibling tools, the description is incomplete. It doesn't explain what 'List all' returns (e.g., names, ARNs, summaries), how results are structured, or any limitations. For a tool in this context, more 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.

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 doesn't add parameter details, which is appropriate here. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.

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 CodePipeline pipelines'), making the purpose immediately understandable. However, it doesn't differentiate this from sibling tools like 'list_pipeline_executions' or 'get_pipeline_details', which would require more specificity about scope or output format.

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. With siblings like 'get_pipeline_details' (for specific pipelines) and 'list_pipeline_executions' (for executions rather than pipelines), the description lacks any context about use cases, prerequisites, or comparisons.

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

retry_stageC

Retry a failed stage

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline
stageNameYesName of the stage
pipelineExecutionIdYesExecution ID

TDQS

C2.7/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 the action without disclosing behavioral traits such as permissions needed, whether it's idempotent, rate limits, or what happens on success/failure (e.g., does it restart the entire pipeline?). It mentions 'failed stage' but doesn't clarify if this applies to any failure type or has constraints.

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 ('Retry a failed stage'), which is front-loaded and wastes no words. It efficiently conveys the core purpose without unnecessary elaboration, 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 (retrying implies change) with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects, error handling, and what the tool returns, leaving significant gaps for an agent to understand how to use it effectively in context with sibling tools.

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 (pipelineName, stageName, pipelineExecutionId) adequately. The description adds no additional meaning beyond what the schema provides, such as explaining relationships between parameters or usage examples, meeting the baseline for high coverage.

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 'Retry a failed stage' clearly states the action (retry) and target (failed stage), but it's vague about what constitutes a 'stage' and doesn't distinguish this tool from potential sibling operations like 'stop_pipeline_execution' or 'trigger_pipeline'. It specifies the resource but lacks detail on scope or mechanism.

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 'stop_pipeline_execution' or 'trigger_pipeline', nor does it mention prerequisites (e.g., the stage must be in a failed state). The description implies usage only for failed stages but offers no explicit context or exclusions.

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

stop_pipeline_executionC

Stop a pipeline execution

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline
executionIdYesExecution ID
reasonNoOptional reason for stopping

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. 'Stop a pipeline execution' implies a destructive mutation, but it doesn't specify whether this action is reversible, requires specific permissions, has side effects, or provides confirmation of success. For a mutation tool with zero annotation coverage, this is a significant gap 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 a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration, 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 destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, return values, error handling, or how it fits with sibling tools. For a tool that stops executions, more context is needed to ensure safe and correct usage.

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 all parameters clearly documented in the input schema. The description doesn't add any meaning beyond what the schema provides, such as explaining parameter relationships or usage nuances. 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.

Purpose4/5

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

The description 'Stop a pipeline execution' clearly states the action (stop) and target resource (pipeline execution) with a specific verb. However, it doesn't distinguish this tool from potential alternatives like 'retry_stage' or 'get_pipeline_state' among the sibling tools, which would require more specific 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. With sibling tools like 'retry_stage' and 'get_pipeline_state' available, there's no indication of when stopping is appropriate versus retrying or checking state, nor any prerequisites or exclusions mentioned.

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

tag_pipeline_resourceC

Add or update tags for a pipeline resource

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline
tagsYesList of tags to add or update

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 for behavioral disclosure. It mentions 'Add or update' which implies mutation, but doesn't specify permissions needed, whether tags are overwritten or merged, error conditions, or what happens on success. This leaves significant behavioral 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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple tagging operation and front-loads 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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after tagging (e.g., success response, error handling), nor does it provide context about tag limitations or system behavior. Given the complexity of modifying resources, more completeness 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 both parameters well-documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema, so it meets the baseline score of 3 for adequate coverage without adding 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 ('Add or update') and resource ('tags for a pipeline resource'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools that might also manipulate pipeline resources or tags, which prevents 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 'create_pipeline_webhook' or 'trigger_pipeline', nor does it mention prerequisites or constraints. It simply states what the tool does 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.

trigger_pipelineC

Trigger a pipeline execution

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineNameYesName of the pipeline

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. 'Trigger a pipeline execution' implies a write/mutation operation, but it doesn't specify permissions required, whether it's idempotent, rate limits, or what happens on success/failure. This leaves significant gaps for an agent to understand the tool's 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 a single, clear sentence with zero wasted words. It's appropriately sized for a simple tool and front-loaded with the essential action, making it highly efficient.

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 triggering a pipeline (a mutation with no annotations or output schema), the description is incomplete. It doesn't explain what 'trigger' entails (e.g., starts execution, may have side effects), expected outcomes, or error conditions, leaving the agent with insufficient 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?

The input schema has 100% description coverage, with the single parameter 'pipelineName' documented in the schema. The description adds no additional meaning about parameters beyond what the schema provides, so it 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.

Purpose4/5

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

The description clearly states the verb ('trigger') and resource ('pipeline execution'), making the purpose immediately understandable. However, it doesn't distinguish this from sibling tools like 'retry_stage' or 'stop_pipeline_execution' that also affect pipeline execution, so it lacks 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., pipeline must exist), exclusions (e.g., cannot trigger if already running), or comparisons to siblings like 'retry_stage' or 'create_pipeline_webhook'.

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. 12 tool updates
    • First observedapprove_action
    • First observedcreate_pipeline_webhook
    • First observedget_pipeline_details
    • First observedget_pipeline_execution_logs
    • First observedget_pipeline_metrics
    • First observedget_pipeline_state
    • First observedlist_pipeline_executions
    • First observedlist_pipelines
    • First observedretry_stage
    • First observedstop_pipeline_execution
    • First observedtag_pipeline_resource
    • First observedtrigger_pipeline

TDQS

B3.4/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific CodePipeline operations with no ambiguity. For example, get_pipeline_details retrieves definitions while get_pipeline_state shows status, and list_pipeline_executions enumerates runs versus get_pipeline_execution_logs fetches logs. The descriptions reinforce non-overlapping functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case throughout, such as list_pipelines, get_pipeline_details, and stop_pipeline_execution. The naming is predictable and readable, making it easy for agents to infer functionality from the names alone.

Tool Count5/5

With 12 tools, the server is well-scoped for managing AWS CodePipeline operations. Each tool earns its place by covering essential actions like listing, retrieving, triggering, stopping, and monitoring pipelines, without being overly sparse or bloated for the domain.

Completeness4/5

The tool set provides strong coverage for core pipeline workflows, including CRUD-like operations (list, get, trigger, stop) and lifecycle management (approve, retry, tag). A minor gap is the lack of tools for creating or deleting pipelines, which might require workarounds, but the existing surface supports most agent tasks effectively.

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

  • The Buildkite MCP server exposes Buildkite product data (pipelines, builds, jobs, and test data) to AI tools, editors, and agents through the Model Context Protocol. It provides capabilities including pipeline creation and management, build monitoring with specialized tools like 'wait_for_build', efficient log querying using Apache Parquet conversion and caching, and OAuth-based authentication for both read-write and read-only access to Buildkite's REST API.

  • The AWS Knowledge MCP server is a fully managed remote Model Context Protocol server that provides real-time access to official AWS content in an LLM-compatible format. It offers structured access to AWS documentation, code samples, blog posts, What's New announcements, Well-Architected best practices, and regional availability information for AWS APIs and CloudFormation resources. Key capabilities include searching and reading documentation in markdown format, getting content recommendations, listing AWS regions, and checking regional availability for services and features.

  • A Model Context Protocol server for Wix AI tools

  • MCP server for generating rough-draft project plans from natural-language prompts.

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    A Model Context Protocol server allowing Claude AI to interact with AWS resources through natural language, enabling users to query and manage AWS services without using the traditional AWS Console or CLI.
    3
    6
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    A Model Context Protocol server that provides AI assistants access to AWS CloudWatch Logs, enabling browsing, searching, summarizing, and correlating logs across multiple AWS services.
    167
    Apache 2.0
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A Model Context Protocol (MCP) server that enables AI tools like chatbots to interact with and control Jenkins, allowing users to trigger jobs, check build statuses, and perform other Jenkins operations through natural language.
    -

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/cuongdev/mcp-codepipeline-server'

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