cloudwatch-mcp
Allows searching and analyzing AWS CloudWatch logs, with tools for browsing log groups, listing log streams, searching logs with filter patterns, executing CloudWatch Logs Insights queries, and retrieving log group metadata.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cloudwatch-mcp Search for errors in the last hour"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CloudWatch MCP Server
A Model Context Protocol (MCP) server for searching and analyzing AWS CloudWatch logs. Supports configurable log groups, time-based searches, and service-specific log stream filtering.
Features
list_log_groups - Browse available CloudWatch log groups
list_log_streams - Filter streams by prefix and date (perfect for service-based streams like
sprive-backend-2026-02-20)search_logs - Search logs by time range and CloudWatch filter patterns
query_logs_insights - Execute advanced CloudWatch Logs Insights queries
get_log_group_info - Get log group metadata (retention, storage, etc.)
Related MCP server: OpenSearch Logs MCP Server
Installation
Using npx (Recommended)
No installation required. Add directly to your config:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"cloudwatch": {
"command": "npx",
"args": ["-y", "github:nikhilchintawar/cloudwatch-mcp"],
"env": {
"AWS_REGION": "eu-west-2",
"AWS_PROFILE": "your-profile",
"CLOUDWATCH_LOG_GROUP": "/aws/eks/spv-default-prod-eks/application"
}
}
}
}Claude Code (~/.claude/settings.json):
{
"mcpServers": {
"cloudwatch": {
"command": "npx",
"args": ["-y", "github:nikhilchintawar/cloudwatch-mcp"],
"env": {
"AWS_REGION": "eu-west-2",
"AWS_PROFILE": "your-profile",
"CLOUDWATCH_LOG_GROUP": "/aws/eks/spv-default-prod-eks/application"
}
}
}
}Manual Installation
# Clone the repository
git clone https://github.com/nikhilchintawar/cloudwatch-mcp.git
cd cloudwatch-mcp
# Install dependencies
npm install
# Build
npm run buildThen add to your config:
{
"mcpServers": {
"cloudwatch": {
"command": "node",
"args": ["/absolute/path/to/cloudwatch-mcp/build/index.js"],
"env": {
"AWS_REGION": "eu-west-2",
"AWS_PROFILE": "your-profile",
"CLOUDWATCH_LOG_GROUP": "/aws/eks/spv-default-prod-eks/application"
}
}
}
}Configuration
Config File Locations
Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.jsonClaude Code:
~/.claude/settings.json
Environment Variables
Variable | Required | Description |
| Yes | AWS region (e.g., |
| No | Default log group path |
| No | Default stream prefix filter |
AWS Authentication
The server uses the AWS SDK's default credential provider chain. Choose one method:
Option 1: AWS Profile (Recommended)
{
"env": {
"AWS_REGION": "eu-west-2",
"AWS_PROFILE": "your-profile-name"
}
}Option 2: Temporary Credentials
{
"env": {
"AWS_REGION": "eu-west-2",
"AWS_ACCESS_KEY_ID": "your-access-key",
"AWS_SECRET_ACCESS_KEY": "your-secret-key",
"AWS_SESSION_TOKEN": "your-session-token"
}
}Option 3: AWS SSO
# Login first
aws sso login --profile your-sso-profile{
"env": {
"AWS_REGION": "eu-west-2",
"AWS_PROFILE": "your-sso-profile"
}
}Option 4: IAM Role - Automatic when running on EC2, ECS, or Lambda.
Usage Examples
Once configured, you can use natural language to interact with CloudWatch:
"Search for errors in the last hour"
"Show me logs from sprive-backend for today"
"Find all ERROR or WARN messages in the past 30 minutes"
"Run a Logs Insights query to count errors by service"
"List all log streams for 2026-02-20"
Available Tools
list_log_groups
List available CloudWatch log groups.
Parameter | Required | Description |
| No | Filter by name prefix |
| No | Max results (default: 50) |
list_log_streams
List log streams with smart date/service filtering.
Parameter | Required | Description |
| No | Log group name (uses env var default) |
| No | Filter by stream prefix (e.g., |
| No | Filter by date ( |
| No | Max results (default: 50) |
| No |
|
search_logs
Search logs using CloudWatch filter patterns.
Parameter | Required | Description |
| No | Log group name |
| No | Specific stream names to search |
| No | Filter streams by prefix |
| No | CloudWatch filter pattern |
| Yes | Relative ( |
| No | End time (default: now) |
| No | Max results (default: 100) |
query_logs_insights
Execute CloudWatch Logs Insights queries.
Parameter | Required | Description |
| No | Array of log group names |
| Yes | Logs Insights query string |
| Yes | Start time |
| No | End time (default: now) |
| No | Max results (default: 1000) |
get_log_group_info
Get detailed information about a log group.
Parameter | Required | Description |
| No | Log group name |
Time Formats
The startTime and endTime parameters support:
Relative:
30m,1h,2d,1w(minutes, hours, days, weeks ago)ISO 8601:
2026-02-20T14:30:00ZDate:
2026-02-20Unix timestamp:
1740067200000(ms) or1740067200(s)
Filter Patterns
CloudWatch filter patterns for searching logs:
Simple text:
ERROROR pattern:
?ERROR ?WARNJSON field:
{ $.level = "error" }Multiple conditions:
{ $.status >= 400 && $.duration > 1000 }
See AWS documentation for full syntax.
Development
# Watch mode for development
npm run dev
# Build for production
npm run build
# Test with MCP Inspector
AWS_REGION=eu-west-2 AWS_PROFILE=your-profile \
npx @modelcontextprotocol/inspector node build/index.jsLicense
MIT
Available Tools
5 toolsget_log_group_infoA
Get detailed information about a specific CloudWatch log group including retention settings and storage
Inputs: logGroup.
list_log_groupsB
List available CloudWatch log groups with optional prefix filter
Inputs: limit, prefix.
list_log_streamsA
List log streams in a log group with optional filtering by prefix and date (useful for service-based streams like "sprive-backend-2026-02-20")
Inputs: date, limit, prefix, orderBy, +1 more.
query_logs_insightsB
Execute CloudWatch Logs Insights queries for advanced log analysis. Supports the full Logs Insights query syntax.
Inputs: query (required), startTime (required), limit, endTime, +1 more.
search_logsB
Search CloudWatch logs with filter patterns and time-based queries. Supports relative times (30m, 1h, 2d) and CloudWatch filter patterns.
Inputs: startTime (required), limit, endTime, logGroup, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a distinct purpose: getting details, listing groups, listing streams, advanced querying, and simple searching. However, `query_logs_insights` and `search_logs` could be confused for basic searches, though descriptions clarify their different syntaxes.
All tool names follow a consistent verb_noun pattern using snake_case, e.g., `get_log_group_info`, `list_log_groups`, `search_logs`. No mixing of conventions.
With 5 tools, the server covers essential log operations (listing, details, searching, advanced querying) without being bloated. The count is appropriate for a focused CloudWatch Logs interaction.
Core read and query operations are covered, but write operations (create/delete log groups, update retention) are missing. Agents can still work with existing resources, but cannot manage them fully.
Maintenance
Related MCP Connectors
Search log events, investigate anomalies, and manage cases in your Knowledge Grid tenant.
Ingest and search LogsLoom logs from coding agents.
Query your app's logs, metrics and incidents from your AI assistant.
Read-only access to Auralogs production logs: search logs, inspect errors, review AI analyses.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides AI assistants access to AWS CloudWatch Logs, enabling browsing, searching, summarizing, and correlating logs across multiple AWS services.170Apache 2.0- FlicenseAqualityDmaintenanceEnables querying OpenTelemetry logs stored in OpenSearch across development and production environments. Provides tools for searching logs by various criteria including free-text Lucene queries, trace IDs, service names, error levels, and specific fields.8-
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to autonomously query AWS CloudWatch Logs and perform structured root-cause analysis via natural language prompts, using MCP tools for log group listing and Insights queries.MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with read-only access to AWS CloudWatch Logs for production debugging and log analysis, enabling error searching and bug report generation.ISC