Skip to main content
Glama
AWS Resource MCP

AWS Resource MCP

AWS Resource MCP

AWS 계정의 실제 리소스를 읽기 전용으로 조회하기 위해 Python으로 개발된 로컬 MCP 서버입니다.

상태

9단계가 구현되었습니다. 서버는 통합 인벤토리, 보수적인 활동 분석, 명시적 진단, 경제 분석, 실제 작업 로그에서 생성된 최소 권한 IAM 정책을 결합합니다.

Related MCP server: aws-mcp-server

예상 범위

  • stdio를 통한 로컬 MCP 전송.

  • 기본 리전: eu-west-1.

  • AWS 조회는 전적으로 읽기 전용이며 최소 권한을 따릅니다.

  • 사용 가능한 도구: health_check(), listar_recursos_aws(), analizar_actividad_recursos(), diagnosticar_cobertura_aws(), analizar_riesgo_costes(), revisar_free_tier(), consultar_costes_aws().

  • Cost Explorer는 정확한 요청에 대한 임시 동의를 받을 때까지 차단됩니다.

  • AWS 배포 또는 CD 없음.

안정성

10단계에는 로컬 통합 테스트, 계약, 보안, 성능 및 MCP 프로토콜 테스트가 포함됩니다. 인벤토리는 또한 각 SDK 호출 전에 AWS_MCP_MAX_REQUESTS_PER_TOOL(기본값 250)을 적용합니다. 예산이 소진되면 결과를 보존하고 partial_request_budget_exhausted를 반환합니다.

지속적 통합은 각 풀 리퀘스트에서 포맷, 린트, 컴파일, 결정적 IAM 검증 및 로컬 테스트를 실행합니다. AWS 자격 증명을 구성하지 않으며 AWS 작업을 실행하지 않습니다.

Codex와 함께 사용하기

Codex가 기본 클라이언트입니다. stdio를 통해 패키지 진입점 uv run aws-resource-mcp을 사용하고, 저장소 외부에서 AWS 프로필을 구성한 다음 "eu-west-1에 어떤 리소스가 있나요?"와 같은 자연어 질문으로 시작하세요. 응답이 partial_pending_consent인 경우 Codex는 정확한 작업을 설명하고 명시적 승인을 기다려야 하며, 영구 동의를 만들지 않습니다. Codex 통합 및 데모를 참조하세요.

v0.1.0 릴리스

첫 번째 버전은 검토 준비가 되었습니다: 읽기 전용 가드, 임시 동의, Codex 통합 및 CI가 포함됩니다. 릴리스 체크리스트를 참조하여 로컬에서 확인하고 안전한 데모를 실행하세요.

개발

프로젝트는 uv와 Python 3.12 이상으로 관리됩니다.

의존성 설치

uv sync

서버 실행

uv run aws-resource-mcp

진단을 위해 모듈로도 실행할 수 있습니다:

uv run python -m aws_resource_mcp.server

서버는 stdio를 사용합니다: MCP 클라이언트가 표준 입력과 출력을 통해 메시지를 교환할 것으로 기대합니다. SDK에 포함된 도구를 사용하여 MCP Inspector로 열 수 있습니다:

uv run mcp dev src/aws_resource_mcp/server.py

테스트 실행

uv run pytest

IAM 정책 생성 및 검증

uv run aws-resource-mcp-generate-iam
uv run aws-resource-mcp-generate-iam --check

생성은 로컬, 결정적이며 자격 증명을 사용하지 않습니다. 프로젝트는 AWS에서 역할이나 정책을 생성하거나 수정하지 않습니다. 정책은 무료 작업, 동의가 필요한 읽기, 최대 결합을 분리합니다. IAM 권한은 애플리케이션 동의를 대체하지 않습니다.

AWS 인벤토리 실행

실제 진단 전에 로컬 구성이 어떤 ID를 해석할지 확인하세요:

aws sts get-caller-identity

그런 다음 기본 리전 eu-west-1에서 인벤토리를 실행하세요:

uv run python -m aws_resource_mcp.aws.inventory

리전과 공유 프로필은 선택 사항입니다:

uv run python -m aws_resource_mcp.aws.inventory --region eu-central-1 --profile example

프로젝트에 키가 저장되지 않습니다. Boto3는 표준 자격 증명 해석 체인을 사용합니다. AWS_PROFILE 또는 --profile을 지정하면 저장소 외부에 이미 존재해야 하는 프로필만 선택됩니다.

