awslabs.cfn-mcp-server 0.0.1__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.
Files changed (31) hide show
  1. awslabs_cfn_mcp_server-1.0.0/CHANGELOG.md +19 -0
  2. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/Dockerfile +2 -2
  3. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/PKG-INFO +24 -4
  4. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/README.md +23 -3
  5. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/awslabs/cfn_mcp_server/server.py +1 -9
  6. awslabs_cfn_mcp_server-1.0.0/docker-healthcheck.sh +12 -0
  7. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/pyproject.toml +1 -1
  8. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/tests/test_main.py +0 -17
  9. awslabs_cfn_mcp_server-0.0.1/CHANGELOG.md +0 -12
  10. awslabs_cfn_mcp_server-0.0.1/docker-healthcheck.sh +0 -12
  11. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/.gitignore +0 -0
  12. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/.pre-commit-config.yaml +0 -0
  13. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/.python-version +0 -0
  14. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/LICENSE +0 -0
  15. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/NOTICE +0 -0
  16. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/awslabs/__init__.py +0 -0
  17. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/awslabs/cfn_mcp_server/__init__.py +0 -0
  18. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/awslabs/cfn_mcp_server/aws_client.py +0 -0
  19. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/awslabs/cfn_mcp_server/cloud_control_utils.py +0 -0
  20. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/awslabs/cfn_mcp_server/context.py +0 -0
  21. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/awslabs/cfn_mcp_server/errors.py +0 -0
  22. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/awslabs/cfn_mcp_server/schema_manager.py +0 -0
  23. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/run_tests.sh +0 -0
  24. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/tests/__init__.py +0 -0
  25. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/tests/test_aws_client.py +0 -0
  26. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/tests/test_cloud_control_utils.py +0 -0
  27. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/tests/test_errors.py +0 -0
  28. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/tests/test_init.py +0 -0
  29. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/tests/test_schema_manager.py +0 -0
  30. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/tests/test_server.py +0 -0
  31. {awslabs_cfn_mcp_server-0.0.1 → awslabs_cfn_mcp_server-1.0.0}/uv.lock +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:04cdbe84bec08d17d621192bc3f0a9e4a85a83f2ac99aa9241659dfac0d845ea AS uv
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:04cdbe84bec08d17d621192bc3f0a9e4a85a83f2ac99aa9241659dfac0d845ea
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: awslabs.cfn-mcp-server
3
- Version: 0.0.1
3
+ Version: 1.0.0
4
4
  Summary: An AWS Labs Model Context Protocol (MCP) server for doing common cloudformation tasks and for managing your resources in your AWS account
5
5
  Project-URL: homepage, https://awslabs.github.io/mcp/
6
6
  Project-URL: docs, https://awslabs.github.io/mcp/servers/cfn-mcp-server/
