AWS CodePipeline MCP Server

by cuongdev
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Manages environment variables for the MCP server, including AWS credentials and configuration settings.

  • Used for cloning the MCP server repository during the installation process.

  • Enables creation of webhooks for GitHub integration with AWS CodePipeline, supporting features like triggering pipelines based on GitHub events such as commits to specific branches.

Servidor MCP de AWS CodePipeline

Este es un servidor de Protocolo de Contexto de Modelo (MCP) que se integra con AWS CodePipeline, lo que le permite administrar sus pipelines mediante Windsurf y Cascade. El servidor proporciona una interfaz estandarizada para interactuar con los servicios de AWS CodePipeline.

Autor: Cuong T Nguyen

Características

  • Listar todas las tuberías
  • Obtener el estado de la tubería y definiciones detalladas de la tubería
  • Lista de ejecuciones de pipeline
  • Aprobar o rechazar acciones de aprobación manual
  • Reintentar etapas fallidas
  • Ejecuciones de canalización de activación
  • Ver registros de ejecución de canalizaciones
  • Detener las ejecuciones de tuberías
  • Recursos de canalización de etiquetas
  • Crear webhooks para la activación automática de pipelines
  • Obtenga métricas de rendimiento del pipeline

Prerrequisitos

  • Node.js (v14 o posterior)
  • Cuenta de AWS con acceso a CodePipeline
  • Credenciales de AWS con permisos para CodePipeline, CloudWatch e IAM (para etiquetado)
  • IDE de Windsurf con asistente de IA en cascada

Instalación

  1. Clonar este repositorio:
git clone https://github.com/cuongdev/mcp-codepipeline-server.git cd mcp-codepipeline-server
  1. Instalar dependencias:
npm install
  1. Cree un archivo .env basado en la plantilla .env.example :
cp .env.example .env
  1. Actualice el archivo .env con sus credenciales y configuración de AWS:
AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=your_access_key_id AWS_SECRET_ACCESS_KEY=your_secret_access_key PORT=3000

Nota : por seguridad, nunca envíe su archivo .env al control de versiones.

Uso

Construir el proyecto

npm run build

Iniciar el servidor

npm start

Para desarrollo con reinicio automático:

npm run dev

Integración con Windsurf

Este servidor MCP está diseñado para funcionar con Windsurf, lo que permite que Cascade interactúe con AWS CodePipeline a través de solicitudes de lenguaje natural.

Pasos de configuración

  1. Asegúrese de que el servidor esté ejecutándose:
npm start
  1. Agregue la configuración del servidor a su archivo de configuración Windsurf MCP en ~/.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. Crea el directorio si no existe:
mkdir -p ~/.codeium/windsurf touch ~/.codeium/windsurf/mcp_config.json
  1. Reinicie Windsurf para cargar la nueva configuración del servidor MCP

Uso con Cascade

Una vez configurado, puede interactuar con AWS CodePipeline usando lenguaje natural en Windsurf. Por ejemplo:

  • "Enumerar todos mis pipelines de CodePipeline"
  • "Muéstrame el estado actual de mi flujo de producción-implementación"
  • Activar el flujo de trabajo de prueba y compilación
  • Obtener métricas para mi flujo de trabajo de 'procesamiento de datos'
  • "Crear un webhook para mi pipeline 'frontend-deploy'"

Cascade traducirá estas solicitudes en las llamadas de herramientas MCP adecuadas.

Herramientas MCP

Gestión de tuberías centrales

Nombre de la herramientaDescripciónParámetros
list_pipelinesListar todos los pipelines de CodePipelineNinguno
get_pipeline_stateObtener el estado de una tubería específicapipelineName : Nombre del pipeline
list_pipeline_executionsLista de ejecuciones para una canalización específicapipelineName : Nombre del pipeline
trigger_pipelineActivar la ejecución de una canalizaciónpipelineName : Nombre del pipeline
stop_pipeline_executionDetener la ejecución de una canalizaciónpipelineName : Nombre de la canalización executionId : ID de ejecución reason : Motivo opcional para detenerse

Detalles y métricas del pipeline

Nombre de la herramientaDescripciónParámetros
get_pipeline_detailsObtenga la definición completa de una tuberíapipelineName : Nombre del pipeline
get_pipeline_execution_logsObtener registros de la ejecución de una canalizaciónpipelineName : Nombre de la canalización executionId : ID de ejecución
get_pipeline_metricsObtener métricas de rendimiento para una canalizaciónpipelineName : Nombre del pipeline period : Periodo de métrica opcional en segundos startTime : Hora de inicio opcional para las métricas endTime : Hora de finalización opcional para las métricas

Acciones e integraciones de pipeline

Nombre de la herramientaDescripciónParámetros
approve_actionAprobar o rechazar una acción de aprobación manualpipelineName : Nombre del pipeline stageName : Nombre de la etapa actionName : Nombre de la acción token : Token de aprobación approved : Booleano que indica aprobación o rechazo comments : Comentarios opcionales
retry_stageReintentar una etapa fallidapipelineName : Nombre de la canalización stageName : Nombre de la etapa pipelineExecutionId : ID de ejecución
tag_pipeline_resourceAgregar o actualizar etiquetas para un recurso de canalizaciónpipelineName : Nombre de la canalización tags : Matriz de pares clave-valor para etiquetado
create_pipeline_webhookCrear un webhook para una canalizaciónpipelineName : Nombre de la canalización webhookName : Nombre del webhook targetAction : Acción de destino para el webhook authentication : Tipo de autenticación authenticationConfiguration : Configuración de autenticación opcional filters : Filtros de eventos opcionales

Solución de problemas

Problemas comunes

  1. Error de conexión rechazada :
    • Asegúrese de que el servidor se esté ejecutando en el puerto especificado
    • Compruebe si el puerto está bloqueado por un firewall
  2. Errores de credenciales de AWS :
    • Verifique sus credenciales de AWS en el archivo .env
    • Asegúrese de que su usuario de IAM tenga los permisos necesarios
  3. Windsurf no detecta el servidor MCP :
    • Verifique el formato del archivo mcp_config.json
    • Asegúrese de que la URL del servidor sea correcta
    • Reiniciar Windsurf después de realizar cambios

Registros

El servidor registra información en la consola. Consulte estos registros para solucionar problemas:

# Run with more verbose logging DEBUG=* npm start

Ejemplos

Creación de un webhook para la integración de GitHub

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

Obtención de métricas de pipeline

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

Licencia

ISC

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor de protocolo de contexto de modelo que se integra con AWS CodePipeline, lo que permite a los usuarios administrar canalizaciones a través de Windsurf y Cascade utilizando comandos de lenguaje natural.

  1. Features
    1. Prerequisites
      1. Installation
        1. Usage
          1. Build the project
          2. Start the server
        2. Integration with Windsurf
          1. Setup Steps
          2. Using with Cascade
        3. MCP Tools
          1. Core Pipeline Management
          2. Pipeline Details and Metrics
          3. Pipeline Actions and Integrations
        4. Troubleshooting
          1. Common Issues
          2. Logs
        5. Examples
          1. Creating a Webhook for GitHub Integration
          2. Getting Pipeline Metrics
        6. License
          ID: urm7jwtady