MCP 도구

health_check

health_check(check_aws=True)는 로컬 상태와 AWS 접근성을 분리합니다. 인수 없이 최대 한 번의 보호된 STS 호출을 수행하며, check_aws=false로 네트워크를 사용하지 않습니다. 버전, 전송, 등록된 도구 및 어댑터, 리전, 경제 정책, 청구 가능 작업 0건을 반환합니다. 상태는 다음과 같습니다:

  • ok: 서버 및 구성이 유효하며, 요청 시 STS가 응답했습니다.

  • degraded: 서버는 작동하지만 자격 증명이 없거나 STS에 접근할 수 없습니다.

  • error: 보안 구성 또는 내부 레지스트리를 초기화할 수 없습니다.

ID는 익명화됩니다: 일반적인 보안 주체 유형과, 존재하는 경우 마스킹된 계정만 보존됩니다. 인벤토리, Resource Explorer, 어댑터, CloudTrail 또는 CloudWatch를 실행하지 않습니다.

listar_recursos_aws

리소스를 수정하지 않고 로컬 자격 증명에 사용 가능한 AWS 인벤토리를 조회합니다. 매개변수:

  • region: 검색을 특정 리전으로 제한합니다. 값이 없으면 사용 가능한 전체 범위를 사용합니다.

  • services: lambda, s3, ec2 또는 rds와 같은 서비스로 필터링합니다.

  • include_account_id: 익명화를 용이하게 하기 위해 응답에서 계정 ID를 생략할 수 있습니다.

  • resource_types: ec2:instance와 같은 동적 유형으로 필터링합니다.

  • query: 텍스트 또는 이름으로 검색합니다.

  • all_regions: region이 지정되지 않은 경우 활성화된 리전을 사용합니다.

  • include_details: details 내에 서비스별 메타데이터를 포함합니다.

  • include_cost_indicators: 실제 지출을 주장하지 않고 잠재적 비용 신호를 포함합니다.

  • confirm_potentially_billable_operations: 더 이상 권한을 부여하지 않는 레거시 매개변수입니다.

  • include_activity_summary: 이미 얻은 필드만 사용하여 간단한 요약을 추가합니다. CloudTrail 또는 CloudWatch를 조회하지 않습니다.

  • consent_request_id, consent_action 및 approved_services: 임시적이고 제한된 요청을 재개하거나 취소합니다.

  • timeout_seconds: 1~120초 사이의 구성 가능한 예산.

MCP 클라이언트가 보낸 인수 예시:

{
  "region": "eu-west-1",
  "services": ["lambda", "s3"],
  "include_account_id": false,
  "all_regions": true
}

첫 번째 호출은 허용된 작업을 통해 얻은 리소스를 반환합니다. S3, SQS 또는 SNS를 완료하는 데 청구 가능한 작업이 필요한 경우 partial_pending_consent, pending_operations 및 5분 후 만료되는 요청을 반환합니다. 명시적인 두 번째 호출까지 해당 작업을 실행하지 않습니다:

{
  "consent_request_id": "<id devuelto por la primera llamada>",
  "consent_action": "approve",
  "approved_services": ["s3"]
}

승인은 일회용이며 원래 ID와 범위에 바인딩되고 작업, 리전 및 요청을 제한합니다. 검색과 강화는 별도로 승인됩니다. 추가 페이지에는 새 요청이 필요합니다. consent_action: "cancel"은 AWS 인벤토리를 실행하지 않습니다.

상태는 complete_for_requested_scope, partial_pending_consent, partial_timeout, partial_permission_denied, partial_unavailable, consent_cancelled 및 error를 구분합니다. 빈 목록은 조회 시 서비스가 비어 있음을 의미할 뿐입니다.

resources, all_resources 및 resources_by_service는 동일한 중복 제거된 인벤토리를 나타냅니다. 각 리소스에는 id, arn, name, service, resource_type, region, account_id, state, created_at, sources, details, cost_indicators 및 activity가 포함됩니다. 이 도구는 비용을 계산하지 않고, Free Tier를 조회하지 않으며, 쓰기 작업을 수행하지 않습니다.

analizar_actividad_recursos

모든 리소스에 대해 동일한 레지스트리와 모델을 사용하여 마지막으로 알려진 신호를 분석합니다. services, regions 및 resource_ids 필터와 inactive_days, lookback_days, include_administrative_events 및 구성 가능한 제한을 허용합니다. CloudTrail 기록은 90일로 제한되며 리소스당 한 번이 아니라 리전별로 조회됩니다.

