awslabs.cfn-mcp-server 1.0.0__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.
- awslabs/cfn_mcp_server/aws_client.py +5 -1
- awslabs/cfn_mcp_server/errors.py +1 -1
- awslabs/cfn_mcp_server/server.py +1 -5
- {awslabs_cfn_mcp_server-1.0.0.dist-info → awslabs_cfn_mcp_server-1.0.1.dist-info}/METADATA +4 -3
- awslabs_cfn_mcp_server-1.0.1.dist-info/RECORD +14 -0
- awslabs_cfn_mcp_server-1.0.0.dist-info/RECORD +0 -14
- {awslabs_cfn_mcp_server-1.0.0.dist-info → awslabs_cfn_mcp_server-1.0.1.dist-info}/WHEEL +0 -0
- {awslabs_cfn_mcp_server-1.0.0.dist-info → awslabs_cfn_mcp_server-1.0.1.dist-info}/entry_points.txt +0 -0
- {awslabs_cfn_mcp_server-1.0.0.dist-info → awslabs_cfn_mcp_server-1.0.1.dist-info}/licenses/LICENSE +0 -0
- {awslabs_cfn_mcp_server-1.0.0.dist-info → awslabs_cfn_mcp_server-1.0.1.dist-info}/licenses/NOTICE +0 -0
|
@@ -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
|
awslabs/cfn_mcp_server/errors.py
CHANGED
|
@@ -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
|
|
89
|
+
super().__init__('An internal error occurred while processing your request')
|
|
90
90
|
print(log)
|
|
91
91
|
self.type = 'server'
|
awslabs/cfn_mcp_server/server.py
CHANGED
|
@@ -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
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: awslabs.cfn-mcp-server
|
|
3
|
-
Version: 1.0.
|
|
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
|
|
@@ -92,10 +93,10 @@ If you would like to prevent the MCP from taking any mutating actions (i.e. Crea
|
|
|
92
93
|
}
|
|
93
94
|
```
|
|
94
95
|
|
|
95
|
-
or docker after a
|
|
96
|
+
or docker after a successful `docker build -t awslabs/cfn-mcp-server .`:
|
|
96
97
|
|
|
97
98
|
```file
|
|
98
|
-
#
|
|
99
|
+
# fictitious `.env` file with AWS temporary credentials
|
|
99
100
|
AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
|
|
100
101
|
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
|
|
101
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=9_BTzMPJxr-fc3BhBOia2a3S_xOP9HX2IS0lNZawFS4,13858
|
|
9
|
-
awslabs_cfn_mcp_server-1.0.0.dist-info/METADATA,sha256=PiZrjprpOLgEVLW9UkFPd1AvY-xrtCbLnbr_i0XNj0M,8239
|
|
10
|
-
awslabs_cfn_mcp_server-1.0.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
11
|
-
awslabs_cfn_mcp_server-1.0.0.dist-info/entry_points.txt,sha256=Hartc24s_fYgi3o2m2tBHahod0pqXYwpebQy2_tXL7s,78
|
|
12
|
-
awslabs_cfn_mcp_server-1.0.0.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
|
|
13
|
-
awslabs_cfn_mcp_server-1.0.0.dist-info/licenses/NOTICE,sha256=bcw4NZAgn5eQZzrtuDiwOe23BRSm_JiRzn0gxBLDzlg,90
|
|
14
|
-
awslabs_cfn_mcp_server-1.0.0.dist-info/RECORD,,
|
|
File without changes
|
{awslabs_cfn_mcp_server-1.0.0.dist-info → awslabs_cfn_mcp_server-1.0.1.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{awslabs_cfn_mcp_server-1.0.0.dist-info → awslabs_cfn_mcp_server-1.0.1.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{awslabs_cfn_mcp_server-1.0.0.dist-info → awslabs_cfn_mcp_server-1.0.1.dist-info}/licenses/NOTICE
RENAMED
|
File without changes
|