awslabs.cloudwatch-appsignals-mcp-server 0.1.7__py3-none-any.whl → 0.1.8__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 (19) hide show
  1. awslabs/cloudwatch_appsignals_mcp_server/__init__.py +1 -1
  2. awslabs/cloudwatch_appsignals_mcp_server/audit_presentation_utils.py +231 -0
  3. awslabs/cloudwatch_appsignals_mcp_server/audit_utils.py +699 -0
  4. awslabs/cloudwatch_appsignals_mcp_server/aws_clients.py +88 -0
  5. awslabs/cloudwatch_appsignals_mcp_server/server.py +675 -1220
  6. awslabs/cloudwatch_appsignals_mcp_server/service_audit_utils.py +231 -0
  7. awslabs/cloudwatch_appsignals_mcp_server/service_tools.py +659 -0
  8. awslabs/cloudwatch_appsignals_mcp_server/sli_report_client.py +5 -12
  9. awslabs/cloudwatch_appsignals_mcp_server/slo_tools.py +386 -0
  10. awslabs/cloudwatch_appsignals_mcp_server/trace_tools.py +658 -0
  11. awslabs/cloudwatch_appsignals_mcp_server/utils.py +172 -0
  12. awslabs_cloudwatch_appsignals_mcp_server-0.1.8.dist-info/METADATA +636 -0
  13. awslabs_cloudwatch_appsignals_mcp_server-0.1.8.dist-info/RECORD +18 -0
  14. awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info/METADATA +0 -350
  15. awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info/RECORD +0 -10
  16. {awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info → awslabs_cloudwatch_appsignals_mcp_server-0.1.8.dist-info}/WHEEL +0 -0
  17. {awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info → awslabs_cloudwatch_appsignals_mcp_server-0.1.8.dist-info}/entry_points.txt +0 -0
  18. {awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info → awslabs_cloudwatch_appsignals_mcp_server-0.1.8.dist-info}/licenses/LICENSE +0 -0
  19. {awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info → awslabs_cloudwatch_appsignals_mcp_server-0.1.8.dist-info}/licenses/NOTICE +0 -0