응답은 last_functional_usage_at, last_administrative_activity_at, last_configuration_change_at 및 last_state_change_at을 구분합니다. best_known_activity_at은 항상 신호 유형도 나타냅니다. 활성 상태, Describe* 조회 또는 수정 날짜는 기능적 사용으로 제시되지 않습니다.

리소스별 상태는 active, inactive_candidate, unknown, not_supported 또는 error입니다. 비활성 후보는 검토할 항목일 뿐입니다: 충분한 기간, 조회된 관련 소스, 최근 모순된 증거가 없어야 합니다. 권한 부족, 소스 부족 또는 모호한 관계는 잘못된 비활성 확신이 아닌 unknown을 생성합니다.

CloudWatch는 기능적 지표를 제공할 수 있지만 GetMetricData, GetMetricStatistics 및 ListMetrics는 잠재적으로 청구 가능한 것으로 등록되어 차단됩니다. include_paid_sources=true는 구조화된 설명만 요청합니다. 동의를 구성하지 않으며 이 단계에서 해당 작업을 실행하지 않습니다.

diagnosticar_cobertura_aws

리소스를 열거하지 않고 MCP가 실제로 조회할 수 있는 것을 설명합니다. services 및 regions 필터를 허용하고 권한, 활동 또는 경제 정책 섹션을 생략할 수 있습니다.

STS, 활성화된 리전, 기존 Resource Explorer 인덱스, 어댑터 레지스트리 및 기능, 무료 활동 소스, 차단된 작업을 확인합니다. 검사는 실행당 5개 리전, CloudTrail 샘플, CloudWatch 호출 없음으로 제한됩니다.

커버리지 상태는 available, partial, unavailable, not_configured, permission_denied, blocked_by_cost_policy, not_supported, not_checked 및 error를 구분합니다. 정책에서 허용된 것으로 선언된 작업은 입증된 IAM 권한으로 제시되지 않습니다: 진단은 이를 테스트하기 위해 서비스 인벤토리를 실행하지 않습니다.

예시:

{
  "services": ["ec2", "rds"],
  "regions": ["eu-west-1"],
  "include_activity_sources": true
}

제한 사항은 영향, MCP가 계속할 수 있는지, 권한이 부족한지, 해결에 쓰기가 필요한지, 비용이 발생할 수 있는지 나타냅니다. 진단은 제안된 작업을 수행하지 않습니다.

analizar_riesgo_costes

인벤토리 지표와 선택적으로 공통 활동 파이프라인을 사용하여 리소스의 우선순위를 지정합니다. none_detected, low, medium, high, critical 또는 unknown, 설명 가능한 점수 및 실행 불가능한 권장 사항을 반환합니다. 신호는 지출을 확인하지 않으며 none_detected는 비용이 0임을 의미하지 않습니다.

include_free_tier=true는 공식 Free Tier 데이터를 추가합니다. include_actual_cost=true는 Cost Explorer 동의만 준비합니다: 조회를 수행하지 않습니다.

revisar_free_tier

AWS가 무료로 문서화한 작업인 GetFreeTierUsage 및 GetAccountPlanState를 조회합니다. 월별 한도, 예측, 플랜 및 크레딧을 구분합니다. 권한, 업데이트 지연, 혜택 소진 또는 자격 차이로 인해 부분적이거나 알 수 없는 정보를 반환할 수 있습니다. 특정 리소스가 무료라고 주장하지 않습니다.

consultar_costes_aws

정확한 기간 및 필터에 대한 집계 GetCostAndUsage 조회를 준비합니다. 첫 번째 호출은 AWS 작업을 0회 실행하고 기본 보기에서 요청당 게시된 가격 0.01 USD로 임시 요청을 반환합니다. consent_action="approve"가 있는 두 번째 호출은 최대 한 페이지를 실행합니다. 추가 페이지마다 새 동의가 필요합니다. cancel은 AWS를 호출하지 않습니다.

세분성은 MONTHLY 또는 DAILY일 수 있습니다. end_date는 제외됩니다. 예측, 리소스별 세부 정보, 연결된 계정 및 사용자 지정 결제 보기는 이 단계에서 구현되지 않습니다.

AWS 인벤토리

