awslabs.terraform-mcp-server 0.0.12__tar.gz → 1.0.0__tar.gz
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.
Potentially problematic release.
This version of awslabs.terraform-mcp-server might be problematic. Click here for more details.
- awslabs_terraform_mcp_server-1.0.0/CHANGELOG.md +19 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/Dockerfile +2 -2
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/PKG-INFO +1 -1
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/server.py +1 -13
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/pyproject.toml +1 -1
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_server.py +2 -51
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/uv.lock +1388 -1388
- awslabs_terraform_mcp_server-0.0.12/CHANGELOG.md +0 -12
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/.gitignore +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/.pre-commit-config.yaml +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/.python-version +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/README.md +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/__init__.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/__init__.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/resources/__init__.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/resources/terraform_aws_provider_resources_listing.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/resources/terraform_awscc_provider_resources_listing.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/tools/__init__.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/tools/execute_terraform_command.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/tools/execute_terragrunt_command.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/tools/run_checkov_scan.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/tools/search_aws_provider_docs.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/tools/search_awscc_provider_docs.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/tools/search_specific_aws_ia_modules.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/tools/search_user_provided_module.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/impl/tools/utils.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/models/__init__.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/models/models.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/scripts/generate_aws_provider_resources.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/scripts/generate_awscc_provider_resources.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/scripts/scrape_aws_terraform_best_practices.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/static/AWSCC_PROVIDER_RESOURCES.md +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/static/AWS_PROVIDER_RESOURCES.md +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/static/AWS_TERRAFORM_BEST_PRACTICES.md +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/static/MCP_INSTRUCTIONS.md +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/static/TERRAFORM_WORKFLOW_GUIDE.md +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/awslabs/terraform_mcp_server/static/__init__.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/docker-healthcheck.sh +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/run_tests.sh +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/.gitignore +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/README.md +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/__init__.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/conftest.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_command_impl.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_execute_terraform_command.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_execute_terragrunt_command.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_models.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_parameter_annotations.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_resources.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_run_checkov_scan.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_search_user_provided_module.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_tool_implementations.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_utils.py +0 -0
- {awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_utils_additional.py +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.0.0] - 2025-05-26
|
|
9
|
+
|
|
10
|
+
### Removed
|
|
11
|
+
|
|
12
|
+
- **BREAKING CHANGE:** Server Sent Events (SSE) support has been removed in accordance with the Model Context Protocol specification's [backwards compatibility guidelines](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#backwards-compatibility)
|
|
13
|
+
- This change prepares for future support of [Streamable HTTP](https://modelcontextprotocol.io/specification/draft/basic/transports#streamable-http) transport
|
|
14
|
+
|
|
15
|
+
## Unreleased
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Initial project setup
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
# and limitations under the License.
|
|
11
11
|
|
|
12
12
|
#FROM public.ecr.aws/sam/build-python3.10:1.137.1-20250411084548
|
|
13
|
-
FROM public.ecr.aws/sam/build-python3.10@sha256:
|
|
13
|
+
FROM public.ecr.aws/sam/build-python3.10@sha256:e78695db10ca8cb129e59e30f7dc9789b0dbd0181dba195d68419c72bac51ac1 AS uv
|
|
14
14
|
|
|
15
15
|
# Install the project into `/app`
|
|
16
16
|
WORKDIR /app
|
|
@@ -44,7 +44,7 @@ RUN --mount=type=cache,target=/root/.cache/uv \
|
|
|
44
44
|
# Make the directory just in case it doesn't exist
|
|
45
45
|
RUN mkdir -p /root/.local
|
|
46
46
|
|
|
47
|
-
FROM public.ecr.aws/sam/build-python3.10@sha256:
|
|
47
|
+
FROM public.ecr.aws/sam/build-python3.10@sha256:e78695db10ca8cb129e59e30f7dc9789b0dbd0181dba195d68419c72bac51ac1
|
|
48
48
|
|
|
49
49
|
# Place executables in the environment at the front of the path and include other binaries
|
|
50
50
|
ENV PATH="/app/.venv/bin:$PATH:/usr/sbin"
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""terraform MCP server implementation."""
|
|
3
3
|
|
|
4
|
-
import argparse
|
|
5
4
|
from awslabs.terraform_mcp_server.impl.resources import (
|
|
6
5
|
terraform_aws_provider_assets_listing_impl,
|
|
7
6
|
terraform_awscc_provider_resources_listing_impl,
|
|
@@ -420,18 +419,7 @@ async def terraform_aws_best_practices() -> str:
|
|
|
420
419
|
|
|
421
420
|
def main():
|
|
422
421
|
"""Run the MCP server with CLI argument support."""
|
|
423
|
-
|
|
424
|
-
parser.add_argument('--sse', action='store_true', help='Use SSE transport')
|
|
425
|
-
parser.add_argument('--port', type=int, default=8888, help='Port to run the server on')
|
|
426
|
-
|
|
427
|
-
args = parser.parse_args()
|
|
428
|
-
|
|
429
|
-
# Run server with appropriate transport
|
|
430
|
-
if args.sse:
|
|
431
|
-
mcp.settings.port = args.port
|
|
432
|
-
mcp.run(transport='sse')
|
|
433
|
-
else:
|
|
434
|
-
mcp.run()
|
|
422
|
+
mcp.run()
|
|
435
423
|
|
|
436
424
|
|
|
437
425
|
if __name__ == '__main__':
|
{awslabs_terraform_mcp_server-0.0.12 → awslabs_terraform_mcp_server-1.0.0}/tests/test_server.py
RENAMED
|
@@ -32,7 +32,7 @@ from awslabs.terraform_mcp_server.server import (
|
|
|
32
32
|
terraform_aws_provider_resources_listing,
|
|
33
33
|
terraform_awscc_provider_resources_listing,
|
|
34
34
|
)
|
|
35
|
-
from unittest.mock import
|
|
35
|
+
from unittest.mock import patch
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
class TestMCPServer:
|
|
@@ -568,62 +568,13 @@ class TestResources:
|
|
|
568
568
|
class TestMain:
|
|
569
569
|
"""Tests for the main function."""
|
|
570
570
|
|
|
571
|
-
@patch('awslabs.terraform_mcp_server.server.argparse.ArgumentParser')
|
|
572
571
|
@patch('awslabs.terraform_mcp_server.server.mcp')
|
|
573
|
-
def test_main_default(self, mock_mcp
|
|
572
|
+
def test_main_default(self, mock_mcp):
|
|
574
573
|
"""Test the main function with default arguments."""
|
|
575
574
|
# Set up the mock
|
|
576
|
-
mock_parser = MagicMock()
|
|
577
|
-
mock_args = MagicMock()
|
|
578
|
-
mock_args.sse = False
|
|
579
|
-
mock_parser.parse_args.return_value = mock_args
|
|
580
|
-
mock_argument_parser.return_value = mock_parser
|
|
581
575
|
|
|
582
576
|
# Call the function
|
|
583
577
|
main()
|
|
584
578
|
|
|
585
|
-
# Check that the parser was set up correctly
|
|
586
|
-
mock_argument_parser.assert_called_once_with(
|
|
587
|
-
description='A Model Context Protocol (MCP) server'
|
|
588
|
-
)
|
|
589
|
-
mock_parser.add_argument.assert_any_call(
|
|
590
|
-
'--sse', action='store_true', help='Use SSE transport'
|
|
591
|
-
)
|
|
592
|
-
mock_parser.add_argument.assert_any_call(
|
|
593
|
-
'--port', type=int, default=8888, help='Port to run the server on'
|
|
594
|
-
)
|
|
595
|
-
|
|
596
579
|
# Check that mcp.run was called with the correct arguments
|
|
597
580
|
mock_mcp.run.assert_called_once_with()
|
|
598
|
-
|
|
599
|
-
@patch('awslabs.terraform_mcp_server.server.argparse.ArgumentParser')
|
|
600
|
-
@patch('awslabs.terraform_mcp_server.server.mcp')
|
|
601
|
-
def test_main_with_sse(self, mock_mcp, mock_argument_parser):
|
|
602
|
-
"""Test the main function with SSE transport."""
|
|
603
|
-
# Set up the mock
|
|
604
|
-
mock_parser = MagicMock()
|
|
605
|
-
mock_args = MagicMock()
|
|
606
|
-
mock_args.sse = True
|
|
607
|
-
mock_args.port = 9999
|
|
608
|
-
mock_parser.parse_args.return_value = mock_args
|
|
609
|
-
mock_argument_parser.return_value = mock_parser
|
|
610
|
-
|
|
611
|
-
# Call the function
|
|
612
|
-
main()
|
|
613
|
-
|
|
614
|
-
# Check that the parser was set up correctly
|
|
615
|
-
mock_argument_parser.assert_called_once_with(
|
|
616
|
-
description='A Model Context Protocol (MCP) server'
|
|
617
|
-
)
|
|
618
|
-
mock_parser.add_argument.assert_any_call(
|
|
619
|
-
'--sse', action='store_true', help='Use SSE transport'
|
|
620
|
-
)
|
|
621
|
-
mock_parser.add_argument.assert_any_call(
|
|
622
|
-
'--port', type=int, default=8888, help='Port to run the server on'
|
|
623
|
-
)
|
|
624
|
-
|
|
625
|
-
# Check that mcp.settings.port was set correctly
|
|
626
|
-
assert mock_mcp.settings.port == 9999
|
|
627
|
-
|
|
628
|
-
# Check that mcp.run was called with the correct arguments
|
|
629
|
-
mock_mcp.run.assert_called_once_with(transport='sse')
|