{"_id":"@anyshift/datadog-mcp-server","_rev":"7-316617893632c1d92bb3ae7a3389746d","name":"@anyshift/datadog-mcp-server","dist-tags":{"latest":"0.1.5"},"versions":{"0.0.1":{"name":"@anyshift/datadog-mcp-server","version":"0.0.1","_id":"@anyshift/datadog-mcp-server@0.0.1","maintainers":[{"name":"safwentrabelsi","email":"safwentrabelsi95@gmail.com"},{"name":"sjourdan","email":"stephane.jourdan@outlook.com"},{"name":"pcholl22","email":"pierre.chollet@anyshift.io"}],"homepage":"https://github.com/anyshift-engineering/mcp-server-datadog#readme","bugs":{"url":"https://github.com/anyshift-engineering/mcp-server-datadog/issues"},"bin":{"mcp-server-datadog":"build/index.js"},"dist":{"shasum":"f73318e1e5149c692f0cbc240844a1dea75835cd","tarball":"https://registry.npmjs.org/@anyshift/datadog-mcp-server/-/datadog-mcp-server-0.0.1.tgz","fileCount":5,"integrity":"sha512-ICC1pRkZ81fNGIJGK2BBs3h+/PwvHpNByC3q5vA0M3h+3KHcWh9fBY7rqb+gR0D/6f0uUvYzsC4z2hVQwMNpvg==","signatures":[{"sig":"MEYCIQCGISXd4haJkRwvtYk/XY0zWlHlw1yJ0MfB+03y3geFMQIhANsSVhTWO+AEqdUvEAg6gNsplAywThcEo0BSC1SDNvP9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anyshift%2fdatadog-mcp-server@0.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58816},"main":"build/index.js","type":"module","_from":"file:anyshift-datadog-mcp-server-0.0.1.tgz","types":"build/index.d.ts","access":"public","module":"build/index.js","engines":{"node":">=20.x","pnpm":">=10"},"scripts":{"lint":"eslint . --ext .ts,.js --fix","test":"vitest run","build":"tsup &&  node -e \"require('fs').chmodSync('build/index.js', '755')\"","watch":"tsup --watch","format":"prettier --write .","inspector":"npx @modelcontextprotocol/inspector build/index.js","test:watch":"vitest","lint-staged":"lint-staged","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"pcholl22","email":"pierre.chollet@anyshift.io"},"_resolved":"/tmp/61ee93648682512f2980d232b7bf6440/anyshift-datadog-mcp-server-0.0.1.tgz","_integrity":"sha512-ICC1pRkZ81fNGIJGK2BBs3h+/PwvHpNByC3q5vA0M3h+3KHcWh9fBY7rqb+gR0D/6f0uUvYzsC4z2hVQwMNpvg==","repository":{"url":"git+https://github.com/anyshift-engineering/mcp-server-datadog.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for interacting with Datadog API","directories":{},"lint-staged":{"*.{js,ts}":["eslint --fix","prettier --write"],"*.{json,md}":["prettier --write"]},"_nodeVersion":"20.19.3","dependencies":{"zod":"^3.24.3","zod-to-json-schema":"^3.24.5","@modelcontextprotocol/sdk":"0.6.0","@datadog/datadog-api-client":"^1.34.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.5","jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.25.0","vitest":"^3.1.4","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","prettier":"^3.5.3","@eslint/js":"^9.25.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^20.17.30","@eslint/eslintrc":"^3.3.1","typescript-eslint":"^8.30.1","@vitest/coverage-v8":"3.0.8"},"_npmOperationalInternal":{"tmp":"tmp/datadog-mcp-server_0.0.1_1753113080409_0.5697122669790986","host":"s3://npm-registry-packages-npm-production"}},"1.7.4":{"name":"@anyshift/datadog-mcp-server","version":"1.7.4","_id":"@anyshift/datadog-mcp-server@1.7.4","maintainers":[{"name":"safwentrabelsi","email":"safwentrabelsi95@gmail.com"},{"name":"sjourdan","email":"stephane.jourdan@outlook.com"},{"name":"pcholl22","email":"pierre.chollet@anyshift.io"}],"homepage":"https://github.com/anyshift-engineering/mcp-server-datadog#readme","bugs":{"url":"https://github.com/anyshift-engineering/mcp-server-datadog/issues"},"bin":{"mcp-server-datadog":"build/index.js"},"dist":{"shasum":"2f938fdfc4297038900a7b922a9d0dad27d8f06c","tarball":"https://registry.npmjs.org/@anyshift/datadog-mcp-server/-/datadog-mcp-server-1.7.4.tgz","fileCount":5,"integrity":"sha512-2nDGCGqk0h01ka1CL+LO7kMby7XW2YybMoSOkiScKFuGFAMJ8nsmla14OROEpd2xuCtncM5Z+1S2ON4PLLsvNg==","signatures":[{"sig":"MEUCIQC44ZB1qetxvpXjMSpyNDtCc3IMImdQ5XI538YF4jnaSgIgLIJyLgcl+0UIJHs5N2Tbopd5MovrYGcm4eTgyYNh6Hc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anyshift%2fdatadog-mcp-server@1.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60784},"main":"build/index.js","type":"module","_from":"file:anyshift-datadog-mcp-server-1.7.4.tgz","types":"build/index.d.ts","access":"public","module":"build/index.js","engines":{"node":">=20.x","pnpm":">=10"},"scripts":{"lint":"eslint . --ext .ts,.js --fix","test":"vitest run","build":"tsup &&  node -e \"require('fs').chmodSync('build/index.js', '755')\"","watch":"tsup --watch","format":"prettier --write .","inspector":"npx @modelcontextprotocol/inspector build/index.js","test:watch":"vitest","lint-staged":"lint-staged","inspect-local":"pnpm build && npx @modelcontextprotocol/inspector --config ./inspector.config.json --server local","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"pcholl22","email":"pierre.chollet@anyshift.io"},"_resolved":"/tmp/ce43f646137395f379a1117848397d39/anyshift-datadog-mcp-server-1.7.4.tgz","_integrity":"sha512-2nDGCGqk0h01ka1CL+LO7kMby7XW2YybMoSOkiScKFuGFAMJ8nsmla14OROEpd2xuCtncM5Z+1S2ON4PLLsvNg==","repository":{"url":"git+https://github.com/anyshift-engineering/mcp-server-datadog.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for interacting with Datadog API","directories":{},"lint-staged":{"*.{js,ts}":["eslint --fix","prettier --write"],"*.{json,md}":["prettier --write"]},"_nodeVersion":"20.19.4","dependencies":{"zod":"^3.24.3","zod-to-json-schema":"^3.24.5","@modelcontextprotocol/sdk":"0.6.0","@datadog/datadog-api-client":"^1.34.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.5","jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.25.0","vitest":"^3.1.4","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","prettier":"^3.5.3","@eslint/js":"^9.25.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^20.17.30","@eslint/eslintrc":"^3.3.1","typescript-eslint":"^8.30.1","@vitest/coverage-v8":"3.0.8"},"_npmOperationalInternal":{"tmp":"tmp/datadog-mcp-server_1.7.4_1753351920353_0.8870179303394656","host":"s3://npm-registry-packages-npm-production"}},"0.1.3-dev3":{"name":"@anyshift/datadog-mcp-server","version":"0.1.3-dev3","_id":"@anyshift/datadog-mcp-server@0.1.3-dev3","maintainers":[{"name":"safwentrabelsi","email":"safwentrabelsi95@gmail.com"},{"name":"sjourdan","email":"stephane.jourdan@outlook.com"},{"name":"pcholl22","email":"pierre.chollet@anyshift.io"}],"homepage":"https://github.com/anyshift-engineering/mcp-server-datadog#readme","bugs":{"url":"https://github.com/anyshift-engineering/mcp-server-datadog/issues"},"bin":{"mcp-server-datadog":"build/index.js"},"dist":{"shasum":"55eda0bfff91f9d02678f7f650049a515fc0e6c5","tarball":"https://registry.npmjs.org/@anyshift/datadog-mcp-server/-/datadog-mcp-server-0.1.3-dev3.tgz","fileCount":5,"integrity":"sha512-PmJp+L3C9QkN9txjQ/R/EbAyWqIU1scrIKPp8/mLSjW3vm6dSH/JlbdocaOcKuDRgiVIdc7vXK050H+LR9+3+w==","signatures":[{"sig":"MEUCIQCkqPISIEhlF0cZ3EC2+xSdyNcD6KAJTCeog+fUBc/CEQIgaFONF9+ZvYmxWo3YQud9AZzhnGEL4xsE4QxIBjb0ugA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77367},"main":"build/index.js","pnpm":{"overrides":{"vite":">=6.3.4","form-data":">=4.0.4"}},"type":"module","types":"build/index.d.ts","access":"public","module":"build/index.js","engines":{"node":">=20.x","pnpm":">=10"},"gitHead":"e71fe60917500dc387c4a44997b96744ce082449","scripts":{"lint":"eslint . --ext .ts,.js --fix","test":"vitest run","build":"tsup &&  node -e \"require('fs').chmodSync('build/index.js', '755')\"","watch":"tsup --watch","format":"prettier --write .","prepare":"husky","inspector":"npx @modelcontextprotocol/inspector build/index.js","test:watch":"vitest","lint-staged":"lint-staged","inspect-local":"pnpm build && npx @modelcontextprotocol/inspector --config ./inspector.config.json --server local","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"safwentrabelsi","email":"safwentrabelsi95@gmail.com"},"repository":{"url":"git+https://github.com/anyshift-engineering/mcp-server-datadog.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for interacting with Datadog API","directories":{},"lint-staged":{"*.{js,ts}":["eslint --fix","prettier --write"],"*.{json,md}":["prettier --write"]},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.24.3","zod-to-json-schema":"^3.24.5","@modelcontextprotocol/sdk":"0.6.0","@datadog/datadog-api-client":"^1.34.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.5","jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.25.0","vitest":"^3.1.4","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","prettier":"^3.5.3","@eslint/js":"^9.25.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^20.17.30","@eslint/eslintrc":"^3.3.1","typescript-eslint":"^8.30.1","@vitest/coverage-v8":"3.0.8"},"_npmOperationalInternal":{"tmp":"tmp/datadog-mcp-server_0.1.3-dev3_1758276412901_0.2672230823579562","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@anyshift/datadog-mcp-server","version":"0.1.4","_id":"@anyshift/datadog-mcp-server@0.1.4","maintainers":[{"name":"safwentrabelsi","email":"safwentrabelsi95@gmail.com"},{"name":"sjourdan","email":"stephane.jourdan@outlook.com"},{"name":"pcholl22","email":"pierre.chollet@anyshift.io"}],"homepage":"https://github.com/anyshift-engineering/mcp-server-datadog#readme","bugs":{"url":"https://github.com/anyshift-engineering/mcp-server-datadog/issues"},"bin":{"mcp-server-datadog":"build/index.js"},"dist":{"shasum":"d55e9b645eb471eea21e9100fe1dc27ec8eea793","tarball":"https://registry.npmjs.org/@anyshift/datadog-mcp-server/-/datadog-mcp-server-0.1.4.tgz","fileCount":5,"integrity":"sha512-2eMJfe0Xxyelcy2QOn0NWaReuaBDQFP5tKhzuRnxR8wmCn6w229wboNNedPk+Y7L4e4MncS8T1yFByVqibbSaw==","signatures":[{"sig":"MEUCIQCNYuWDlp4HkOy7CBY5UzUUmE07n1Xht/MBf0PBVtuD9wIgA8BqmefIRkZXVVTrPm1djBH48ZnShkP4/ar1QC+rswI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77357},"main":"build/index.js","pnpm":{"overrides":{"vite":">=6.3.4","form-data":">=4.0.4"}},"type":"module","types":"build/index.d.ts","access":"public","module":"build/index.js","engines":{"node":">=20.x","pnpm":">=10"},"gitHead":"e6aa25b87af2028272835b5a2984dd5348899364","scripts":{"lint":"eslint . --ext .ts,.js --fix","test":"vitest run","build":"tsup &&  node -e \"require('fs').chmodSync('build/index.js', '755')\"","watch":"tsup --watch","format":"prettier --write .","prepare":"husky","inspector":"npx @modelcontextprotocol/inspector build/index.js","test:watch":"vitest","lint-staged":"lint-staged","inspect-local":"pnpm build && npx @modelcontextprotocol/inspector --config ./inspector.config.json --server local","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"safwentrabelsi","email":"safwentrabelsi95@gmail.com"},"repository":{"url":"git+https://github.com/anyshift-engineering/mcp-server-datadog.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for interacting with Datadog API","directories":{},"lint-staged":{"*.{js,ts}":["eslint --fix","prettier --write"],"*.{json,md}":["prettier --write"]},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.24.3","zod-to-json-schema":"^3.24.5","@modelcontextprotocol/sdk":"0.6.0","@datadog/datadog-api-client":"^1.34.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.5","jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.25.0","vitest":"^3.1.4","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","prettier":"^3.5.3","@eslint/js":"^9.25.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^20.17.30","@eslint/eslintrc":"^3.3.1","typescript-eslint":"^8.30.1","@vitest/coverage-v8":"3.0.8"},"_npmOperationalInternal":{"tmp":"tmp/datadog-mcp-server_0.1.4_1758276609451_0.8872878441173464","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@anyshift/datadog-mcp-server","version":"0.1.5","_id":"@anyshift/datadog-mcp-server@0.1.5","maintainers":[{"name":"safwentrabelsi","email":"safwentrabelsi95@gmail.com"},{"name":"sjourdan","email":"stephane.jourdan@outlook.com"},{"name":"pcholl22","email":"pierre.chollet@anyshift.io"}],"homepage":"https://github.com/anyshift-engineering/mcp-server-datadog#readme","bugs":{"url":"https://github.com/anyshift-engineering/mcp-server-datadog/issues"},"bin":{"mcp-server-datadog":"build/index.js"},"dist":{"shasum":"15ed540e09ee6a0e89fb50de588d6cbef6013492","tarball":"https://registry.npmjs.org/@anyshift/datadog-mcp-server/-/datadog-mcp-server-0.1.5.tgz","fileCount":5,"integrity":"sha512-gbVoJz0tdzGzKpEnkEOfzeDWCo0urPgyB3ASwn4Bx5J9hhFgTGFJW76w5Vin6g8m8KCmI+efh96lZpTvW6BA8A==","signatures":[{"sig":"MEUCIQDUS1uIWU0C7RVSyVybH/FC/0nP3i55jvklYXURl2tdTQIgPcrB8eIoD2x7IdOOICoQAwkZYkKSLkEC1jpBM03q0Rc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79285},"main":"build/index.js","pnpm":{"overrides":{"vite":">=6.3.4","form-data":">=4.0.4"}},"type":"module","types":"build/index.d.ts","access":"public","module":"build/index.js","engines":{"node":">=20.x","pnpm":">=10"},"gitHead":"5ae8419b6f7750bc2dd537ff2d866c4e7bcf4cc7","scripts":{"lint":"eslint . --ext .ts,.js --fix","test":"vitest run","build":"tsup &&  node -e \"require('fs').chmodSync('build/index.js', '755')\"","watch":"tsup --watch","format":"prettier --write .","prepare":"husky","inspector":"npx @modelcontextprotocol/inspector build/index.js","test:watch":"vitest","lint-staged":"lint-staged","inspect-local":"pnpm build && npx @modelcontextprotocol/inspector --config ./inspector.config.json --server local","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"safwentrabelsi","email":"safwentrabelsi95@gmail.com"},"repository":{"url":"git+https://github.com/anyshift-engineering/mcp-server-datadog.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for interacting with Datadog API","directories":{},"lint-staged":{"*.{js,ts}":["eslint --fix","prettier --write"],"*.{json,md}":["prettier --write"]},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.24.3","zod-to-json-schema":"^3.24.5","@modelcontextprotocol/sdk":"0.6.0","@datadog/datadog-api-client":"^1.34.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.7.5","jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.25.0","vitest":"^3.1.4","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","prettier":"^3.5.3","@eslint/js":"^9.25.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^20.17.30","@eslint/eslintrc":"^3.3.1","typescript-eslint":"^8.30.1","@vitest/coverage-v8":"3.0.8"},"_npmOperationalInternal":{"tmp":"tmp/datadog-mcp-server_0.1.5_1758288035622_0.48289918891622663","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-07-21T15:51:20.313Z","modified":"2026-07-22T19:12:36.165Z","0.0.1":"2025-07-21T15:51:20.721Z","1.7.4":"2025-07-24T10:12:00.551Z","0.1.3-dev3":"2025-09-19T10:06:53.090Z","0.1.4":"2025-09-19T10:10:09.736Z","0.1.5":"2025-09-19T13:20:35.807Z"},"bugs":{"url":"https://github.com/anyshift-engineering/mcp-server-datadog/issues"},"homepage":"https://github.com/anyshift-engineering/mcp-server-datadog#readme","repository":{"url":"git+https://github.com/anyshift-engineering/mcp-server-datadog.git","type":"git"},"description":"MCP server for interacting with Datadog API","maintainers":[{"email":"safwentrabelsi95@gmail.com","name":"safwentrabelsi"},{"email":"stephane.jourdan@outlook.com","name":"sjourdan"},{"email":"pierre.chollet@anyshift.io","name":"pcholl22"}],"readme":"# Anyshift Datadog MCP Server\n\n> **Enhanced fork** of the original [mcp-server-datadog](https://github.com/winor30/mcp-server-datadog) by [@winor30](https://github.com/winor30), developed and maintained by [Anyshift](https://github.com/anyshift-engineering). This version includes additional features for JSON processing, file writing capabilities, and enhanced observability tools.\n\n[![Build Status](https://github.com/anyshift-engineering/mcp-server-datadog/workflows/CI/badge.svg)](https://github.com/anyshift-engineering/mcp-server-datadog/actions)\n\nA comprehensive MCP server for the Datadog API, enabling advanced incident management, observability, and data analysis workflows.\n\n## ✨ Anyshift Enhancements\n\nThis fork includes several powerful enhancements beyond the original implementation:\n\n- **🔍 JQ Query Tool** - Advanced JSON processing and analysis capabilities with security controls\n- **💾 File Writing System** - Configurable response persistence with structured output and schema analysis\n- **⏰ Timestamp Adjustment** - Evaluation timestamp support for controlled data timeframes\n- **🛠️ Enhanced Tooling** - Comprehensive coverage of Datadog APIs with improved error handling\n- **🏗️ Modular Architecture** - Clean, extensible design for easy feature additions\n\n## Features\n\n- **Complete Datadog Integration**: Full access to incidents, monitors, logs, dashboards, metrics, traces, hosts, downtimes, and RUM data\n- **Advanced Data Processing**: Built-in JSON querying and transformation capabilities\n- **Flexible Output Options**: Direct responses or structured file output with automatic schema generation\n- **Security-First Design**: Input validation and sanitization throughout\n- **Developer-Friendly**: Comprehensive debugging tools and clear documentation\n\n## Tools Overview\n\n### 📊 **Observability & Monitoring**\n\n- `list_incidents` / `get_incident` - Incident management\n- `get_monitors` - Monitor status and configuration\n- `query_metrics` - Metrics data retrieval\n- `search_logs` / `get_logs` / `list_logs` - Log analysis\n- `list_traces` - APM trace investigation\n\n### 📈 **Dashboards & Visualization**\n\n- `list_dashboards` / `get_dashboard` - Dashboard management\n- `create_dashboard` / `update_dashboard` - Dashboard creation and updates\n\n### 🖥️ **Infrastructure Management**\n\n- `list_hosts` / `get_host` - Host inventory and details\n- `mute_host` / `unmute_host` - Host muting controls\n- `get_active_hosts_count` - Active host metrics\n\n### ⏰ **Downtime Management**\n\n- `list_downtimes` - Scheduled downtime overview\n- `schedule_downtime` - Create maintenance windows\n- `cancel_downtime` - Cancel scheduled downtimes\n\n### 📱 **Real User Monitoring (RUM)**\n\n- `get_rum_applications` - RUM application inventory\n- `get_rum_events` - RUM event analysis\n- `get_rum_grouped_event_count` - Aggregated RUM metrics\n- `get_rum_page_performance` - Page performance analytics\n- `get_rum_page_waterfall` - Detailed page load analysis\n\n### 🔧 **Data Processing (Anyshift Enhancement)**\n\n- `execute_jq_query` - Advanced JSON processing with security controls\n\n## Detailed Tool Documentation\n\n<details>\n<summary><strong>Incident Management</strong></summary>\n\n### `list_incidents`\n\nRetrieve a list of incidents from Datadog.\n\n- **Inputs**:\n  - `filter` (optional string): Filter parameters for incidents (e.g., status, priority)\n  - `pagination` (optional object): Pagination details like page size/offset\n- **Returns**: Array of Datadog incidents and associated metadata\n\n### `get_incident`\n\nRetrieve detailed information about a specific Datadog incident.\n\n- **Inputs**:\n  - `incident_id` (string): Incident ID to fetch details for\n- **Returns**: Detailed incident information (title, status, timestamps, etc.)\n\n</details>\n\n<details>\n<summary><strong>Monitoring & Metrics</strong></summary>\n\n### `get_monitors`\n\nFetch the status of Datadog monitors.\n\n- **Inputs**:\n  - `groupStates` (optional array): States to filter (e.g., alert, warn, no data, ok)\n  - `name` (optional string): Filter by name\n  - `tags` (optional array): Filter by tags\n- **Returns**: Monitors data and a summary of their statuses\n\n### `query_metrics`\n\nRetrieve metrics data from Datadog.\n\n- **Inputs**:\n  - `query` (string): Metrics query string\n  - `from` (number): Start time in epoch seconds\n  - `to` (number): End time in epoch seconds\n- **Returns**: Metrics data for the queried timeframe\n\n</details>\n\n<details>\n<summary><strong>Logs & Traces</strong></summary>\n\n### `get_logs`\n\nSearch and retrieve logs from Datadog.\n\n- **Inputs**:\n  - `query` (string): Datadog logs query string\n  - `from` (number): Start time in epoch seconds\n  - `to` (number): End time in epoch seconds\n  - `limit` (optional number): Maximum number of logs to return (defaults to 100)\n- **Returns**: Array of matching logs\n\n### `list_traces`\n\nRetrieve a list of APM traces from Datadog.\n\n- **Inputs**:\n  - `query` (string): Datadog APM trace query string\n  - `from` (number): Start time in epoch seconds\n  - `to` (number): End time in epoch seconds\n  - `limit` (optional number): Maximum number of traces to return (defaults to 100)\n  - `sort` (optional string): Sort order for traces (defaults to '-timestamp')\n  - `service` (optional string): Filter by service name\n  - `operation` (optional string): Filter by operation name\n- **Returns**: Array of matching traces from Datadog APM\n\n</details>\n\n<details>\n<summary><strong>Dashboards</strong></summary>\n\n### `list_dashboards`\n\nGet a list of dashboards from Datadog.\n\n- **Inputs**:\n  - `name` (optional string): Filter dashboards by name\n  - `tags` (optional array): Filter dashboards by tags\n- **Returns**: Array of dashboards with URL references\n\n### `get_dashboard`\n\nRetrieve a specific dashboard from Datadog.\n\n- **Inputs**:\n  - `dashboard_id` (string): ID of the dashboard to fetch\n- **Returns**: Dashboard details including title, widgets, etc.\n\n</details>\n\n<details>\n<summary><strong>Host Management</strong></summary>\n\n### `list_hosts`\n\nGet list of hosts from Datadog.\n\n- **Inputs**:\n  - `filter` (optional string): Filter string for search results\n  - `sort_field` (optional string): Field to sort hosts by\n  - `sort_dir` (optional string): Sort direction (asc/desc)\n  - `start` (optional number): Starting offset for pagination\n  - `count` (optional number): Max number of hosts to return (max: 1000)\n  - `from` (optional number): Search hosts from this UNIX timestamp\n  - `include_muted_hosts_data` (optional boolean): Include muted hosts status and expiry\n  - `include_hosts_metadata` (optional boolean): Include host metadata (version, platform, etc)\n- **Returns**: Array of hosts with details including name, ID, aliases, apps, mute status, and more\n\n### `mute_host`\n\nMute a host in Datadog.\n\n- **Inputs**:\n  - `hostname` (string): The name of the host to mute\n  - `message` (optional string): Message to associate with the muting of this host\n  - `end` (optional number): POSIX timestamp for when the mute should end\n  - `override` (optional boolean): If true and the host is already muted, replaces existing end time\n- **Returns**: Success status and confirmation message\n\n</details>\n\n<details>\n<summary><strong>Downtime Management</strong></summary>\n\n### `list_downtimes`\n\nList scheduled downtimes from Datadog.\n\n- **Inputs**:\n  - `currentOnly` (optional boolean): Return only currently active downtimes when true\n  - `monitorId` (optional number): Filter by monitor ID\n- **Returns**: Array of scheduled downtimes with details including scope, monitor information, and schedule\n\n### `schedule_downtime`\n\nSchedule a downtime in Datadog.\n\n- **Inputs**:\n  - `scope` (string): Scope to apply downtime to (e.g. 'host:my-host')\n  - `start` (optional number): UNIX timestamp for the start of the downtime\n  - `end` (optional number): UNIX timestamp for the end of the downtime\n  - `message` (optional string): A message to include with the downtime\n  - `timezone` (optional string): The timezone for the downtime (e.g. 'UTC', 'America/New_York')\n  - `monitorId` (optional number): The ID of the monitor to mute\n  - `monitorTags` (optional array): A list of monitor tags for filtering\n  - `recurrence` (optional object): Recurrence settings for the downtime\n- **Returns**: Scheduled downtime details including ID and active status\n\n</details>\n\n<details>\n<summary><strong>RUM Analytics</strong></summary>\n\n### `get_rum_applications`\n\nGet all RUM applications in the organization.\n\n- **Inputs**: None\n- **Returns**: List of RUM applications\n\n### `get_rum_events`\n\nSearch and retrieve RUM events from Datadog.\n\n- **Inputs**:\n  - `query` (string): Datadog RUM query string\n  - `from` (number): Start time in epoch seconds\n  - `to` (number): End time in epoch seconds\n  - `limit` (optional number): Maximum number of events to return (default: 100)\n- **Returns**: Array of RUM events\n\n### `get_rum_page_performance`\n\nGet page (view) performance metrics from RUM data.\n\n- **Inputs**:\n  - `query` (optional string): Additional query filter for RUM search (default: \"\\*\")\n  - `from` (number): Start time in epoch seconds\n  - `to` (number): End time in epoch seconds\n  - `metricNames` (array of strings): Array of metric names to retrieve\n- **Returns**: Performance metrics including average, min, max, and count for each metric\n\n</details>\n\n<details>\n<summary><strong>JSON Processing (Anyshift Enhancement)</strong></summary>\n\n### `execute_jq_query`\n\nAdvanced JSON processing and analysis tool with security controls.\n\n- **Inputs**:\n  - `jq_query` (string): jq query string for JSON processing\n  - `file_path` (string): Absolute path to JSON file to process\n  - `description` (optional string): Description of the operation\n- **Returns**: Processed JSON data according to the query\n- **Security**: Blocks environment variable access and system information queries\n- **Examples**:\n  - `.users[].name` - Extract user names\n  - `.data | length` - Count items\n  - `.[].status | select(. == \"active\")` - Filter by status\n\n</details>\n\n## Setup\n\n### Environment Variables\n\n#### **Required Datadog Credentials**\n\n```bash\nexport DATADOG_API_KEY=\"your_api_key\"\nexport DATADOG_APP_KEY=\"your_app_key\"\nexport DATADOG_SITE=\"your_datadog_site\"  # Optional, defaults to datadoghq.com\n```\n\n#### **Anyshift Enhancements**\n\n```bash\n# File Writing System\nexport WRITE_TO_FILE=\"true\"              # Enable response file writing\nexport OUTPUT_PATH=\"/path/to/output\"      # Directory for output files\n\n# Timestamp Adjustment (for evaluation scenarios)\nexport DATADOG_EVAL_TIMESTAMP=\"2024-01-15T10:30:00Z\"  # Limit data to before this time\n```\n\n## Installation\n\n### Via npm\n\n```bash\nnpm install @anyshift/datadog-mcp-server\n```\n\n### Development Setup\n\n```bash\ngit clone https://github.com/anyshift-engineering/mcp-server-datadog.git\ncd mcp-server-datadog\npnpm install\npnpm build\npnpm watch   # for development with auto-rebuild\n```\n\n## Usage with Claude Desktop\n\nAdd the following to your `claude_desktop_config.json`:\n\n**MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`\n\n### Using the built package:\n\n```json\n{\n  \"mcpServers\": {\n    \"anyshift-datadog\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@anyshift/datadog-mcp-server\"],\n      \"env\": {\n        \"DATADOG_API_KEY\": \"<YOUR_API_KEY>\",\n        \"DATADOG_APP_KEY\": \"<YOUR_APP_KEY>\",\n        \"DATADOG_SITE\": \"<YOUR_SITE>\",\n        \"WRITE_TO_FILE\": \"true\",\n        \"OUTPUT_PATH\": \"/tmp/datadog-mcp-output\"\n      }\n    }\n  }\n}\n```\n\n### Using local development build:\n\n```json\n{\n  \"mcpServers\": {\n    \"anyshift-datadog\": {\n      \"command\": \"/path/to/mcp-server-datadog/build/index.js\",\n      \"env\": {\n        \"DATADOG_API_KEY\": \"<YOUR_API_KEY>\",\n        \"DATADOG_APP_KEY\": \"<YOUR_APP_KEY>\",\n        \"DATADOG_SITE\": \"<YOUR_SITE>\",\n        \"WRITE_TO_FILE\": \"true\",\n        \"OUTPUT_PATH\": \"/tmp/datadog-mcp-output\"\n      }\n    }\n  }\n}\n```\n\n## Development & Debugging\n\n### MCP Inspector\n\nDebug and test the server using the MCP Inspector:\n\n```bash\n# Build and run inspector\npnpm build\nnpm run inspector\n\n# Or with local config\nnpm run inspect-local\n```\n\nThe inspector provides a web interface to test tools and view logs.\n\n### Testing\n\n```bash\n# Run tests\npnpm test\n\n# Run with coverage\npnpm test:coverage\n\n# Watch mode for development\npnpm test:watch\n```\n\n### Code Quality\n\n```bash\n# Lint and format code\npnpm lint\npnpm format\n\n# Type checking (via build)\npnpm build\n```\n\n## File Writing System\n\nWhen `WRITE_TO_FILE=true` and `OUTPUT_PATH` is set, responses are automatically saved with:\n\n- **Compact Filenames**: `{timestamp}_{tool_abbrev}_{args_hash}.json`\n- **Schema Analysis**: Automatic JSON schema generation for responses\n- **Metadata**: File size, line count, and structural information\n- **Security**: Sensitive data filtering in filenames\n\nExample output:\n\n```\nResponse written to file: /tmp/output/1758125608129_met_qry_a1b2c3.json\nSize: 1024 characters\nLines: 42\n\nJSON Schema:\n{\n  \"type\": \"object\",\n  \"properties\": {\n    \"series\": {\"type\": \"array\", \"length\": 5}\n  }\n}\n```\n\n## Contributing\n\nThis project is maintained by the Anyshift engineering team. We welcome contributions!\n\n### Getting Started\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/amazing-feature`\n3. Make your changes and add tests\n4. Run the test suite: `pnpm test`\n5. Commit your changes: `git commit -m 'Add amazing feature'`\n6. Push to your branch: `git push origin feature/amazing-feature`\n7. Open a Pull Request\n\n### Development Guidelines\n\n- Follow TypeScript best practices\n- Add tests for new functionality\n- Update documentation for new features\n- Ensure code passes linting and formatting checks\n\n## Acknowledgments\n\nThis project is an enhanced fork of the excellent work by [@winor30](https://github.com/winor30) on [mcp-server-datadog](https://github.com/winor30/mcp-server-datadog). We're grateful for their foundational contribution to the MCP ecosystem.\n\n## License\n\nThis project is licensed under the [Apache License, Version 2.0](./LICENSE).\n\n---\n\n**Maintained with ❤️ by [Anyshift](https://github.com/anyshift-engineering)**\n","readmeFilename":"README.md"}