Boto3는 Python용 공식 AWS SDK입니다. 인벤토리 계층은 다음을 사용합니다:

  • 계정 및 유효 ID를 식별하기 위한 STS GetCallerIdentity.

  • 활성화된 리전만 검색하기 위한 EC2 DescribeRegions.

  • 기존 인덱스 및 보기를 통해 리소스와 지원 유형을 동적으로 검색하기 위한 Resource Explorer.

  • Lambda, S3, EC2/EBS/VPC, RDS/Aurora, DynamoDB, ECS/Fargate, API Gateway, CloudFormation, SQS, SNS, IAM, CloudFront 및 Route 53용 공통 어댑터 레지스트리.

  • 지난 90일간의 무료 리전별 관리 이벤트 기록을 위한 CloudTrail LookupEvents.

Lambda와 S3는 처음 구현된 서비스였지만 더 이상 특별한 아키텍처 경로를 유지하지 않습니다. 모든 어댑터는 동일한 계약을 통해 메타데이터, Boto3 작업, 범위, 유형, 세부 정보 및 지표를 선언합니다. 특정 세부 정보는 details 내에만 있습니다.

결과는 ARN 또는, 없는 경우 유형, 리전 및 식별자/이름으로 중복 제거됩니다. 집계 인덱스가 선호됩니다. 로컬 인덱스가 있으면 결과가 결합되고 커버리지는 부분적입니다. Resource Explorer를 사용할 수 없으면 검색을 지원하는 선택된 모든 어댑터가 실행됩니다.

자격 증명이 없거나 계정을 식별할 수 없는 경우는 인벤토리에 대한 전역 오류지만, 로컬 상태에 대해서는 degraded 상태일 뿐입니다. 진단은 로컬 검사를 유지하고 AWS에 의존하는 검사는 안전하게 생략합니다.

모든 Boto3 호출은 먼저 중앙 레지스트리를 거칩니다. 등록되지 않은 작업, 쓰기 작업 또는 비용을 알 수 없는 작업은 차단됩니다. free-only 모드는 전체 프로세스 동안 활성 상태를 유지합니다. S3, SQS 및 SNS는 요청을 계산할 수 있습니다. 해당 열거는 보류 중으로 표시되며 정확한 임시 grant만 실행할 수 있습니다. 가드는 고유 작업과 실제 요청을 별도로 계산합니다.

MCP 클라이언트의 예: "내 계정에 어떤 리소스가 있나요?", "eu-west-1의 EC2 인스턴스를 나열해 줘", "web이라는 리소스를 검색해 줘" 또는 "배포된 RDS 유형을 보여 줘". Resource Explorer는 광범위한 범위를 제공하지만 보편적이지는 않습니다.

문서

Available Tools

7 tools
analizar_actividad_recursosA

Analyze last known AWS resource activity with conservative semantics.

Free service API fields and CloudTrail Event History management events are
combined through the common adapter pipeline. Functional usage,
administrative activity, configuration changes, and state signals remain
separate. Event History is regional, limited to 90 days, and does not
normally include data events such as S3 GetObject, so unknown results are
expected. CloudWatch could improve functional-usage coverage but is always
blocked in this phase: setting ``include_paid_sources`` only requests a
structured explanation and never grants consent or executes a metric call.
The operation is read-only, bounded, and may return partial results.
NameRequiredDescriptionDefault
regionsNo
servicesNo
max_regionsNo
resource_idsNo
inactive_daysNo
lookback_daysNo
max_resourcesNo
timeout_secondsNo
include_paid_sourcesNo
max_events_per_resourceNo
include_administrative_eventsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior5/5

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

With no annotations provided, the description bears full responsibility for transparency. It does an excellent job: it details the data sources (free API, CloudTrail Event History), the regional and temporal scope (90-day limit), expected unknowns (data events excluded), the non-execution of paid sources, and the bounded, read-only nature. This sets correct expectations for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is 6 sentences long and front-loads the purpose. However, it includes technical jargon (e.g., 'common adapter pipeline') that could be simplified. While not excessively long, it is not as concise as it could be; some sentences could be merged or removed without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

