awslabs.cfn-mcp-server 0.0.1__py3-none-any.whl → 1.0.1__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.
@@ -9,6 +9,7 @@
9
9
  # OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
10
10
  # and limitations under the License.
11
11
 
12
+ import botocore.config
12
13
  import sys
13
14
  from awslabs.cfn_mcp_server.errors import ClientError
14
15
  from boto3 import Session
@@ -16,6 +17,9 @@ from os import environ
16
17
 
17
18
 
18
19
  session = Session(profile_name=environ.get('AWS_PROFILE'))
20
+ session_config = botocore.config.Config(
21
+ user_agent_extra='cfn-mcp-server/1.0.0',
22
+ )
19
23
 
20
24
 
21
25
  def get_aws_client(service_name, region_name=None):
@@ -47,7 +51,7 @@ def get_aws_client(service_name, region_name=None):
47
51
  print(
48
52
  f'Creating new {service_name} client for region {region_name} with auto-detected credentials'
49
53
  )
50
- client = session.client(service_name, region_name=region_name)
54
+ client = session.client(service_name, region_name=region_name, config=session_config)
51
55
 
52
56
  print('Created client for service with credentials')
53
57
  return client
@@ -86,6 +86,6 @@ class ServerError(Exception):
86
86
  def __init__(self, log):
87
87
  """Call super."""
88
88
  # Call the base class constructor with the parameters it needs
89
- super().__init__('An internal error occured while processing your request')
89
+ super().__init__('An internal error occurred while processing your request')
90
90
  print(log)
91
91
  self.type = 'server'
