awslabs.cdk-mcp-server 0.0.10417__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. awslabs/__init__.py +2 -0
  2. awslabs/cdk_mcp_server/__init__.py +8 -0
  3. awslabs/cdk_mcp_server/core/__init__.py +1 -0
  4. awslabs/cdk_mcp_server/core/resources.py +271 -0
  5. awslabs/cdk_mcp_server/core/search_utils.py +182 -0
  6. awslabs/cdk_mcp_server/core/server.py +74 -0
  7. awslabs/cdk_mcp_server/core/tools.py +324 -0
  8. awslabs/cdk_mcp_server/data/__init__.py +1 -0
  9. awslabs/cdk_mcp_server/data/cdk_nag_parser.py +331 -0
  10. awslabs/cdk_mcp_server/data/construct_descriptions.py +32 -0
  11. awslabs/cdk_mcp_server/data/genai_cdk_loader.py +423 -0
  12. awslabs/cdk_mcp_server/data/lambda_powertools_loader.py +48 -0
  13. awslabs/cdk_mcp_server/data/schema_generator.py +666 -0
  14. awslabs/cdk_mcp_server/data/solutions_constructs_parser.py +782 -0
  15. awslabs/cdk_mcp_server/server.py +7 -0
  16. awslabs/cdk_mcp_server/static/CDK_GENERAL_GUIDANCE.md +232 -0
  17. awslabs/cdk_mcp_server/static/CDK_NAG_GUIDANCE.md +192 -0
  18. awslabs/cdk_mcp_server/static/__init__.py +5 -0
  19. awslabs/cdk_mcp_server/static/bedrock/agent/actiongroups.md +137 -0
  20. awslabs/cdk_mcp_server/static/bedrock/agent/alias.md +39 -0
  21. awslabs/cdk_mcp_server/static/bedrock/agent/collaboration.md +91 -0
  22. awslabs/cdk_mcp_server/static/bedrock/agent/creation.md +149 -0
  23. awslabs/cdk_mcp_server/static/bedrock/agent/custom_orchestration.md +74 -0
  24. awslabs/cdk_mcp_server/static/bedrock/agent/overview.md +78 -0
  25. awslabs/cdk_mcp_server/static/bedrock/agent/prompt_override.md +70 -0
  26. awslabs/cdk_mcp_server/static/bedrock/bedrockguardrails.md +188 -0
  27. awslabs/cdk_mcp_server/static/bedrock/knowledgebases/chunking.md +137 -0
  28. awslabs/cdk_mcp_server/static/bedrock/knowledgebases/datasources.md +225 -0
  29. awslabs/cdk_mcp_server/static/bedrock/knowledgebases/kendra.md +81 -0
  30. awslabs/cdk_mcp_server/static/bedrock/knowledgebases/overview.md +116 -0
  31. awslabs/cdk_mcp_server/static/bedrock/knowledgebases/parsing.md +36 -0
  32. awslabs/cdk_mcp_server/static/bedrock/knowledgebases/transformation.md +30 -0
  33. awslabs/cdk_mcp_server/static/bedrock/knowledgebases/vector/aurora.md +185 -0
  34. awslabs/cdk_mcp_server/static/bedrock/knowledgebases/vector/creation.md +80 -0
  35. awslabs/cdk_mcp_server/static/bedrock/knowledgebases/vector/opensearch.md +56 -0
  36. awslabs/cdk_mcp_server/static/bedrock/knowledgebases/vector/pinecone.md +66 -0
  37. awslabs/cdk_mcp_server/static/bedrock/profiles.md +153 -0
  38. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/actiongroups.md +137 -0
  39. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/alias.md +39 -0
  40. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/collaboration.md +91 -0
  41. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/creation.md +149 -0
  42. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/custom_orchestration.md +74 -0
  43. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/overview.md +78 -0
  44. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/prompt_override.md +70 -0
  45. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/bedrockguardrails.md +188 -0
  46. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/chunking.md +137 -0
  47. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/datasources.md +225 -0
  48. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/kendra.md +81 -0
  49. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/overview.md +116 -0
  50. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/parsing.md +36 -0
  51. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/transformation.md +30 -0
  52. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/vector/aurora.md +185 -0
  53. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/vector/creation.md +80 -0
  54. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/vector/opensearch.md +56 -0
  55. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/vector/pinecone.md +66 -0
  56. awslabs/cdk_mcp_server/static/genai_cdk/bedrock/profiles.md +153 -0
  57. awslabs/cdk_mcp_server/static/genai_cdk/opensearch-vectorindex/overview.md +135 -0
  58. awslabs/cdk_mcp_server/static/genai_cdk/opensearchserverless/overview.md +17 -0
  59. awslabs/cdk_mcp_server/static/lambda_powertools/bedrock.md +127 -0
  60. awslabs/cdk_mcp_server/static/lambda_powertools/cdk.md +99 -0
  61. awslabs/cdk_mcp_server/static/lambda_powertools/dependencies.md +45 -0
  62. awslabs/cdk_mcp_server/static/lambda_powertools/index.md +36 -0
  63. awslabs/cdk_mcp_server/static/lambda_powertools/insights.md +95 -0
  64. awslabs/cdk_mcp_server/static/lambda_powertools/logging.md +43 -0
  65. awslabs/cdk_mcp_server/static/lambda_powertools/metrics.md +93 -0
  66. awslabs/cdk_mcp_server/static/lambda_powertools/tracing.md +63 -0
  67. awslabs/cdk_mcp_server/static/opensearch-vectorindex/overview.md +135 -0
  68. awslabs/cdk_mcp_server/static/opensearchserverless/overview.md +17 -0
  69. awslabs_cdk_mcp_server-0.0.10417.dist-info/METADATA +14 -0
  70. awslabs_cdk_mcp_server-0.0.10417.dist-info/RECORD +72 -0
  71. awslabs_cdk_mcp_server-0.0.10417.dist-info/WHEEL +4 -0
  72. awslabs_cdk_mcp_server-0.0.10417.dist-info/entry_points.txt +2 -0