Given the complexity (11 parameters, output schema exists), the description covers the core behavior, data sources, and limitations well. It mentions partial results and the non-execution of paid sources. Since an output schema exists, the description does not need to detail return values. However, it could briefly mention what the output contains (e.g., last activity timestamps per resource) to aid understanding, but this is not a major gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 11 parameters with 0% description coverage, meaning the schema provides no textual help. The description only explicitly mentions one parameter (include_paid_sources) and explains its behavior. The other 10 parameters (regions, services, max_regions, resource_ids, inactive_days, lookback_days, max_resources, timeout_seconds, max_events_per_resource, include_administrative_events) are not described. This leaves the agent without guidance on their semantics, which is inadequate.

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 tool's purpose: 'Analyze last known AWS resource activity with conservative semantics.' It identifies the resource (AWS resources) and action (analyze activity). However, it does not differentiate from sibling tools like listar_recursos_aws or diagnosticar_cobertura_aws, so it loses 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (for analyzing resource activity with free data sources) and provides context about limitations (regional, 90-day, no data events). It explains that include_paid_sources does not grant consent, giving guidance on that parameter. However, it does not explicitly state when NOT to use this tool or suggest alternatives, so the guidance is implied rather than explicit.

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

analizar_riesgo_costesA

Prioritize potential AWS cost risk without treating it as actual spend.

The analysis uses the common inventory model and its cost indicators.
Optional activity is merged through the existing uniform activity tool.
Free Tier data uses the officially free API. ``include_actual_cost=True``
only prepares a separate Cost Explorer consent request; it does not grant
consent or execute a potentially billable operation. Recommendations are
informational and no AWS resource is changed.
NameRequiredDescriptionDefault
regionsNo
servicesNo
period_daysNo
resource_idsNo
max_resourcesNo
include_activityNo
include_free_tierNo
include_actual_costNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description fully explains critical behaviors: it does not change AWS resources, does not grant consent or execute billable operations, uses free API for free tier, and merges activity through existing tools. This provides sufficient transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at 5 sentences, with the purpose front-loaded. Each sentence adds distinct value: purpose, model used, activity merging, free tier and include_actual_cost clarification, and non-destructive nature. No unnecessary repetition.

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?

With 8 parameters and 0% schema coverage, the description should compensate by explaining key parameters and output. Only include_actual_cost is addressed. The output schema exists but is not described. The complexity is medium-high, but the description provides insufficient detail for effective tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description only explains the include_actual_cost parameter. The other 7 parameters (regions, services, period_days, etc.) receive no explanation, leaving the agent to infer from names and types. This is insufficient given the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The first sentence clearly states the tool's purpose: 'Prioritize potential AWS cost risk without treating it as actual spend.' It uses a specific verb (prioritize) and resource (cost risk), and distinguishes from sibling tools like consultar_costes_aws which deal with actual spend.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly differentiates from siblings by emphasizing risk assessment rather than actual spend. It mentions when include_actual_cost=True is appropriate, but does not explicitly state when to use this tool versus alternatives.

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

consultar_costes_awsA

Prepare or execute one exact, potentially billable Cost Explorer query.

The first call performs no AWS operation. It returns an expiring,
single-use request that states the exact period, filters, operation,
maximum request count, and estimated API charge. Calling again with the
request id and ``consent_action="approve"`` executes at most one
GetCostAndUsage page. A continuation page always needs a new consent.
``cancel`` performs no AWS call. Approval never authorizes another
operation, period, filter, identity, forecast, or resource-level query.
NameRequiredDescriptionDefault
regionsNo
end_dateNo
servicesNo
max_pagesNo
start_dateNo
granularityNoMONTHLY
resource_idsNo
consent_actionNo
group_by_serviceNo
include_forecastNo
consent_request_idNo
include_resource_levelNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. It discloses that the first call is free, execution is billable, approval is single-use, continuation pages need new consent, and it never authorizes other operations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is efficient, explaining the two-step consent flow in three sentences. Could be more structured (e.g., bullet points) but remains clear and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

Adequately explains the consent workflow, but leaves parameter details completely unaddressed. With 0% schema coverage and 12 parameters, more parameter context is needed for completeness. Output schema exists but does not help with parameter usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and description does not explain any of the 12 parameters (e.g., 'regions', 'start_date', 'consent_action'). It only references abstract concepts like 'period' and 'filters'. Falls short of compensating for missing schema descriptions.

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 tool prepares or executes a single Cost Explorer query, distinguishing between a preview call and an execution call. However, it does not differentiate from sibling tools like 'diagnosticar_cobertura_aws' or 'listar_recursos_aws'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit workflow guidance: first call for preview, second call with 'consent_action=approve' to execute, and 'cancel' does nothing. Does not mention when to prefer this over alternatives or any prerequisites.

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