@@ -31,11 +31,7 @@ mcp = FastMCP(
31
31
  1. Read and List all of your AWS resources by the CloudFormation type name (e.g. AWS::S3::Bucket)
32
32
  2. Create/Update/Delete your AWS resources
33
33
  """,
34
- dependencies=[
35
- 'pydantic',
36
- 'loguru',
37
- 'boto3',
38
- ],
34
+ dependencies=['pydantic', 'loguru', 'boto3', 'botocore'],
39
35
  )
40
36
 
41
37
 
@@ -358,8 +354,6 @@ def main():
358
354
  parser = argparse.ArgumentParser(
359
355
  description='An AWS Labs Model Context Protocol (MCP) server for doing common cloudformation tasks and for managing your resources in your AWS account'
360
356
  )
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
357
  parser.add_argument(
364
358
  '--readonly',
365
359
  action=argparse.BooleanOptionalAction,
@@ -368,13 +362,7 @@ def main():
368
362
 
369
363
  args = parser.parse_args()
370
364
  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()
365
+ mcp.run()
378
366
 
379
367
 
380
368
  if __name__ == '__main__':
@@ -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.1
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/
@@ -22,6 +22,7 @@ Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Programming Language :: Python :: 3.13
23
23
  Requires-Python: >=3.10
24
24
  Requires-Dist: boto3>=1.34.0
25
+ Requires-Dist: botocore>=1.34.0
25
26
  Requires-Dist: loguru>=0.7.0
26
27
  Requires-Dist: mcp[cli]>=1.6.0
27
28
  Requires-Dist: pydantic>=2.10.6
@@ -59,11 +60,10 @@ Here are some ways you can work with MCP across AWS, and we'll be adding support
59
60
  "awslabs.cfn-mcp-server": {
60
61
  "command": "uvx",
61
62
  "args": [
62
- "awslabs.aws-cfn-mcp-server@latest",
63
- "--readonly" // Optional paramter if you would like to restrict the MCP to only read actions
63
+ "awslabs.cfn-mcp-server@latest"
64
64
  ],
65
65
  "env": {
66
- "AWS_PROFILE": "your-named-profile",
66
+ "AWS_PROFILE": "your-named-profile"
67
67
  },
68
68
  "disabled": false,
69
69
  "autoApprove": []
@@ -72,10 +72,31 @@ Here are some ways you can work with MCP across AWS, and we'll be adding support
72
72
  }
73
73
  ```
74
74
 
75
- or docker after a succesful `docker build -t awslabs/cfn-mcp-server .`:
75
+ 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:
76
+
77
+ ```json
78
+ {
79
+ "mcpServers": {
80
+ "awslabs.cfn-mcp-server": {
81
+ "command": "uvx",
82
+ "args": [
83
+ "awslabs.cfn-mcp-server@latest",
84
+ "--readonly"
85
+ ],
86
+ "env": {
87
+ "AWS_PROFILE": "your-named-profile"
88
+ },
89
+ "disabled": false,
90
+ "autoApprove": []
91
+ }
92
+ }
93
+ }
94
+ ```
95
+
96
+ or docker after a successful `docker build -t awslabs/cfn-mcp-server .`:
76
97
 
77
98
  ```file
78
- # ficticious `.env` file with AWS temporary credentials
99
+ # fictitious `.env` file with AWS temporary credentials
79
100
  AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
80
101
  AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
81
102
  AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
@@ -0,0 +1,14 @@
1
+ awslabs/__init__.py,sha256=47wJeKcStxEJwX7SVVV2pnAWYR8FxcaYoT3YTmZ5Plg,674
2
+ awslabs/cfn_mcp_server/__init__.py,sha256=0iDzkNDzH_VHat2joZdYA_i2NeOiAWYlorKpKaW1vpE,611
3
+ awslabs/cfn_mcp_server/aws_client.py,sha256=w0cwuQq7b34IUaABEwZYpEols1QoMjO2gd3T98K5FcE,2783
4
+ awslabs/cfn_mcp_server/cloud_control_utils.py,sha256=wUDT-J9iEAOYnqZAG2vDtBsXUp0EUZ__jQzJ4RJ6AvM,2973
5
+ awslabs/cfn_mcp_server/context.py,sha256=YpJZPjyzHW7df9O-lyj2j8yuenZI-yPxLuVuyvmnAnE,777
6
+ awslabs/cfn_mcp_server/errors.py,sha256=0ADg9EesPyvjNZD-J89QLQ5OFcD6aSKDaMfW_4RQjfo,4481
7
+ awslabs/cfn_mcp_server/schema_manager.py,sha256=7dw2W2hgdn1ODRU5PrUmOG9_rvnKUhGD51q8Wz4Ksks,6775
8
+ awslabs/cfn_mcp_server/server.py,sha256=A_t60rwFRDJ8KopbS_zo5aYr7aqh6KiE5IWyZrLrh1U,13839
9
+ awslabs_cfn_mcp_server-1.0.1.dist-info/METADATA,sha256=umJjb2U5Yx0-oyjbCpu815RMJrNIlT6ednWO-EGZ61c,8272
10
+ awslabs_cfn_mcp_server-1.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
11
+ awslabs_cfn_mcp_server-1.0.1.dist-info/entry_points.txt,sha256=Hartc24s_fYgi3o2m2tBHahod0pqXYwpebQy2_tXL7s,78
12
+ awslabs_cfn_mcp_server-1.0.1.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
13
+ awslabs_cfn_mcp_server-1.0.1.dist-info/licenses/NOTICE,sha256=bcw4NZAgn5eQZzrtuDiwOe23BRSm_JiRzn0gxBLDzlg,90
14
+ awslabs_cfn_mcp_server-1.0.1.dist-info/RECORD,,
@@ -1,14 +0,0 @@
1
- awslabs/__init__.py,sha256=47wJeKcStxEJwX7SVVV2pnAWYR8FxcaYoT3YTmZ5Plg,674
2
- awslabs/cfn_mcp_server/__init__.py,sha256=0iDzkNDzH_VHat2joZdYA_i2NeOiAWYlorKpKaW1vpE,611
3
- awslabs/cfn_mcp_server/aws_client.py,sha256=E7ekLizw0P6q9Pem40UDnhFTHKo5TMYmPeajuFDnMBY,2649
4
- awslabs/cfn_mcp_server/cloud_control_utils.py,sha256=wUDT-J9iEAOYnqZAG2vDtBsXUp0EUZ__jQzJ4RJ6AvM,2973
5
- awslabs/cfn_mcp_server/context.py,sha256=YpJZPjyzHW7df9O-lyj2j8yuenZI-yPxLuVuyvmnAnE,777
6
- awslabs/cfn_mcp_server/errors.py,sha256=rNHaKx9t3xJGLLypSxXO6ec8nl1h19e8_2yYMTmDP4g,4480
7
- awslabs/cfn_mcp_server/schema_manager.py,sha256=7dw2W2hgdn1ODRU5PrUmOG9_rvnKUhGD51q8Wz4Ksks,6775
8
- awslabs/cfn_mcp_server/server.py,sha256=y0ipXAv2TKIxYTaGQZDkU1nxb7y6bXN9BW-TkzFSzuU,14177
9
- awslabs_cfn_mcp_server-0.0.1.dist-info/METADATA,sha256=q3oLI4k5q_bNnJHwGmrxleB97Y_IBbxA9IGdZMdB_kk,7875
10
- awslabs_cfn_mcp_server-0.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
11
- awslabs_cfn_mcp_server-0.0.1.dist-info/entry_points.txt,sha256=Hartc24s_fYgi3o2m2tBHahod0pqXYwpebQy2_tXL7s,78
12
- awslabs_cfn_mcp_server-0.0.1.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
13
- awslabs_cfn_mcp_server-0.0.1.dist-info/licenses/NOTICE,sha256=bcw4NZAgn5eQZzrtuDiwOe23BRSm_JiRzn0gxBLDzlg,90
14
- awslabs_cfn_mcp_server-0.0.1.dist-info/RECORD,,