Metadata-Version: 2.4
Name: datadog-cost-analyze-agent-mcp
Version: 0.1.0
Summary: MCP server for Datadog billable usage and cost analysis.
Author: Datadog Cost Analyze Agent Maintainers
Keywords: mcp,datadog,cost,billing
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: mcp

# Datadog Cost Analyze Agent

MCP server for end-to-end Datadog billable usage and cost analysis.

The server exposes one MCP tool:

- `generate_full_cost_report`

This tool runs the full workflow in one call:
1. Fetch billable summary from Datadog
2. Calculate org-level on-demand and committed allocation
3. Generate CSV reports
4. Calculate cost report
5. Return report content as text in the MCP response

## Requirements

- Python 3.10+
- Datadog credentials with `usage_read` permission:
  - `DD_API_KEY`
  - `DD_APP_KEY`
  - `DD_SITE` (optional, defaults to `datadoghq.eu`)

## Install

```bash
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
```

## Publish to PyPI

Package metadata is configured in `pyproject.toml`.
Current package/command names:
- Package: `datadog-cost-analyze-agent-mcp`
- CLI entrypoint: `datadog-cost-analyze-mcp`

### 1) Build distribution files

```bash
.venv/bin/python -m pip install --upgrade build twine
.venv/bin/python -m build
```

This creates:
- `dist/*.tar.gz` (source distribution)
- `dist/*.whl` (wheel)

### 2) Validate package metadata

```bash
.venv/bin/python -m twine check dist/*
```

### 3) Upload to TestPyPI (recommended first)

```bash
.venv/bin/python -m twine upload --repository testpypi dist/*
```

### 4) Upload to PyPI

```bash
.venv/bin/python -m twine upload dist/*
```

### 5) Verify install from PyPI

```bash
python3 -m pip install <your-package-name>
```

Use API tokens for authentication:
- `TWINE_USERNAME=__token__`
- `TWINE_PASSWORD=<pypi-token>`

## Run with uvx

After publishing to PyPI:

```bash
uvx --from datadog-cost-analyze-agent-mcp datadog-cost-analyze-mcp
```

For local testing before publish:

```bash
uvx --from . datadog-cost-analyze-mcp
```

## Run MCP Server

```bash
.venv/bin/python mcp_server.py
```

## MCP Tool

### `generate_full_cost_report`

#### Arguments

- `month` (string, required): Month in `YYYY-MM` format.

#### Returns

- `ok` (boolean): Success status
- `message` (string): Execution summary
- `month` (string): Month used for the run
- `usage_org_count` (number): Organization count in usage payload
- `final_cost_report_text` (string): Final cost CSV content
- `detailed_report_text` (string): Detailed usage CSV content
- `org_summary_report_text` (string): Organization summary CSV content
- `product_summary_report_text` (string): Product summary CSV content
- `error` (string): Present when `ok` is `false`

## Generated Files

The workflow also writes default files to `.out/`:

- `.out/billable_summary.json`
- `.out/billable_detailed_report.csv`
- `.out/billable_org_summary.csv`
- `.out/billable_product_summary.csv`
- `.out/datadog_cost_report.csv`

## Example MCP Client Config

### Using uvx (recommended after publish)

```json
{
  "mcpServers": {
    "datadog-cost-analyze": {
      "command": "uvx",
      "args": ["--from", "datadog-cost-analyze-agent-mcp", "datadog-cost-analyze-mcp"],
      "env": {
        "DD_API_KEY": "your_api_key",
        "DD_APP_KEY": "your_app_key",
        "DD_SITE": "datadoghq.eu"
      }
    }
  }
}
```

### Using local Python directly

```json
{
  "mcpServers": {
    "datadog-cost-analyze": {
      "command": "/absolute/path/to/.venv/bin/python",
      "args": ["/absolute/path/to/mcp_server.py"],
      "env": {
        "DD_API_KEY": "your_api_key",
        "DD_APP_KEY": "your_app_key",
        "DD_SITE": "datadoghq.eu"
      }
    }
  }
}
```

## Pricing Source

Cost calculations are based on Datadog pricing:

- https://www.datadoghq.com/pricing/list/