diagnosticar_cobertura_awsA

Explain which AWS coverage is reachable and why it may be partial.

This read-only diagnostic checks STS, enabled Regions, existing Resource Explorer indexes, the shared adapter registry, free activity sources, and the central cost policy. It does not inventory resources, create indexes, change IAM, enable Regions, or run CloudWatch. Adapter permissions are reported conservatively because service inventory calls are not executed. Results may be partial and never prove that an unqueried service is empty.

NameRequiredDescriptionDefault
regionsNo
servicesNo
include_cost_policyNo
include_permissionsNo
include_activity_sourcesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description fully carries the burden of behavioral disclosure. It explicitly states the tool is read-only, lists what it checks, and highlights limitations: adapter permissions reported conservatively, results may be partial, and never prove emptiness. This is comprehensive and transparent, leaving no hidden behaviors.

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 concise and well-structured: a one-sentence purpose follows by a bullet-like list of checks and non-actions, then caveats. Every sentence adds value without fluff. It is front-loaded with the primary purpose. Ideal for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

Given the complexity (5 parameters, output schema exists), the description covers the diagnostic scope, limitations, and non-actions well. The output schema explains return values, so that gap is acceptable. However, it omits how parameters influence behavior, which is a notable hole for tool invocation. Overall, mostly complete but missing parameter-behavior links.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meanings. However, it does not describe any of the 5 parameters (regions, services, include_cost_policy, include_permissions, include_activity_sources). The general diagnostic scope indirectly relates, but no specific parameter guidance is given. This is a significant gap, resulting in a low score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the tool's purpose: 'Explain which AWS coverage is reachable and why it may be partial.' It uses specific verbs (explain, checks) and lists concrete resources and checks (STS, enabled Regions, Resource Explorer indexes). This distinguishes it from siblings like listar_recursos_aws (resource listing) or analizar_riesgo_costes (cost risk analysis), providing a unique and precise purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool by stating it is a read-only diagnostic and listing what it does not do (inventory resources, create indexes, change IAM, etc.). It also includes caveats about partial results. However, it does not explicitly compare to siblings or provide when-not-to-use guidance, so it misses the highest tier.

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

health_checkA

Check local server health and optionally perform one guarded STS call.

The AWS check never runs inventory, adapters, Resource Explorer, CloudTrail, CloudWatch, or any regional scan. Missing credentials degrade AWS access but do not mean the local MCP server is down.

NameRequiredDescriptionDefault
check_awsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Without any annotations, the description carries full burden. It explains that missing credentials degrade AWS access but do not indicate server down, and clarifies the limited scope of the AWS check. The term 'guarded STS call' is somewhat vague but still informative.

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?

Two short paragraphs with no wasted words. The purpose is stated in the first sentence, and additional constraints form a second paragraph. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

For a simple tool with one parameter and an existing output schema, the description covers the main point. It could explain what 'local server health' entails or what the output looks like, but the output schema likely provides that.

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 shows one optional boolean 'check_aws' with 0% description coverage. The description mentions 'optionally perform one guarded STS call' but does not explicitly link this to the parameter. It adds some meaning but could be more direct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description starts with 'Check local server health and optionally perform one guarded STS call', which provides a specific verb and resource. It clearly distinguishes from sibling tools like 'diagnosticar_cobertura_aws' by focusing on health rather than AWS-specific diagnostics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists what the AWS check does NOT do (e.g., no inventory, adapters, regional scans), giving implicit context for when not to use it. However, it does not explicitly name alternative tools for those cases, leaving the agent to infer usage boundaries.

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

listar_recursos_awsA

Discover AWS resources through locally available credentials, read-only.

Runs free read-only discovery first. Operations that AWS can meter as
requests are returned as pending and are not executed. To continue, call
this same tool with the short-lived ``consent_request_id``,
``consent_action="approve"``, and an explicit subset in
``approved_services``. Approval is single-use, identity- and scope-bound,
request-limited, and does not authorize enrichment or extra pagination.
``consent_action="cancel"`` performs no AWS inventory call. The legacy
``confirm_potentially_billable_operations`` flag is retained for signature
compatibility but grants no permission.

