{"id":26649110,"url":"https://github.com/cuongdev/mcp-codepipeline-server","last_synced_at":"2025-04-11T03:02:26.528Z","repository":{"id":283434763,"uuid":"950104539","full_name":"cuongdev/mcp-codepipeline-server","owner":"cuongdev","description":"This is a Model Context Protocol (MCP) server that integrates with AWS CodePipeline, allowing you to manage your pipelines through Windsurf and Cascade. The server provides a standardized interface for interacting with AWS CodePipeline services.","archived":false,"fork":false,"pushed_at":"2025-03-20T07:34:28.000Z","size":62,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T05:03:07.508Z","etag":null,"topics":["aws","aws-codepipeline","codepipline","mcp-server"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cuongdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-17T16:29:50.000Z","updated_at":"2025-03-20T07:34:31.000Z","dependencies_parsed_at":"2025-03-20T08:34:21.569Z","dependency_job_id":"d93056ec-599e-40fb-9e94-b8b0486f2a6a","html_url":"https://github.com/cuongdev/mcp-codepipeline-server","commit_stats":null,"previous_names":["cuongdev/mcp-codepipeline-server"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cuongdev%2Fmcp-codepipeline-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cuongdev%2Fmcp-codepipeline-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cuongdev%2Fmcp-codepipeline-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cuongdev%2Fmcp-codepipeline-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cuongdev","download_url":"https://codeload.github.com/cuongdev/mcp-codepipeline-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248333605,"owners_count":21086199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-codepipeline","codepipline","mcp-server"],"created_at":"2025-03-25T00:48:13.002Z","updated_at":"2025-04-11T03:02:26.495Z","avatar_url":"https://github.com/cuongdev.png","language":"TypeScript","funding_links":[],"categories":["Cloud Platforms","DevOps and CI/CD","⚙️ DevOps"],"sub_categories":["How to Submit"],"readme":"# AWS CodePipeline MCP Server\n\nThis is a Model Context Protocol (MCP) server that integrates with AWS CodePipeline, allowing you to manage your pipelines through Windsurf and Cascade. The server provides a standardized interface for interacting with AWS CodePipeline services.\n\n**Author:** Cuong T Nguyen\n\n## Features\n\n- List all pipelines\n- Get pipeline state and detailed pipeline definitions\n- List pipeline executions\n- Approve or reject manual approval actions\n- Retry failed stages\n- Trigger pipeline executions\n- View pipeline execution logs\n- Stop pipeline executions\n- Tag pipeline resources\n- Create webhooks for automatic pipeline triggering\n- Get pipeline performance metrics\n\n## Prerequisites\n\n- Node.js (v14 or later)\n- AWS account with CodePipeline access\n- AWS credentials with permissions for CodePipeline, CloudWatch, and IAM (for tagging)\n- Windsurf IDE with Cascade AI assistant\n\n## Installation\n\n1. Clone this repository:\n\n```bash\ngit clone https://github.com/cuongdev/mcp-codepipeline-server.git\ncd mcp-codepipeline-server\n```\n\n2. Install dependencies:\n\n```bash\nnpm install\n```\n\n3. Create a `.env` file based on the `.env.example` template:\n\n```bash\ncp .env.example .env\n```\n\n4. Update the `.env` file with your AWS credentials and configuration:\n\n```\nAWS_REGION=us-east-1\nAWS_ACCESS_KEY_ID=your_access_key_id\nAWS_SECRET_ACCESS_KEY=your_secret_access_key\nPORT=3000\n```\n\n\u003e **Note**: For security, never commit your `.env` file to version control.\n\n## Usage\n\n### Build the project\n\n```bash\nnpm run build\n```\n\n### Start the server\n\n```bash\nnpm start\n```\n\nFor development with auto-restart:\n\n```bash\nnpm run dev\n```\n\n## Integration with Windsurf\n\nThis MCP server is designed to work with Windsurf, allowing Cascade to interact with AWS CodePipeline through natural language requests.\n\n### Setup Steps\n\n1. Make sure the server is running:\n\n```bash\nnpm start\n```\n\n2. Add the server configuration to your Windsurf MCP config file at `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n   \"mcpServers\": {\n    \"codepipeline\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"path/to/mcp-codepipeline-server/dist/index.js\"\n      ],\n      \"env\": {\n        \"AWS_REGION\": \"us-east-1\",\n        \"AWS_ACCESS_KEY_ID\": \"your_access_key_id\",\n        \"AWS_SECRET_ACCESS_KEY\": \"your_secret_access_key\"\n      }\n    }\n  }\n}\n```\n\n3. Create the directory if it doesn't exist:\n\n```bash\nmkdir -p ~/.codeium/windsurf\ntouch ~/.codeium/windsurf/mcp_config.json\n```\n\n4. Restart Windsurf to load the new MCP server configuration\n\n### Using with Cascade\n\nOnce configured, you can interact with AWS CodePipeline using natural language in Windsurf. For example:\n\n- \"List all my CodePipeline pipelines\"\n- \"Show me the current state of my 'production-deploy' pipeline\"\n- \"Trigger the 'test-build' pipeline\"\n- \"Get metrics for my 'data-processing' pipeline\"\n- \"Create a webhook for my 'frontend-deploy' pipeline\"\n\nCascade will translate these requests into the appropriate MCP tool calls.\n\n## MCP Tools\n\n### Core Pipeline Management\n\n| Tool Name | Description | Parameters |\n|-----------|-------------|------------|\n| `list_pipelines` | List all CodePipeline pipelines | None |\n| `get_pipeline_state` | Get the state of a specific pipeline | `pipelineName`: Name of the pipeline |\n| `list_pipeline_executions` | List executions for a specific pipeline | `pipelineName`: Name of the pipeline |\n| `trigger_pipeline` | Trigger a pipeline execution | `pipelineName`: Name of the pipeline |\n| `stop_pipeline_execution` | Stop a pipeline execution | `pipelineName`: Name of the pipeline\u003cbr\u003e`executionId`: Execution ID\u003cbr\u003e`reason`: Optional reason for stopping |\n\n### Pipeline Details and Metrics\n\n| Tool Name | Description | Parameters |\n|-----------|-------------|------------|\n| `get_pipeline_details` | Get the full definition of a pipeline | `pipelineName`: Name of the pipeline |\n| `get_pipeline_execution_logs` | Get logs for a pipeline execution | `pipelineName`: Name of the pipeline\u003cbr\u003e`executionId`: Execution ID |\n| `get_pipeline_metrics` | Get performance metrics for a pipeline | `pipelineName`: Name of the pipeline\u003cbr\u003e`period`: Optional metric period in seconds\u003cbr\u003e`startTime`: Optional start time for metrics\u003cbr\u003e`endTime`: Optional end time for metrics |\n\n### Pipeline Actions and Integrations\n\n| Tool Name | Description | Parameters |\n|-----------|-------------|------------|\n| `approve_action` | Approve or reject a manual approval action | `pipelineName`: Name of the pipeline\u003cbr\u003e`stageName`: Name of the stage\u003cbr\u003e`actionName`: Name of the action\u003cbr\u003e`token`: Approval token\u003cbr\u003e`approved`: Boolean indicating approval or rejection\u003cbr\u003e`comments`: Optional comments |\n| `retry_stage` | Retry a failed stage | `pipelineName`: Name of the pipeline\u003cbr\u003e`stageName`: Name of the stage\u003cbr\u003e`pipelineExecutionId`: Execution ID |\n| `tag_pipeline_resource` | Add or update tags for a pipeline resource | `pipelineName`: Name of the pipeline\u003cbr\u003e`tags`: Array of key-value pairs for tagging |\n| `create_pipeline_webhook` | Create a webhook for a pipeline | `pipelineName`: Name of the pipeline\u003cbr\u003e`webhookName`: Name for the webhook\u003cbr\u003e`targetAction`: Target action for the webhook\u003cbr\u003e`authentication`: Authentication type\u003cbr\u003e`authenticationConfiguration`: Optional auth config\u003cbr\u003e`filters`: Optional event filters |\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Connection refused error**:\n   - Ensure the server is running on the specified port\n   - Check if the port is blocked by a firewall\n\n2. **AWS credential errors**:\n   - Verify your AWS credentials in the `.env` file\n   - Ensure your IAM user has the necessary permissions\n\n3. **Windsurf not detecting the MCP server**:\n   - Check the `mcp_config.json` file format\n   - Ensure the server URL is correct\n   - Restart Windsurf after making changes\n\n### Logs\n\nThe server logs information to the console. Check these logs for troubleshooting:\n\n```bash\n# Run with more verbose logging\nDEBUG=* npm start\n```\n\n## Examples\n\n### Creating a Webhook for GitHub Integration\n\n```json\n{\n  \"pipelineName\": \"my-pipeline\",\n  \"webhookName\": \"github-webhook\",\n  \"targetAction\": \"Source\",\n  \"authentication\": \"GITHUB_HMAC\",\n  \"authenticationConfiguration\": {\n    \"SecretToken\": \"my-secret-token\"\n  },\n  \"filters\": [\n    {\n      \"jsonPath\": \"$.ref\",\n      \"matchEquals\": \"refs/heads/main\"\n    }\n  ]\n}\n```\n\n### Getting Pipeline Metrics\n\n```json\n{\n  \"pipelineName\": \"my-pipeline\",\n  \"period\": 86400,\n  \"startTime\": \"2025-03-10T00:00:00Z\",\n  \"endTime\": \"2025-03-17T23:59:59Z\"\n}\n```\n\n## License\n\nISC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcuongdev%2Fmcp-codepipeline-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcuongdev%2Fmcp-codepipeline-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcuongdev%2Fmcp-codepipeline-server/lists"}