@@ -1,350 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: awslabs.cloudwatch-appsignals-mcp-server
3
- Version: 0.1.7
4
- Summary: An AWS Labs Model Context Protocol (MCP) server for AWS Application Signals
5
- Project-URL: Homepage, https://awslabs.github.io/mcp/
6
- Project-URL: Documentation, https://awslabs.github.io/mcp/servers/cloudwatch-appsignals-mcp-server/
7
- Project-URL: Source, https://github.com/awslabs/mcp.git
8
- Project-URL: Bug Tracker, https://github.com/awslabs/mcp/issues
9
- Project-URL: Changelog, https://github.com/awslabs/mcp/blob/main/src/cloudwatch-appsignals-mcp-server/CHANGELOG.md
10
- Author: Amazon Web Services
11
- Author-email: AWSLabs MCP <203918161+awslabs-mcp@users.noreply.github.com>
12
- License: Apache-2.0
13
- License-File: LICENSE
14
- License-File: NOTICE
15
- Classifier: License :: OSI Approved :: Apache Software License
16
- Classifier: Operating System :: OS Independent
17
- Classifier: Programming Language :: Python
18
- Classifier: Programming Language :: Python :: 3
19
- Classifier: Programming Language :: Python :: 3.10
20
- Classifier: Programming Language :: Python :: 3.11
21
- Classifier: Programming Language :: Python :: 3.12
22
- Classifier: Programming Language :: Python :: 3.13
23
- Requires-Python: >=3.10
24
- Requires-Dist: boto3>=1.37.24
25
- Requires-Dist: httpx>=0.24.0
26
- Requires-Dist: loguru>=0.7.3
27
- Requires-Dist: mcp[cli]>=1.11.0
28
- Requires-Dist: pydantic>=2.11.1
29
- Description-Content-Type: text/markdown
30
-
31
- # CloudWatch Application Signals MCP Server
32
-
33
- An MCP (Model Context Protocol) server that provides tools for monitoring and analyzing AWS services using [AWS Application Signals](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Signals.html).
34
-
35
- This server enables AI assistants like Claude, GitHub Copilot, and Amazon Q to help you monitor service health, analyze performance metrics, track SLO compliance, and investigate issues using distributed tracing.
36
-
37
- ## Key Features
38
-
39
- 1. Monitor overall service health, diagnose root causes, and recommend actionable fixes with the built-in APM expertise.
40
- 2. Generate business insights from telemetry data through natural language queries.
41
-
42
- ## Prerequisites
43
-
44
- 1. [Sign-Up for an AWS account](https://aws.amazon.com/free/?trk=78b916d7-7c94-4cab-98d9-0ce5e648dd5f&sc_channel=ps&ef_id=Cj0KCQjwxJvBBhDuARIsAGUgNfjOZq8r2bH2OfcYfYTht5v5I1Bn0lBKiI2Ii71A8Gk39ZU5cwMLPkcaAo_CEALw_wcB:G:s&s_kwcid=AL!4422!3!432339156162!e!!g!!aws%20sign%20up!9572385111!102212379327&gad_campaignid=9572385111&gbraid=0AAAAADjHtp99c5A9DUyUaUQVhVEoi8of3&gclid=Cj0KCQjwxJvBBhDuARIsAGUgNfjOZq8r2bH2OfcYfYTht5v5I1Bn0lBKiI2Ii71A8Gk39ZU5cwMLPkcaAo_CEALw_wcB)
45
- 2. [Enable Application Signals](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Sections.html) for your applications
46
- 3. Install `uv` from [Astral](https://docs.astral.sh/uv/getting-started/installation/) or the [GitHub README](https://github.com/astral-sh/uv#installation)
47
- 4. Install Python using `uv python install 3.10`
48
-
49
- ### Available Tools
50
-
51
- 1. **`list_monitored_services`** - List all services monitored by AWS Application Signals
52
- - Get an overview of all monitored services
53
- - See service names, types, and key attributes
54
- - Identify the services monitored by Application Signals
55
-
56
- 2. **`get_service_detail`** - Get detailed information about a specific service
57
- - Get Service key properties such as Hosting environment, list of APIs,etc
58
- - Get the list of ApplicationSignals metrics available on service
59
- - Find associated log groups
60
-
61
- 3. **`list_slis`** - List all SLOs and SLIs status for all services
62
- - List the configured SLOs and across all services
63
- - Find out all breached SLIs and status
64
-
65
- 4. **`get_slo`** - Gets the details configuration for a specific SLO
66
- - Return the relevant metrics info, SLO threshold
67
-
68
- 5. **`search_transaction_spans`** - Queries OTel Spans data via Transaction Search
69
- - Query OTel Spans to root cause the potential problems
70
- - Generate business performance insights summaries
71
-
72
- 6. **`query_sampled_traces`** - Queries AWS X-Ray traces to gain deeper insights
73
- - Find the impact from the tracing dependency view
74
- - Return the exact error stack for LLM to suggest the actionable fixes
75
-
76
- 7. **`query_service_metrics`** - Queries Application Signals metrics for root causing service performance issues
77
- - Query Application Signals RED metrics to correlate the relevant OTel Spans/Traces for troubleshooting
78
-
79
- ## Installation
80
-
81
- ### One-Click Installation
82
-
83
- | Cursor | VS Code |
84
- |:------:|:-------:|
85
- | [![Install MCP Server](https://cursor.com/deeplink/mcp-install-light.svg)](https://cursor.com/en/install-mcp?name=awslabs.cloudwatch-appsignals-mcp-server&config=eyJhdXRvQXBwcm92ZSI6W10sImRpc2FibGVkIjpmYWxzZSwidGltZW91dCI6NjAsImNvbW1hbmQiOiJ1dnggYXdzbGFicy5jbG91ZHdhdGNoLWFwcHNpZ25hbHMtbWNwLXNlcnZlckBsYXRlc3QiLCJlbnYiOnsiQVdTX1BST0ZJTEUiOiJbVGhlIEFXUyBQcm9maWxlIE5hbWUgdG8gdXNlIGZvciBBV1MgYWNjZXNzXSIsIkFXU19SRUdJT04iOiJbVGhlIEFXUyByZWdpb24gdG8gcnVuIGluXSIsIkZBU1RNQ1BfTE9HX0xFVkVMIjoiRVJST1IifSwidHJhbnNwb3J0VHlwZSI6InN0ZGlvIn0%3D) | [![Install on VS Code](https://img.shields.io/badge/Install_on-VS_Code-FF9900?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=CloudWatch%20Application%20Signals%20MCP%20Server&config=%7B%22autoApprove%22%3A%5B%5D%2C%22disabled%22%3Afalse%2C%22timeout%22%3A60%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22awslabs.cloudwatch-appsignals-mcp-server%40latest%22%5D%2C%22env%22%3A%7B%22AWS_PROFILE%22%3A%22%5BThe%20AWS%20Profile%20Name%20to%20use%20for%20AWS%20access%5D%22%2C%22AWS_REGION%22%3A%22%5BThe%20AWS%20region%20to%20run%20in%5D%22%2C%22FASTMCP_LOG_LEVEL%22%3A%22ERROR%22%7D%2C%22transportType%22%3A%22stdio%22%7D) |
86
-
87
- ### Installing via `uv`
88
-
89
- When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
90
- use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *awslabs.cloudwatch-appsignals-mcp-server*.
91
-
92
- ### Installing for Amazon Q (Preview)
93
-
94
- - Start Amazon Q Developer CLI from [here](https://github.com/aws/amazon-q-developer-cli).
95
- - Add the following configuration in `~/.aws/amazonq/mcp.json` file.
96
- ```json
97
- {
98
- "mcpServers": {
99
- "awslabs.cloudwatch-appsignals-mcp": {
100
- "autoApprove": [],
101
- "disabled": false,
102
- "command": "uvx",
103
- "args": [
104
- "awslabs.cloudwatch-appsignals-mcp-server@latest"
105
- ],
106
- "env": {
107
- "AWS_PROFILE": "[The AWS Profile Name to use for AWS access]",
108
- "AWS_REGION": "[AWS Region]",
109
- "FASTMCP_LOG_LEVEL": "ERROR"
110
- },
111
- "transportType": "stdio"
112
- }
113
- }
114
- }
115
- ```
116
-
117
- ### Installing via Claude Desktop
118
-
119
- On MacOS: `~/Library/Application\ Support/Claude/claude_desktop_config.json`
120
- On Windows: `%APPDATA%/Claude/claude_desktop_config.json`
121
-
122
- <details>
123
- <summary>Development/Unpublished Servers Configuration</summary>
124
- When installing a development or unpublished server, add the `--directory` flag:
125
-
126
- ```json
127
- {
128
- "mcpServers": {
129
- "awslabs.cloudwatch-appsignals-mcp-server": {
130
- "command": "uvx",
131
- "args": ["--from", "/absolute/path/to/cloudwatch-appsignals-mcp-server", "awslabs.cloudwatch-appsignals-mcp-server"],
132
- "env": {
133
- "AWS_PROFILE": "[The AWS Profile Name to use for AWS access]",
134
- "AWS_REGION": "[AWS Region]"
135
- }
136
- }
137
- }
138
- }
139
- ```
140
- </details>
141
-
142
- <details>
143
- <summary>Published Servers Configuration</summary>
144
-
145
- ```json
146
- {
147
- "mcpServers": {
148
- "awslabs.cloudwatch-appsignals-mcp-server": {
149
- "command": "uvx",
150
- "args": ["awslabs.cloudwatch-appsignals-mcp-server@latest"],
151
- "env": {
152
- "AWS_PROFILE": "[The AWS Profile Name to use for AWS access]",
153
- "AWS_REGION": "[AWS Region]"
154
- }
155
- }
156
- }
157
- }
158
- ```
159
- </details>
160
-
161
- ### Windows Installation
162
-
163
- For Windows users, the MCP server configuration format is slightly different:
164
-
165
- ```json
166
- {
167
- "mcpServers": {
168
- "awslabs.cloudwatch-appsignals-mcp-server": {
169
- "disabled": false,
170
- "timeout": 60,
171
- "type": "stdio",
172
- "command": "uv",
173
- "args": [
174
- "tool",
175
- "run",
176
- "--from",
177
- "awslabs.cloudwatch-appsignals-mcp-server@latest",
178
- "awslabs.cloudwatch-appsignals-mcp-server.exe"
179
- ],
180
- "env": {
181
- "FASTMCP_LOG_LEVEL": "ERROR",
182
- "AWS_PROFILE": "your-aws-profile",
183
- "AWS_REGION": "us-east-1"
184
- }
185
- }
186
- }
187
- }
188
- ```
189
-
190
- ### Build and install docker image locally on the same host of your LLM client
191
-
192
- 1. `git clone https://github.com/awslabs/mcp.git`
193
- 2. Go to sub-directory 'src/cloudwatch-appsignals-mcp-server/'
194
- 3. Run 'docker build -t awslabs/cloudwatch-appsignals-mcp-server:latest .'
195
-
196
- ### Add or update your LLM client's config with following:
197
- ```json
198
- {
199
- "mcpServers": {
200
- "awslabs.cloudwatch-appsignals-mcp-server": {
201
- "command": "docker",
202
- "args": [
203
- "run",
204
- "-i",
205
- "--rm",
206
- "-v", "${HOME}/.aws:/root/.aws:ro",
207
- "-e", "AWS_PROFILE=[The AWS Profile Name to use for AWS access]",
208
- "-e", "AWS_REGION=[AWS Region]",
209
- "awslabs/cloudwatch-appsignals-mcp-server:latest"
210
- ]
211
- }
212
- }
213
- }
214
- ```
215
-
216
- ### Debugging
217
-
218
- You can use the MCP inspector to debug the server. For `uvx` installations:
219
-
220
- ```bash
221
- npx @modelcontextprotocol/inspector uvx awslabs.cloudwatch-appsignals-mcp-server
222
- ```
223
-
224
- Or if you've installed the package in a specific directory:
225
-
226
- ```bash
227
- cd /path/to/cloudwatch-appsignals-mcp-server
228
- npx @modelcontextprotocol/inspector uv run awslabs.cloudwatch-appsignals-mcp-server
229
- ```
230
-
231
- ## Usage Examples
232
-
233
- ### Example 1: Getting Started with Service Monitoring
234
- ```
235
- User: "What services are being monitored by Application Signals?"
236
- Assistant: I'll check what services are currently being monitored by AWS Application Signals.
237
-
238
- [Uses list_monitored_services tool]
239
-
240
- I found 3 services being monitored:
241
-
242
- • Service: api-gateway-service
243
- Type: AWS::ApiGateway::RestApi
244
- Key Attributes:
245
- Name: api-gateway-service
246
- Type: AWS::ApiGateway::RestApi
247
- Environment: production
248
-
249
- • Service: order-service
250
- Type: AWS::ECS::Service
251
- Key Attributes:
252
- Name: order-service
253
- Type: AWS::ECS::Service
254
- Environment: production
255
- Platform: ECS
256
-
257
- • Service: payment-lambda
258
- Type: AWS::Lambda::Function
259
- Key Attributes:
260
- Name: payment-lambda
261
- Type: AWS::Lambda::Function
262
- Environment: production
263
- ```
264
-
265
- ### Example 2: Investigating Service Details
266
- ```
267
- User: "Tell me more about the order-service"
268
- Assistant: I'll get detailed information about the order-service.
269
-
270
- [Uses get_service_detail tool]
271
-
272
- Here are the details for order-service:
273
-
274
- Key Attributes:
275
- Name: order-service
276
- Type: AWS::ECS::Service
277
- Environment: production
278
-
279
- Additional Attributes:
280
- Platform: ECS
281
- Application: ecommerce-app
282
- Telemetry.SDK: opentelemetry-1.9.0
283
-
284
- Metric References (15 total):
285
- • AWS/ApplicationSignals/Latency
286
- Type: GAUGE
287
- Dimensions: Service=order-service, Operation=GetOrder
288
-
289
- • AWS/ApplicationSignals/ErrorRate
290
- Type: GAUGE
291
- Dimensions: Service=order-service, Operation=CreateOrder
292
-
293
- Log Group References (2 total):
294
- • /aws/ecs/order-service
295
- • /aws/application-signals/order-service
296
- ```
297
-
298
- ## Configuration
299
-
300
- ### Required AWS Permissions
301
-
302
- The server requires the following AWS IAM permissions:
303
-
304
- ```json
305
- {
306
- "Version": "2012-10-17",
307
- "Statement": [
308
- {
309
- "Effect": "Allow",
310
- "Action": [
311
- "application-signals:ListServices",
312
- "application-signals:GetService",
313
- "application-signals:ListServiceLevelObjectives",
314
- "application-signals:GetServiceLevelObjective",
315
- "application-signals:BatchGetServiceLevelObjectiveBudgetReport",
316
- "cloudwatch:GetMetricData",
317
- "logs:GetQueryResults",
318
- "logs:StartQuery",
319
- "logs:StopQuery",
320
- "xray:GetTraceSummaries",
321
- "xray:BatchGetTraces"
322
- ],
323
- "Resource": "*"
324
- }
325
- ]
326
- }
327
- ```
328
-
329
- ### Environment Variables
330
-
331
- - `AWS_PROFILE` - AWS profile name to use for authentication (defaults to `default` profile)
332
- - `AWS_REGION` - AWS region (defaults to us-east-1)
333
- - `MCP_CLOUDWATCH_APPSIGNALS_LOG_LEVEL` - Logging level (defaults to INFO)
334
-
335
- ### AWS Credentials
336
-
337
- This server uses AWS profiles for authentication. Set the `AWS_PROFILE` environment variable to use a specific profile from your `~/.aws/credentials` file.
338
-
339
- The server will use the standard AWS credential chain via boto3, which includes:
340
- - AWS Profile specified by `AWS_PROFILE` environment variable
341
- - Default profile from AWS credentials file
342
- - IAM roles when running on EC2, ECS, Lambda, etc.
343
-
344
- ## Development
345
-
346
- This server is part of the AWS Labs MCP collection. For development and contribution guidelines, please see the main repository documentation.
347
-
348
- ## License
349
-
350
- This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
@@ -1,10 +0,0 @@
1
- awslabs/__init__.py,sha256=WuqxdDgUZylWNmVoPKiK7qGsTB_G4UmuXIrJ-VBwDew,731
2
- awslabs/cloudwatch_appsignals_mcp_server/__init__.py,sha256=6K-rhRsJmWnRBrN22Gav6jjzLIKWgGHYLhyVQtylC5w,681
3
- awslabs/cloudwatch_appsignals_mcp_server/server.py,sha256=aHrgd6emnS34-qyldcwjzG9qOPQVd1PLmge44mElPr8,58892
4
- awslabs/cloudwatch_appsignals_mcp_server/sli_report_client.py,sha256=t9ZtbD-yBv-HxGI0Bc_d9b4XtTDNEE59ekCMSh6j_Mo,12641
5
- awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info/METADATA,sha256=_L2PcfzxiluL_xEpHoJ-NhybifH6ULB6tPhqzDHFg8o,12736
6
- awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
7
- awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info/entry_points.txt,sha256=iGwIMLU6AsBawl2Fhqi9GoeWdMGIVtg86-McaaNQqAQ,114
8
- awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info/licenses/LICENSE,sha256=zE1N4JILDTkSIDtdmqdnKKxKEQh_VdqeoAV2230eNOI,10141
9
- awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info/licenses/NOTICE,sha256=Pfbul2Ga0IJU2RMZFHC8QwDvNk72WO2XMn9l3390VYs,108
10
- awslabs_cloudwatch_appsignals_mcp_server-0.1.7.dist-info/RECORD,,