Every service uses the same adapter pipeline and normalized resource model.
Coverage can be partial because of pending consent, timeout, permissions,
unavailable APIs, or Resource Explorer configuration. An empty result is
therefore distinct from a service that was not queried. This tool never
writes resources, lists S3 objects, reads queue messages, publishes topics,
calculates actual costs, or guarantees that a metered request is free.
NameRequiredDescriptionDefault
queryNo
regionNo
servicesNo
all_regionsNo
consent_actionNo
resource_typesNo
include_detailsNo
timeout_secondsNo
approved_servicesNo
consent_request_idNo
include_account_idNo
include_cost_indicatorsNo
include_activity_summaryNo
confirm_potentially_billable_operationsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: read-only nature, consent action details, conditions for partial coverage, and explicit list of operations it never performs. This level of detail is exceptional for transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and structured into logical paragraphs. While every sentence contributes information, it is somewhat verbose and could be more concise. Overall, it is clear and well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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

Given the tool's complexity (14 parameters, consent workflow, output schema), the description covers essential aspects: how to initiate discovery, how to handle pending operations, and what limitations exist. It does not detail the output schema (provided separately) but sets realistic expectations about coverage and behavior.

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 0%, so the description must compensate. It adds value for consent-related parameters (consent_action, approved_services, consent_request_id) by explaining their role in the workflow. However, many parameters (e.g., include_cost_indicators, include_activity_summary) are not described, leaving the agent to rely on property names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the tool's purpose: 'Discover AWS resources through locally available credentials, read-only.' It uses specific verbs and resource, and further distinguishes by detailing what it does not do (e.g., never writes resources, lists S3 objects). This provides clear differentiation from potential sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two-step consent workflow for billable operations, guiding when to call the tool again. While it doesn't explicitly compare to sibling tools, the context it provides (read-only discovery, consent mechanism) helps the agent determine appropriate usage scenarios.

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

revisar_free_tierA

Review account-plan and Free Tier usage without querying billed costs.

AWS officially documents programmatic Free Tier usage and account-plan monitoring at no cost. This read-only tool uses only GetFreeTierUsage and GetAccountPlanState. It does not call Cost Explorer, prove that a resource is free, or guarantee future eligibility. Usage can be estimated, delayed, absent after a limit is exhausted, or unavailable because of IAM.

NameRequiredDescriptionDefault
servicesNo
max_pagesNo
include_forecastNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses limitations: does not call Cost Explorer, usage can be estimated/delayed/absent, and IAM restrictions. This provides good behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is focused with a clear opening sentence and brief additional details. It could be slightly more concise but is not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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

The description covers purpose and limitations but omits parameter details. An output schema exists, so return values are not needed, but the lack of parameter explanation is a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description does not explain any of the three parameters (services, max_pages, include_forecast). The agent only has parameter names and types, lacking meaning beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the tool reviews account-plan and Free Tier usage without querying billed costs, using specific AWS APIs. It distinguishes itself from sibling tools like consultar_costes_aws by explicitly avoiding Cost Explorer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (free tier monitoring, not billed costs) and what it does not do (prove free, guarantee eligibility). It lacks explicit alternatives but context with sibling tools makes it clear.

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.

  1. 7 tool updatesv0.1.0
    • First observedanalizar_actividad_recursos
    • First observedanalizar_riesgo_costes
    • First observedconsultar_costes_aws
    • First observeddiagnosticar_cobertura_aws
    • First observedhealth_check
    • First observedlistar_recursos_aws
    • First observedrevisar_free_tier

TDQS

A4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: health check, coverage diagnosis, resource listing, activity analysis, cost risk, free tier, and cost queries. No two tools overlap in functionality.

Naming Consistency4/5

All names use snake_case and are descriptive, but there is an inconsistency in language: one tool is in English (health_check) while the rest are in Spanish. This is a minor deviation from a consistent pattern.

Tool Count5/5

Seven tools is a well-scoped set for a server focused on AWS resource discovery and cost analysis. Each tool covers a distinct aspect without being too few or too many.

Completeness4/5

The tool surface covers the main areas of health, coverage, resource discovery, activity, and cost (including free tier and actual cost). Minor gaps like direct resource detail queries are addressed by the generic listing tool, so overall completeness is high.

Maintenance

ActivitySlowing
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A stateless Python MCP server packaged as a custom AWS Lambda container image, exposing basic tools like hello, add, and current_time through an API Gateway HTTP API.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    This MCP server provides tools for inspecting AWS cloud infrastructure, including listing S3 buckets, EC2 instances, and fetching CloudWatch logs using your local AWS credentials.
    6 npm
    MIT