AWS CodePipeline MCP Server
AWS CodePipeline MCP 서버
AWS CodePipeline과 통합되는 모델 컨텍스트 프로토콜(MCP) 서버로, Windsurf 및 Cascade를 통해 파이프라인을 관리할 수 있습니다. 이 서버는 AWS CodePipeline 서비스와 상호 작용하기 위한 표준화된 인터페이스를 제공합니다.
저자: Cuong T Nguyen
특징
모든 파이프라인 나열
파이프라인 상태 및 자세한 파이프라인 정의 가져오기
파이프라인 실행 목록
수동 승인 작업 승인 또는 거부
실패한 단계를 다시 시도하세요
파이프라인 실행 트리거
파이프라인 실행 로그 보기
파이프라인 실행 중지
파이프라인 리소스 태그
자동 파이프라인 트리거를 위한 웹훅 생성
파이프라인 성능 지표 가져오기
Related MCP server: Log Analyzer with MCP
필수 조건
Node.js(v14 이상)
CodePipeline 액세스 권한이 있는 AWS 계정
CodePipeline, CloudWatch 및 IAM(태그 지정용)에 대한 권한이 있는 AWS 자격 증명
Cascade AI 어시스턴트가 포함된 Windsurf IDE
설치
이 저장소를 복제하세요:
지엑스피1
종속성 설치:
npm install.env.example템플릿을 기반으로.env파일을 만듭니다.
cp .env.example .envAWS 자격 증명과 구성으로
.env파일을 업데이트합니다.
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 devWindsurf와의 통합
이 MCP 서버는 Windsurf와 함께 작동하도록 설계되었으며, Cascade가 자연어 요청을 통해 AWS CodePipeline과 상호 작용할 수 있도록 합니다.
설정 단계
서버가 실행 중인지 확인하세요.
npm start~/.codeium/windsurf/mcp_config.json에 있는 Windsurf MCP 구성 파일에 서버 구성을 추가합니다.
{
"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"
}
}
}
}디렉토리가 없으면 생성합니다.
mkdir -p ~/.codeium/windsurf
touch ~/.codeium/windsurf/mcp_config.json새로운 MCP 서버 구성을 로드하려면 Windsurf를 다시 시작하세요.
Cascade와 함께 사용
구성이 완료되면 Windsurf에서 자연어를 사용하여 AWS CodePipeline과 상호 작용할 수 있습니다. 예:
"내 모든 CodePipeline 파이프라인 나열"
"'생산-배포' 파이프라인의 현재 상태를 보여주세요"
"테스트-빌드 파이프라인을 트리거합니다"
"내 '데이터 처리' 파이프라인에 대한 메트릭 가져오기"
"프런트엔드 배포 파이프라인에 대한 웹훅을 만듭니다."
Cascade는 이러한 요청을 적절한 MCP 도구 호출로 변환합니다.
MCP 도구
핵심 파이프라인 관리
도구 이름 | 설명 | 매개변수 |
| 모든 CodePipeline 파이프라인 나열 | 없음 |
| 특정 파이프라인의 상태 가져오기 |
|
| 특정 파이프라인에 대한 실행 목록 |
|
| 파이프라인 실행 트리거 |
|
| 파이프라인 실행 중지 |
|
파이프라인 세부 정보 및 메트릭
도구 이름 | 설명 | 매개변수 |
| 파이프라인의 전체 정의를 알아보세요 |
|
| 파이프라인 실행에 대한 로그 가져오기 |
|
| 파이프라인에 대한 성능 측정항목 가져오기 |
|
파이프라인 작업 및 통합
도구 이름 | 설명 | 매개변수 |
| 수동 승인 작업 승인 또는 거부 |
|
| 실패한 스테이지를 다시 시도하세요 |
|
| 파이프라인 리소스에 대한 태그 추가 또는 업데이트 |
|
| 파이프라인에 대한 웹훅을 만듭니다. |
|
문제 해결
일반적인 문제
연결 거부 오류 :
서버가 지정된 포트에서 실행 중인지 확인하세요.
방화벽으로 포트가 차단되어 있는지 확인하세요
AWS 자격 증명 오류 :
.env파일에서 AWS 자격 증명을 확인하세요.IAM 사용자에게 필요한 권한이 있는지 확인하세요.
Windsurf가 MCP 서버를 감지하지 못합니다 .
mcp_config.json파일 형식을 확인하세요서버 URL이 올바른지 확인하세요
변경 후 Windsurf를 다시 시작하세요
로그
서버는 콘솔에 정보를 기록합니다. 문제 해결을 위해 다음 로그를 확인하세요.
# Run with more verbose logging
DEBUG=* npm start예시
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 toolsapprove_actionC
Approve or reject a manual approval action
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline | |
| stageName | Yes | Name of the stage | |
| actionName | Yes | Name of the action | |
| token | Yes | Approval token | |
| approved | Yes | Boolean indicating approval or rejection | |
| comments | No | Optional comments |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline | |
| webhookName | Yes | Name for the webhook | |
| targetAction | Yes | The name of the action in the pipeline that processes the webhook | |
| authentication | Yes | Authentication method for the webhook | |
| authenticationConfiguration | No | Authentication configuration based on the authentication type | |
| filters | No | Event filters for the webhook |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline | |
| executionId | Yes | Execution ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline | |
| period | No | Time period in seconds for the metrics (default: 86400 - 1 day) | |
| startTime | No | Start time for metrics in ISO format (default: 1 week ago) | |
| endTime | No | End time for metrics in ISO format (default: now) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline | |
| stageName | Yes | Name of the stage | |
| pipelineExecutionId | Yes | Execution ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline | |
| executionId | Yes | Execution ID | |
| reason | No | Optional reason for stopping |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline | |
| tags | Yes | List of tags to add or update |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineName | Yes | Name of the pipeline |
TDQS
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.
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.
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.
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.
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.
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.
12 tool updates
- First observed
approve_action - First observed
create_pipeline_webhook - First observed
get_pipeline_details - First observed
get_pipeline_execution_logs - First observed
get_pipeline_metrics - First observed
get_pipeline_state - First observed
list_pipeline_executions - First observed
list_pipelines - First observed
retry_stage - First observed
stop_pipeline_execution - First observed
tag_pipeline_resource - First observed
trigger_pipeline
TDQS
Scored across 12 tools
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.
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.
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.
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
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
- FlicenseCqualityDmaintenanceA 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.36-

Log Analyzer with MCPofficial
AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that provides AI assistants access to AWS CloudWatch Logs, enabling browsing, searching, summarizing, and correlating logs across multiple AWS services.169Apache 2.0- AlicenseNot gradedqualityNot gradedmaintenanceA 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.MIT
- AlicenseNot gradedqualityNot gradedmaintenanceProvides a chat interface with natural language processing to deploy and manage AWS resources through an integrated Model Context Protocol (MCP) server.2-