@@ -0,0 +1,95 @@
1
+ # Lambda Insights
2
+
3
+ Enhanced monitoring and observability for AWS Lambda functions:
4
+
5
+ ## Overview
6
+
7
+ Lambda Insights is an extension of CloudWatch that provides system-level metrics, custom dashboards, and enhanced logging for Lambda functions. It complements Lambda Powertools by focusing on infrastructure-level monitoring rather than application-level metrics.
8
+
9
+ ## Key Benefits
10
+
11
+ - **Zero-Code Instrumentation**: No code changes required to get system-level metrics
12
+ - **Memory Utilization Tracking**: Monitor memory usage patterns to optimize function configuration
13
+ - **CPU Utilization**: Identify CPU-bound functions that might benefit from more memory allocation
14
+ - **Network Usage**: Track network I/O for functions that communicate with external services
15
+ - **Cold Start Analysis**: Detailed metrics on initialization times to optimize performance
16
+ - **Automatic Dashboards**: Pre-built dashboards for quick analysis
17
+
18
+ ## CDK Integration
19
+
20
+ ```typescript
21
+ import { LambdaInsightsVersion } from 'aws-cdk-lib/aws-lambda';
22
+ import { PythonFunction } from '@aws-cdk/aws-lambda-python-alpha';
23
+
24
+ // Create Lambda function with Lambda Insights enabled
25
+ const function = new PythonFunction(this, 'MyFunction', {
26
+ entry: path.join(__dirname, '../src/my_function'),
27
+ runtime: Runtime.PYTHON_3_13,
28
+
29
+ // Enable Lambda Insights with specific version
30
+ insightsVersion: LambdaInsightsVersion.VERSION_1_0_119_0,
31
+
32
+ // Other configuration...
33
+ });
34
+ ```
35
+
36
+ ## Combining with Lambda Powertools
37
+
38
+ Lambda Insights works seamlessly alongside Lambda Powertools to provide a complete observability solution:
39
+
40
+ ```typescript
41
+ import { LambdaInsightsVersion } from 'aws-cdk-lib/aws-lambda';
42
+ import { PythonFunction } from '@aws-cdk/aws-lambda-python-alpha';
43
+
44
+ // Create Lambda function with both Lambda Insights and Powertools
45
+ const function = new PythonFunction(this, 'MyFunction', {
46
+ entry: path.join(__dirname, '../src/my_function'),
47
+ runtime: Runtime.PYTHON_3_13,
48
+
49
+ // Enable Lambda Insights
50
+ insightsVersion: LambdaInsightsVersion.VERSION_1_0_119_0,
51
+
52
+ // Configure Powertools for business metrics
53
+ environment: {
54
+ POWERTOOLS_SERVICE_NAME: "my-service",
55
+ POWERTOOLS_METRICS_NAMESPACE: "MyService",
56
+ LOG_LEVEL: "INFO",
57
+ },
58
+ });
59
+ ```
60
+
61
+ ## Observability Strategy
62
+
63
+ For a comprehensive observability strategy:
64
+
65
+ 1. **System-Level Metrics** (Lambda Insights):
66
+ - Memory utilization
67
+ - CPU utilization
68
+ - Network I/O
69
+ - Cold start duration
70
+ - Initialization times
71
+
72
+ 2. **Business-Level Metrics** (Lambda Powertools):
73
+ - Business transactions
74
+ - User actions
75
+ - Domain-specific events
76
+ - Custom application metrics
77
+
78
+ ## Cost Considerations
79
+
80
+ Lambda Insights incurs additional costs:
81
+ - $0.20 per function per month (prorated hourly)
82
+ - Additional CloudWatch costs for metrics and logs
83
+
84
+ For cost optimization:
85
+ - Enable Lambda Insights selectively on critical functions
86
+ - Consider using different CloudWatch log retention periods
87
+ - Monitor usage and adjust as needed
88
+
89
+ ## Best Practices
90
+
91
+ 1. **Enable on Critical Functions**: Start by enabling Lambda Insights on your most critical functions
92
+ 2. **Review Dashboards Regularly**: Check the Lambda Insights dashboards to identify optimization opportunities
93
+ 3. **Right-Size Memory**: Use memory utilization data to adjust function memory configuration
94
+ 4. **Analyze Cold Starts**: Identify functions with high cold start times for optimization
95
+ 5. **Combine with Powertools**: Use both solutions for complete observability
@@ -0,0 +1,43 @@
1
+ # Structured Logging
2
+
3
+ Transform text logs into JSON objects with consistent fields:
4
+
5
+ ```python
6
+ from aws_lambda_powertools import Logger
7
+ from aws_lambda_powertools.utilities.typing import LambdaContext
8
+
9
+ # Initialize once as a global variable
10
+ logger = Logger(service="payment-service")
11
+
12
+ @logger.inject_lambda_context # Automatically captures request_id, cold start, etc.
13
+ def lambda_handler(event, context: LambdaContext):
14
+ try:
15
+ # Log with structured context
16
+ logger.info("Processing request", extra={"event_type": event.get("type")})
17
+
18
+ # Process request
19
+ result = process_data(event)
20
+
21
+ logger.info("Request processed successfully")
22
+ return result
23
+ except Exception:
24
+ # Automatically captures exception details and stack trace
25
+ logger.exception("Error processing request")
26
+ raise
27
+ ```
28
+
29
+ ## Key Benefits
30
+
31
+ - **Automatic correlation IDs**: Track requests across services with consistent IDs
32
+ - **Consistent log structure**: All logs follow the same JSON structure for easier filtering
33
+ - **Cold start detection**: Automatically logs when a function is experiencing a cold start
34
+ - **Simplified exception logging**: Captures full stack traces and exception details
35
+ - **Context enrichment**: Easily add business context to your logs
36
+
37
+ ## Best Practices
38
+
39
+ 1. **Initialize the logger once**: Create the logger as a global variable
40
+ 2. **Use the @logger.inject_lambda_context decorator**: This automatically adds request IDs and other context
41
+ 3. **Add business context with extra**: Use the extra parameter to add business-relevant information
42
+ 4. **Use appropriate log levels**: INFO for normal operations, WARNING for concerning events, ERROR for failures
43
+ 5. **Use logger.exception for exceptions**: This automatically captures the stack trace
@@ -0,0 +1,93 @@
1
+ # Metrics
2
+
3
+ Collect quantitative data about your application's behavior:
4
+
5
+ ```python
6
+ from aws_lambda_powertools import Logger, Metrics, Tracer
7
+ from aws_lambda_powertools.metrics import MetricUnit
8
+ from aws_lambda_powertools.utilities.typing import LambdaContext
9
+
10
+ logger = Logger(service="payment-service")
11
+ tracer = Tracer(service="payment-service")
12
+ metrics = Metrics(namespace="PaymentService", service="payment-service")
13
+
14
+ @metrics.log_metrics # Automatically emits metrics at the end of the function
15
+ def lambda_handler(event, context: LambdaContext):
16
+ payment_id = event.get("payment_id")
17
+ amount = event.get("amount", 0)
18
+
19
+ try:
20
+ # Record business metrics
21
+ metrics.add_metric(name="PaymentProcessed", unit=MetricUnit.Count, value=1)
22
+ metrics.add_metric(name="PaymentAmount", unit=MetricUnit.Dollars, value=amount)
23
+
24
+ # Add dimensions for filtering
25
+ metrics.add_dimension(name="PaymentMethod", value="credit_card")
26
+
27
+ # Your business logic here
28
+ result = process_payment(payment_id, amount)
29
+
30
+ # Record successful outcome
31
+ metrics.add_metric(name="SuccessfulPayment", unit=MetricUnit.Count, value=1)
32
+
33
+ return result
34
+ except Exception:
35
+ # Record failed outcome
36
+ metrics.add_metric(name="FailedPayment", unit=MetricUnit.Count, value=1)
37
+ logger.exception("Payment processing failed")
38
+ raise
39
+ ```
40
+
41
+ ## Key Benefits
42
+
43
+ - **Business-relevant metrics**: Track metrics that matter to your business
44
+ - **Automatic cold start metrics**: Monitor cold start frequency
45
+ - **Dimensional metrics**: Filter metrics by business dimensions
46
+ - **Efficient batching**: Metrics are batched and emitted in a single call
47
+ - **Standard units**: Use predefined units for consistent measurement
48
+
49
+ ## Best Practices
50
+
51
+ 1. **Initialize the metrics once**: Create the metrics object as a global variable
52
+ 2. **Use the @metrics.log_metrics decorator**: This automatically emits metrics at the end of the function
53
+ 3. **Add business dimensions**: Use add_dimension to enable filtering by business context
54
+ 4. **Use appropriate metric units**: Choose from the predefined MetricUnit enum values
55
+ 5. **Track both success and failure metrics**: Record metrics for both outcomes
56
+ 6. **Use consistent naming**: Follow a consistent naming convention for metrics
57
+
58
+ ## CloudWatch Dashboard Integration
59
+
60
+ You can create CloudWatch dashboards to visualize your metrics:
61
+
62
+ ```typescript
63
+ import { Dashboard, GraphWidget, Metric } from 'aws-cdk-lib/aws-cloudwatch';
64
+
65
+ // Create a dashboard
66
+ const dashboard = new Dashboard(this, 'PaymentsDashboard', {
67
+ dashboardName: 'PaymentsDashboard',
68
+ });
69
+
70
+ // Add a widget for payment metrics
71
+ dashboard.addWidgets(
72
+ new GraphWidget({
73
+ title: 'Payment Processing',
74
+ left: [
75
+ new Metric({
76
+ namespace: 'PaymentService',
77
+ metricName: 'SuccessfulPayment',
78
+ dimensionsMap: {
79
+ service: 'payment-service',
80
+ },
81
+ statistic: 'Sum',
82
+ }),
83
+ new Metric({
84
+ namespace: 'PaymentService',
85
+ metricName: 'FailedPayment',
86
+ dimensionsMap: {
87
+ service: 'payment-service',
88
+ },
89
+ statistic: 'Sum',
90
+ }),
91
+ ],
92
+ })
93
+ );
@@ -0,0 +1,63 @@
1
+ # Tracing
2
+
3
+ Gain visibility into request flows across distributed services:
4
+
5
+ > **IMPORTANT**: When using Tracer, install Powertools with the tracer extra: `aws-lambda-powertools[tracer]`. This ensures the required aws_xray_sdk dependency is included.
6
+
7
+ ```python
8
+ from aws_lambda_powertools import Logger, Tracer
9
+ from aws_lambda_powertools.utilities.typing import LambdaContext
10
+
11
+ logger = Logger(service="payment-service")
12
+ tracer = Tracer(service="payment-service")
13
+
14
+ @tracer.capture_method
15
+ def process_payment(payment_id: str):
16
+ # This function is automatically traced
17
+ # Add business-relevant annotations
18
+ tracer.put_annotation(key="PaymentId", value=payment_id)
19
+ tracer.put_metadata(key="PaymentMethod", value="credit_card")
20
+
21
+ # Your business logic here
22
+ return {"status": "processed"}
23
+
24
+ @logger.inject_lambda_context
25
+ @tracer.capture_lambda_handler # Automatically traces Lambda invocations
26
+ def lambda_handler(event, context: LambdaContext):
27
+ payment_id = event.get("payment_id")
28
+ logger.info("Processing payment", extra={"payment_id": payment_id})
29
+
30
+ result = process_payment(payment_id)
31
+ return result
32
+ ```
33
+
34
+ ## Key Benefits
35
+
36
+ - **End-to-end request visibility**: Track requests as they flow through your distributed system
37
+ - **Automatic instrumentation**: AWS SDK calls are automatically traced
38
+ - **Business-relevant annotations**: Add searchable annotations for business context
39
+ - **Performance metrics**: Identify bottlenecks and optimize performance
40
+ - **Error tracking**: Automatically capture and visualize errors in the trace
41
+
42
+ ## Best Practices
43
+
44
+ 1. **Install with the tracer extra**: Use `pip install "aws-lambda-powertools[tracer]"` to ensure aws_xray_sdk is included
45
+ 2. **Initialize the tracer once**: Create the tracer as a global variable
46
+ 3. **Use the @tracer.capture_lambda_handler decorator**: This automatically traces the Lambda invocation
47
+ 4. **Use @tracer.capture_method for internal functions**: This provides more granular tracing
48
+ 5. **Add business context with annotations**: Use put_annotation for searchable fields
49
+ 6. **Add additional context with metadata**: Use put_metadata for non-searchable details
50
+ 7. **Enable X-Ray tracing in your Lambda function**: Set the tracing mode to Active in your Lambda configuration
51
+
52
+ ## CDK Configuration
53
+
54
+ When using CDK, ensure X-Ray tracing is enabled:
55
+
56
+ ```typescript
57
+ import { Tracing } from "aws-cdk-lib/aws-lambda";
58
+
59
+ const function = new Function(this, 'MyFunction', {
60
+ // ... other properties
61
+ tracing: Tracing.ACTIVE, // Enable X-Ray tracing
62
+ });
63
+ ```
@@ -0,0 +1,135 @@
1
+ # Amazon OpenSearch Vector Index Construct Library
2
+
3
+ ## Table of contents
4
+
5
+ - [Amazon OpenSearch Vector Index Construct Library](#amazon-opensearch-vector-index-construct-library)
6
+ - [Table of contents](#table-of-contents)
7
+ - [API](#api)
8
+ - [Vector Index](#vector-index)
9
+ - [Example](#example)
10
+ - [TypeScript](#typescript)
11
+ - [Python](#python)
12
+ - [Default values](#default-values)
13
+
14
+ ## API
15
+
16
+ See the [API documentation](../../../apidocs/namespaces/opensearch_vectorindex/README.md).
17
+
18
+ ## Vector Index
19
+
20
+ The `VectorIndex` resource connects to OpenSearch and creates an index suitable for use with Amazon Bedrock Knowledge Bases.
21
+
22
+ ## Example
23
+
24
+ ### TypeScript
25
+
26
+ ```ts
27
+ import {
28
+ opensearchserverless,
29
+ opensearch_vectorindex,
30
+ } from '@cdklabs/generative-ai-cdk-constructs';
31
+
32
+ const vectorStore = new opensearchserverless.VectorCollection(
33
+ this,
34
+ 'VectorCollection'
35
+ );
36
+
37
+ new opensearch_vectorindex.VectorIndex(this, 'VectorIndex', {
38
+ collection: vectorStore,
39
+ indexName: 'bedrock-knowledge-base-default-index',
40
+ vectorField: 'bedrock-knowledge-base-default-vector',
41
+ vectorDimensions: 1536,
42
+ precision: 'float',
43
+ distanceType: 'l2',
44
+ mappings: [
45
+ {
46
+ mappingField: 'AMAZON_BEDROCK_TEXT_CHUNK',
47
+ dataType: 'text',
48
+ filterable: true,
49
+ },
50
+ {
51
+ mappingField: 'AMAZON_BEDROCK_METADATA',
52
+ dataType: 'text',
53
+ filterable: false,
54
+ },
55
+ ],
56
+ analyzer: {
57
+ characterFilters: [opensearchserverless.CharacterFilterType.ICU_NORMALIZER],
58
+ tokenizer: opensearchserverless.TokenizerType.KUROMOJI_TOKENIZER,
59
+ tokenFilters: [
60
+ opensearchserverless.TokenFilterType.KUROMOJI_BASEFORM,
61
+ opensearchserverless.TokenFilterType.JA_STOP,
62
+ ],
63
+ },
64
+ });
65
+ ```
66
+
67
+ ### Python
68
+
69
+ ```python
70
+ from cdklabs.generative_ai_cdk_constructs import (
71
+ opensearchserverless,
72
+ opensearch_vectorindex,
73
+ )
74
+
75
+ vectorCollection = opensearchserverless.VectorCollection(self, "VectorCollection")
76
+
77
+ vectorIndex = opensearch_vectorindex.VectorIndex(self, "VectorIndex",
78
+ vector_dimensions= 1536,
79
+ collection=vectorCollection,
80
+ index_name='bedrock-knowledge-base-default-index',
81
+ vector_field='bedrock-knowledge-base-default-vector',
82
+ precision='float',
83
+ distance_type='l2',
84
+ mappings= [
85
+ opensearch_vectorindex.MetadataManagementFieldProps(
86
+ mapping_field='AMAZON_BEDROCK_TEXT_CHUNK',
87
+ data_type='text',
88
+ filterable=True
89
+ ),
90
+ opensearch_vectorindex.MetadataManagementFieldProps(
91
+ mapping_field='AMAZON_BEDROCK_METADATA',
92
+ data_type='text',
93
+ filterable=False
94
+ )
95
+ ],
96
+ analyzer=opensearchserverless.AnalyzerProps(
97
+ character_filters=[opensearchserverless.CharacterFilterType.ICU_NORMALIZER],
98
+ tokenizer=opensearchserverless.TokenizerType.KUROMOJI_TOKENIZER,
99
+ token_filters=[
100
+ opensearchserverless.TokenFilterType.KUROMOJI_BASEFORM,
101
+ opensearchserverless.TokenFilterType.JA_STOP,
102
+ ],
103
+ )
104
+ )
105
+ ```
106
+
107
+ ## Default values
108
+
109
+ Behind the scenes, the custom resource creates a k-NN vector in the OpenSearch index, allowing to perform different kinds of k-NN search. The knn_vector field is highly configurable and can serve many different k-NN workloads. It is created as follows:
110
+
111
+ Python
112
+
113
+ ```py
114
+ "properties": {
115
+ vector_field: {
116
+ "type": "knn_vector",
117
+ "dimension": dimensions,
118
+ "data_type": precision,
119
+ "method": {
120
+ "engine": "faiss",
121
+ "space_type": distance_type,
122
+ "name": "hnsw",
123
+ "parameters": {},
124
+ },
125
+ },
126
+ "id": {
127
+ "type": "text",
128
+ "fields": {"keyword": {"type": "keyword", "ignore_above": 256}},
129
+ },
130
+ },
131
+ ```
132
+
133
+ Users can currently configure the ```vector_field```, ```dimension```, ```data_type```, and ```distance_type``` fields through the construct interface.
134
+
135
+ For details on the different settings, you can refer to the [Knn plugin documentation](https://opensearch.org/docs/latest/search-plugins/knn/knn-index/).
@@ -0,0 +1,17 @@
1
+ # Amazon OpenSearch Serverless Construct Library
2
+
3
+ ## Table of contents
4
+
5
+ - [API](#api)
6
+ - [Vector Collection](#vector-collection)
7
+
8
+ ## API
9
+ See the [API documentation](../../../apidocs/namespaces/opensearchserverless/README.md).
10
+
11
+ ## Vector Collection
12
+
13
+ This resource creates an Amazon OpenSearch Serverless collection configured for `VECTORSEARCH`. It creates default encryption, network, and data policies for use with Amazon Bedrock Knowledge Bases. For encryption, it uses the default AWS owned KMS key. It allows network connections from the public internet, but access is restricted to specific IAM principals.
14
+
15
+ ### Granting Data Access
16
+
17
+ The `grantDataAccess` method grants the specified role access to read and write the data in the collection.
@@ -0,0 +1,14 @@
1
+ Metadata-Version: 2.4
2
+ Name: awslabs.cdk-mcp-server
3
+ Version: 0.0.10417
4
+ Summary: An AWS CDK MCP server that provides guidance on AWS Cloud Development Kit best practices, infrastructure as code patterns, and security compliance with CDK Nag. This server offers tools to validate infrastructure designs, explain CDK Nag rules, analyze suppressions, generate Bedrock Agent schemas, and discover Solutions Constructs patterns.
5
+ Requires-Python: >=3.13
6
+ Requires-Dist: aws-lambda-powertools>=2.30.0
7
+ Requires-Dist: httpx>=0.27.0
8
+ Requires-Dist: mcp[cli]>=1.6.0
9
+ Requires-Dist: pydantic>=2.10.6
10
+ Description-Content-Type: text/markdown
11
+
12
+ # awslabs MCP CDK Expert
13
+
14
+ An AWS CDK expert MCP server that provides guidance on AWS Cloud Development Kit best practices, infrastructure as code patterns, and security compliance with CDK Nag. This server offers tools to validate infrastructure designs, explain CDK Nag rules, analyze suppressions, generate Bedrock Agent schemas, and discover Solutions Constructs patterns.
@@ -0,0 +1,72 @@
1
+ awslabs/__init__.py,sha256=4zfFn3N0BkvQmMTAIvV_QAbKp6GWzrwaUN17YeRoChM,115
2
+ awslabs/cdk_mcp_server/__init__.py,sha256=pssyHoTGWcnlIXiZ9U5LiasJMgCp-g8zwo2aY9jASYU,190
3
+ awslabs/cdk_mcp_server/server.py,sha256=KKNPh9zTvUy6uCAzeR2djtJqFCzDkkihUb-9dP_jVpw,134
4
+ awslabs/cdk_mcp_server/core/__init__.py,sha256=wMYtq0d53XTzMmilxj-crP-I445ijE_8A7MH6wL1Fm8,47
5
+ awslabs/cdk_mcp_server/core/resources.py,sha256=nduzytgmiAb3C-RuqcexWgEl_APUYymTQDmZhkAl-NQ,9593
6
+ awslabs/cdk_mcp_server/core/search_utils.py,sha256=Nz8ftv4w9O_1fvCwIJL36GoBMOtHP9XZnTnVhUxVUko,5585
7
+ awslabs/cdk_mcp_server/core/server.py,sha256=1Zc_n4whZJq9q2_eVrmvqnmNaTKL4ftwbiVHmPJ3JAs,2594
8
+ awslabs/cdk_mcp_server/core/tools.py,sha256=dw_RJ-IvfWsaicj6bp_UvyGjtd2hLicXL4RC5doaVk4,11644
9
+ awslabs/cdk_mcp_server/data/__init__.py,sha256=ksA1se4fyvTIb4K7lND-C66ouriFtjyZU96Q88nl6w4,47
10
+ awslabs/cdk_mcp_server/data/cdk_nag_parser.py,sha256=z74FJY3XuIJIxUUd_EbpvBuBRBLf5ZWDr39pdEwk5cE,10904
11
+ awslabs/cdk_mcp_server/data/construct_descriptions.py,sha256=br5gOa5M8Nhv3HrHqrHGXCwQRTu4ZeMAo85bEhzCuMM,2605
12
+ awslabs/cdk_mcp_server/data/genai_cdk_loader.py,sha256=6YqW9ODyw8Gd2I05Suxuo1HPKrB8JPzuzm8CI-psD0E,15494
13
+ awslabs/cdk_mcp_server/data/lambda_powertools_loader.py,sha256=sQfZrmA2hZdd1NSK0hCb5l4kl7jlQ3xhxs28KgEB4Dw,1630
14
+ awslabs/cdk_mcp_server/data/schema_generator.py,sha256=bqEOMCFy0pWw52v66Zobn6xrn0wHLJzOZF3XuKGDfdc,27869
15
+ awslabs/cdk_mcp_server/data/solutions_constructs_parser.py,sha256=TOAye1K5cm6szVNPJQM4aeYblojYL-KNqD9R9uuLfyQ,27632
16
+ awslabs/cdk_mcp_server/static/CDK_GENERAL_GUIDANCE.md,sha256=RAYowPS-9I8dq7YQOPLEAgQ4i9anoQcyRdC2E2_dX_I,9930
17
+ awslabs/cdk_mcp_server/static/CDK_NAG_GUIDANCE.md,sha256=zJtHJp9ruaaJ-xa68k9kDrPmEaXpiWCZZf7JIy8NK0w,5839
18
+ awslabs/cdk_mcp_server/static/__init__.py,sha256=NybWQKuqEx70DXtHCJ5LuFuRn-AOF9M-NjDSiyev6Og,176
19
+ awslabs/cdk_mcp_server/static/bedrock/bedrockguardrails.md,sha256=CX00B7XgDpLbVxvf6B-a13O4NERAJMiaPPeTuKK-8Sw,7386
20
+ awslabs/cdk_mcp_server/static/bedrock/profiles.md,sha256=xxPnEkZ0tJAFKomMuAPLm3EtlQFku6MR2nPu4VoyppE,7195
21
+ awslabs/cdk_mcp_server/static/bedrock/agent/actiongroups.md,sha256=qm6UCCfKurtvNO52g1a6H1N9iBZx-KTCf4SbCK2QQXw,4865
22
+ awslabs/cdk_mcp_server/static/bedrock/agent/alias.md,sha256=eyTmjmHyQbuR5CbFpp2qrEcEqw2l9pMupWERRVksVNw,1293
23
+ awslabs/cdk_mcp_server/static/bedrock/agent/collaboration.md,sha256=nNu30F5ydUbb7HtboUWNhp0hOnQMw8q8shCUjMDwT_A,3616
24
+ awslabs/cdk_mcp_server/static/bedrock/agent/creation.md,sha256=BzpVJkRs_q1ZkW8LnIEh7--57OnNmHHdPCygfGJAks0,6216
25
+ awslabs/cdk_mcp_server/static/bedrock/agent/custom_orchestration.md,sha256=ylMTq3PT3vHnrul_boLuQIGQFuk_Y0evdImp_pLY7rY,2983
26
+ awslabs/cdk_mcp_server/static/bedrock/agent/overview.md,sha256=4FLhC3CC01W9Gpw4S0Z6yWPnM86p2nJ_dxQ1yU4Xsxw,2921
27
+ awslabs/cdk_mcp_server/static/bedrock/agent/prompt_override.md,sha256=ypmKxlO5WIYqUh2gYDzo1Mwzso_HwSkzrMHeDU473C8,2520
28
+ awslabs/cdk_mcp_server/static/bedrock/knowledgebases/chunking.md,sha256=TpLXPJso6c4MhWUepX0WsX3FE6FOIsFBPcE28B-3iKM,3203
29
+ awslabs/cdk_mcp_server/static/bedrock/knowledgebases/datasources.md,sha256=iHQ086zHzkqHoKLi7pmyMxf0oH02UVHf_GAid6EMdeE,7147
30
+ awslabs/cdk_mcp_server/static/bedrock/knowledgebases/kendra.md,sha256=sYbhIAaGjuJ2lifP0xvDXacDEVFC24Gl9giAI6RF9bo,2786
31
+ awslabs/cdk_mcp_server/static/bedrock/knowledgebases/overview.md,sha256=AGLS6146UufRTC80EAyAviBhAtb7hFcbMz3tWFviPOc,5167
32
+ awslabs/cdk_mcp_server/static/bedrock/knowledgebases/parsing.md,sha256=AQ6TTO5HxKqhtVdv1bM6GjHyDgOICaNi5NtDT9Dxp10,1155
33
+ awslabs/cdk_mcp_server/static/bedrock/knowledgebases/transformation.md,sha256=I5Lkn0giUr5n0lTxqjtUsoHNkom6AJtxEnvlarH_54Y,813
34
+ awslabs/cdk_mcp_server/static/bedrock/knowledgebases/vector/aurora.md,sha256=CjiJDoaui2H4-nu99Sem4rK_8pQGB_ciI5So5pKWMSQ,5766
35
+ awslabs/cdk_mcp_server/static/bedrock/knowledgebases/vector/creation.md,sha256=jXxrwnor7_YUJc9sYCHjrQnCnHQrVItPI7YttcX-mX8,4491
36
+ awslabs/cdk_mcp_server/static/bedrock/knowledgebases/vector/opensearch.md,sha256=mM8nILHaFaLfHUaIl7c8Eh0NFx8Z5H4yu5LbC-DmnSU,1368
37
+ awslabs/cdk_mcp_server/static/bedrock/knowledgebases/vector/pinecone.md,sha256=OnKjSXB6CHBxnXJFGbsIRqpLyA6_S2AiHOJslxQVaOw,2053
38
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/bedrockguardrails.md,sha256=CX00B7XgDpLbVxvf6B-a13O4NERAJMiaPPeTuKK-8Sw,7386
39
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/profiles.md,sha256=xxPnEkZ0tJAFKomMuAPLm3EtlQFku6MR2nPu4VoyppE,7195
40
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/actiongroups.md,sha256=qm6UCCfKurtvNO52g1a6H1N9iBZx-KTCf4SbCK2QQXw,4865
41
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/alias.md,sha256=eyTmjmHyQbuR5CbFpp2qrEcEqw2l9pMupWERRVksVNw,1293
42
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/collaboration.md,sha256=nNu30F5ydUbb7HtboUWNhp0hOnQMw8q8shCUjMDwT_A,3616
43
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/creation.md,sha256=BzpVJkRs_q1ZkW8LnIEh7--57OnNmHHdPCygfGJAks0,6216
44
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/custom_orchestration.md,sha256=ylMTq3PT3vHnrul_boLuQIGQFuk_Y0evdImp_pLY7rY,2983
45
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/overview.md,sha256=4FLhC3CC01W9Gpw4S0Z6yWPnM86p2nJ_dxQ1yU4Xsxw,2921
46
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/agent/prompt_override.md,sha256=ypmKxlO5WIYqUh2gYDzo1Mwzso_HwSkzrMHeDU473C8,2520
47
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/chunking.md,sha256=TpLXPJso6c4MhWUepX0WsX3FE6FOIsFBPcE28B-3iKM,3203
48
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/datasources.md,sha256=iHQ086zHzkqHoKLi7pmyMxf0oH02UVHf_GAid6EMdeE,7147
49
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/kendra.md,sha256=sYbhIAaGjuJ2lifP0xvDXacDEVFC24Gl9giAI6RF9bo,2786
50
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/overview.md,sha256=AGLS6146UufRTC80EAyAviBhAtb7hFcbMz3tWFviPOc,5167
51
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/parsing.md,sha256=AQ6TTO5HxKqhtVdv1bM6GjHyDgOICaNi5NtDT9Dxp10,1155
52
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/transformation.md,sha256=I5Lkn0giUr5n0lTxqjtUsoHNkom6AJtxEnvlarH_54Y,813
53
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/vector/aurora.md,sha256=CjiJDoaui2H4-nu99Sem4rK_8pQGB_ciI5So5pKWMSQ,5766
54
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/vector/creation.md,sha256=jXxrwnor7_YUJc9sYCHjrQnCnHQrVItPI7YttcX-mX8,4491
55
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/vector/opensearch.md,sha256=mM8nILHaFaLfHUaIl7c8Eh0NFx8Z5H4yu5LbC-DmnSU,1368
56
+ awslabs/cdk_mcp_server/static/genai_cdk/bedrock/knowledgebases/vector/pinecone.md,sha256=OnKjSXB6CHBxnXJFGbsIRqpLyA6_S2AiHOJslxQVaOw,2053
57
+ awslabs/cdk_mcp_server/static/genai_cdk/opensearch-vectorindex/overview.md,sha256=0aSuBwX4ubI5WqwEfrnX1MH2UJlJOzdXZQ003fRIrGM,4121
58
+ awslabs/cdk_mcp_server/static/genai_cdk/opensearchserverless/overview.md,sha256=aUO1BRana_xqUPENP3GQyOSCAvV9mI-ZWls7x0g8ruA,746
59
+ awslabs/cdk_mcp_server/static/lambda_powertools/bedrock.md,sha256=Fu54j6sKHdNCUl8FnrIN02kXoTZzdS1g91lURG0ORA4,4292
60
+ awslabs/cdk_mcp_server/static/lambda_powertools/cdk.md,sha256=XBj-31YcphHb1BjCYz4nRpAfPuVJVRmDYI2K7e6Ti8E,3826
61
+ awslabs/cdk_mcp_server/static/lambda_powertools/dependencies.md,sha256=nZ2Fv54rG1rUmD_YHkM9h5VNvB81-Hk8Qx3ZNQSFZLY,1520
62
+ awslabs/cdk_mcp_server/static/lambda_powertools/index.md,sha256=yivjInZAZ3tENKGrrAv7geICzUvKUTskWuaNj9nuPbI,1819
63
+ awslabs/cdk_mcp_server/static/lambda_powertools/insights.md,sha256=t-lgyx2AstqXuY7LeWyhQxknrPN27-nAcwW-GTjI058,3445
64
+ awslabs/cdk_mcp_server/static/lambda_powertools/logging.md,sha256=6CSgD8QB3Bs4s_x4RnbKwZoWvG6aG4etCnmDH6HU9XY,1797
65
+ awslabs/cdk_mcp_server/static/lambda_powertools/metrics.md,sha256=XpQHtNSQRKN3GUqQWkk1lTfQSRC0LmW6VoX1dlwEvnQ,3182
66
+ awslabs/cdk_mcp_server/static/lambda_powertools/tracing.md,sha256=Q3dSCvgktb9sUsuuQ5ONU2Qdb1OTwbNOYpK--MDzBNw,2539
67
+ awslabs/cdk_mcp_server/static/opensearch-vectorindex/overview.md,sha256=0aSuBwX4ubI5WqwEfrnX1MH2UJlJOzdXZQ003fRIrGM,4121
68
+ awslabs/cdk_mcp_server/static/opensearchserverless/overview.md,sha256=aUO1BRana_xqUPENP3GQyOSCAvV9mI-ZWls7x0g8ruA,746
69
+ awslabs_cdk_mcp_server-0.0.10417.dist-info/METADATA,sha256=avkk-nXCT8F_darIG9Iunokw38zL0uBrftGJnlIN1Ns,1000
70
+ awslabs_cdk_mcp_server-0.0.10417.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
71
+ awslabs_cdk_mcp_server-0.0.10417.dist-info/entry_points.txt,sha256=LertzmID_mUU1YYZPySAF1IY1zE7ySTvzFxiGyo3VjY,78
72
+ awslabs_cdk_mcp_server-0.0.10417.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ awslabs.cdk-mcp-server = awslabs.cdk_mcp_server.server:main