@@ -59,11 +59,31 @@ Here are some ways you can work with MCP across AWS, and we'll be adding support
59
59
  "awslabs.cfn-mcp-server": {
60
60
  "command": "uvx",
61
61
  "args": [
62
- "awslabs.aws-cfn-mcp-server@latest",
63
- "--readonly" // Optional paramter if you would like to restrict the MCP to only read actions
62
+ "awslabs.cfn-mcp-server@latest"
64
63
  ],
65
64
  "env": {
66
- "AWS_PROFILE": "your-named-profile",
65
+ "AWS_PROFILE": "your-named-profile"
66
+ },
67
+ "disabled": false,
68
+ "autoApprove": []
69
+ }
70
+ }
71
+ }
72
+ ```
73
+
74
+ If you would like to prevent the MCP from taking any mutating actions (i.e. Create/Update/Delete Resource), you can specify the readonly flag as demonstrated below:
75
+
76
+ ```json
77
+ {
78
+ "mcpServers": {
79
+ "awslabs.cfn-mcp-server": {
80
+ "command": "uvx",
81
+ "args": [
82
+ "awslabs.cfn-mcp-server@latest",
83
+ "--readonly"
84
+ ],
85
+ "env": {
86
+ "AWS_PROFILE": "your-named-profile"
67
87
  },
68
88
  "disabled": false,
69
89
  "autoApprove": []
@@ -30,11 +30,31 @@ Here are some ways you can work with MCP across AWS, and we'll be adding support
30
30
  "awslabs.cfn-mcp-server": {
31
31
  "command": "uvx",
32
32
  "args": [
33
- "awslabs.aws-cfn-mcp-server@latest",
34
- "--readonly" // Optional paramter if you would like to restrict the MCP to only read actions
33
+ "awslabs.cfn-mcp-server@latest"
35
34
  ],
36
35
  "env": {
37
- "AWS_PROFILE": "your-named-profile",
36
+ "AWS_PROFILE": "your-named-profile"
37
+ },
38
+ "disabled": false,
39
+ "autoApprove": []
40
+ }
41
+ }
42
+ }
43
+ ```
44
+
45
+ If you would like to prevent the MCP from taking any mutating actions (i.e. Create/Update/Delete Resource), you can specify the readonly flag as demonstrated below:
46
+
47
+ ```json
48
+ {
49
+ "mcpServers": {
50
+ "awslabs.cfn-mcp-server": {
51
+ "command": "uvx",
52
+ "args": [
53
+ "awslabs.cfn-mcp-server@latest",
54
+ "--readonly"
55
+ ],
56
+ "env": {
57
+ "AWS_PROFILE": "your-named-profile"
38
58
  },
39
59
  "disabled": false,
40
60
  "autoApprove": []
@@ -358,8 +358,6 @@ def main():
358
358
  parser = argparse.ArgumentParser(
359
359
  description='An AWS Labs Model Context Protocol (MCP) server for doing common cloudformation tasks and for managing your resources in your AWS account'
360
360
  )
361
- parser.add_argument('--sse', action='store_true', help='Use SSE transport')
362
- parser.add_argument('--port', type=int, default=8888, help='Port to run the server on')
363
361
  parser.add_argument(
364
362
  '--readonly',
365
363
  action=argparse.BooleanOptionalAction,
@@ -368,13 +366,7 @@ def main():
368
366
 
369
367
  args = parser.parse_args()
370
368
  Context.initialize(args.readonly)
371
-
372
- # Run server with appropriate transport
373
- if args.sse:
374
- mcp.settings.port = args.port
375
- mcp.run(transport='sse')
376
- else:
377
- mcp.run()
369
+ mcp.run()
378
370
 
379
371
 
380
372
  if __name__ == '__main__':
@@ -0,0 +1,12 @@
1
+ #!/bin/sh
2
+
3
+ if [ "$(lsof +c 0 -p 1 | grep -e "^awslabs\..*\s1\s.*\sunix\s.*socket$" | wc -l)" -ne "0" ]; then
4
+ echo -n "$(lsof +c 0 -p 1 | grep -e "^awslabs\..*\s1\s.*\sunix\s.*socket$" | wc -l) awslabs.* streams found";
5
+ exit 0;
6
+ else
7
+ echo -n "Zero awslabs.* streams found";
8
+ exit 1;
9
+ fi;
10
+
11
+ echo -n "Never should reach here";
12
+ exit 99;
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "awslabs.cfn-mcp-server"
3
- version = "0.0.1"
3
+ version = "1.0.0"
4
4
  description = "An AWS Labs Model Context Protocol (MCP) server for doing common cloudformation tasks and for managing your resources in your AWS account"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -26,23 +26,6 @@ class TestMain:
26
26
 
27
27
  # Check that mcp.run was called with the correct arguments
28
28
  mock_run.assert_called_once()
29
- assert mock_run.call_args[1].get('transport') is None
30
-
31
- @patch('awslabs.cfn_mcp_server.server.mcp.run')
32
- @patch('sys.argv', ['awslabs.cfn-mcp-server', '--sse', '--port', '9999'])
33
- def test_main_sse(self, mock_run):
34
- """Test main function with SSE transport."""
35
- # Call the main function
36
- main()
37
-
38
- # Check that mcp.run was called with the correct arguments
39
- mock_run.assert_called_once()
40
- assert mock_run.call_args[1].get('transport') == 'sse'
41
-
42
- # Check that the port was set correctly
43
- from awslabs.cfn_mcp_server.server import mcp
44
-
45
- assert mcp.settings.port == 9999
46
29
 
47
30
  def test_module_execution(self):
48
31
  """Test the module execution when run as __main__."""
@@ -1,12 +0,0 @@
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
- ## Unreleased
9
-
10
- ### Added
11
-
12
- - Initial project setup
@@ -1,12 +0,0 @@
1
- #!/bin/sh
2
-
3
- if [ "$(lsof +c 0 -p 1 | grep -e grep -e "^awslabs\..*\s1\s.*\unix\s.*socket$" | wc -l)" -ne "0" ]; then
4
- echo -n "$(lsof +c 0 -p 1 | grep -e grep -e "^awslabs\..*\s1\s.*\unix\s.*socket$" | wc -l) awslabs.* streams found";
5
- exit 0;
6
- else
7
- echo -n "Zero awslabs.* streams found";
8
- exit 1;
9
- fi;
10
-
11
- echo -n "Never should reach here";
12
- exit 99;