Metadata-Version: 2.4
Name: finops-mcp
Version: 0.7.2
Summary: Ask Claude about your cloud costs. AWS, Azure, GCP, Datadog, Snowflake, and 13 more connectors.
Author-email: Chandan Bukkapatnam <hello@nable.sh>
License: Elastic License 2.0
License-File: LICENSE
Keywords: ai,aws,claude,cloud-cost,cost-optimization,finops,mcp
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Office/Business :: Financial
Requires-Python: >=3.10
Requires-Dist: apscheduler>=3.10.0
Requires-Dist: azure-identity>=1.15.0
Requires-Dist: azure-mgmt-costmanagement>=4.0.0
Requires-Dist: boto3>=1.34.0
Requires-Dist: cryptography>=42.0.0
Requires-Dist: google-cloud-bigquery>=3.17.0
Requires-Dist: google-cloud-billing>=1.13.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: mcp[cli]>=1.3.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: sqlalchemy>=2.0.0
Provides-Extra: all
Requires-Dist: anthropic>=0.25.0; extra == 'all'
Requires-Dist: croniter>=2.0.0; extra == 'all'
Requires-Dist: keyring>=25.0.0; extra == 'all'
Requires-Dist: kubernetes>=29.0.0; extra == 'all'
Requires-Dist: msal>=1.28.0; extra == 'all'
Requires-Dist: pdfplumber>=0.10.0; extra == 'all'
Requires-Dist: psycopg2-binary>=2.9.0; extra == 'all'
Requires-Dist: slack-bolt>=1.18.0; extra == 'all'
Requires-Dist: snowflake-connector-python>=3.6.0; extra == 'all'
Provides-Extra: azure-oauth
Requires-Dist: msal>=1.28.0; extra == 'azure-oauth'
Provides-Extra: croniter
Requires-Dist: croniter>=2.0.0; extra == 'croniter'
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Provides-Extra: keyring
Requires-Dist: keyring>=25.0.0; extra == 'keyring'
Provides-Extra: kubernetes
Requires-Dist: kubernetes>=29.0.0; extra == 'kubernetes'
Provides-Extra: org
Requires-Dist: boto3>=1.34.0; extra == 'org'
Provides-Extra: pdf
Requires-Dist: pdfplumber>=0.10.0; extra == 'pdf'
Provides-Extra: postgres
Requires-Dist: psycopg2-binary>=2.9.0; extra == 'postgres'
Provides-Extra: pr-comments
Requires-Dist: anthropic>=0.25.0; extra == 'pr-comments'
Requires-Dist: httpx>=0.27.0; extra == 'pr-comments'
Provides-Extra: slack
Requires-Dist: anthropic>=0.25.0; extra == 'slack'
Requires-Dist: slack-bolt>=1.18.0; extra == 'slack'
Provides-Extra: snowflake
Requires-Dist: snowflake-connector-python>=3.6.0; extra == 'snowflake'
Description-Content-Type: text/markdown

# nable — Cloud Cost Intelligence for Claude

**Ask Claude about your cloud costs in plain English.**

nable is an MCP server that connects Claude Desktop, Cursor, Windsurf, and any MCP-compatible AI client to your real billing data across AWS, Azure, GCP, and 10 SaaS tools.

```
"What drove our AWS costs up 40% this month?"
"Which team is spending the most on Datadog?"
"Show me rightsizing opportunities for EC2."
"Create a Jira ticket for any anomalies over $500."
```

No dashboards. No SQL. Just ask.

---

## Quick start

**Option A — uvx (recommended, works everywhere including corporate machines):**
```bash
pip install uv          # or: brew install uv
uvx finops-mcp setup    # installs in isolated venv, no PATH issues
```

**Option B — pip:**
```bash
pip install finops-mcp
finops setup            # connects your providers + auto-configures Claude Desktop
```

`finops setup` detects Claude Desktop and writes `claude_desktop_config.json` automatically — it picks `uvx` if available, otherwise uses the absolute binary path. Restart Claude Desktop and ask:
*"What are my AWS costs this month?"*

**14-day free trial, all features unlocked. No credit card required.**

---

### Manual Claude Desktop config (if needed)

If `finops setup` doesn't auto-configure, run:

```bash
finops setup claude
```

Or add manually to `claude_desktop_config.json`:

**With uvx (recommended — no PATH issues):**
```json
{
  "mcpServers": {
    "finops": { "command": "uvx", "args": ["finops-mcp"] }
  }
}
```

**With absolute path (alternative):**
```json
{
  "mcpServers": {
    "finops": { "command": "/usr/local/bin/finops-mcp" }
  }
}
```
Use the path from `which finops-mcp`.

Config file locations:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **Linux**: `~/.config/Claude/claude_desktop_config.json`

> **Why uvx?** Claude Desktop is a GUI app — it doesn't inherit your shell's `$PATH`.
> `uvx` sidesteps this entirely by running finops-mcp in its own isolated environment.
> It's the most reliable option on corporate machines with managed Python installs.

---

### Troubleshooting

```bash
finops-doctor          # checks credentials, DB, network, audit log
finops setup claude    # re-run Claude Desktop configuration only
```

**Common issues:**

| Symptom | Fix |
|---|---|
| Tools don't appear in Claude | Switch to uvx config (see above) or use absolute path |
| `command not found: finops-mcp` | Re-install: `pip install finops-mcp` or use `uvx` |
| Python 3.8/3.9 errors | nable requires Python ≥ 3.10: `python3.10 -m pip install finops-mcp` |
| Corporate SSL errors | `pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org finops-mcp` |
| Permission denied | Install to user: `pip install --user finops-mcp` or use `uvx` |
| Works at home, not at work | Use `uvx` — corporate IT often strips custom PATH entries |

---

## Connectors

| Provider | Coverage |
|---|---|
| AWS | Cost Explorer — real spend, savings plans, reservations |
| Azure | Cost Management API |
| GCP | Cloud Billing API + BigQuery export |
| Datadog | Usage Metering API v2 — real dollar amounts |
| Snowflake | ACCOUNT_USAGE.METERING_HISTORY |
| Stripe | Balance Transactions API |
| MongoDB Atlas | Invoice API |
| Twilio | Usage Records API |
| Cloudflare | Billing API |
| GitHub | Actions minutes + Copilot seats |
| Vercel | Invoice API (Enterprise) |
| PagerDuty | Seat count (no billing API) |
| New Relic | Data ingest + user counts |

---

## Pro features

- **Anomaly detection** — flags spend spikes automatically, alerts via Slack or Teams
- **Cost attribution** — break down spend by team, service, or tag
- **Rightsizing recommendations** — underutilized EC2 instances
- **Auto-ticketing** — creates Jira, Linear, or GitHub issues for anomalies
- **Weekly digest** — email summary every Monday, no AI session needed
- **Invoice email parsing** — connects to your billing inbox via IMAP for vendors without APIs

Subscribe at [nable.sh](https://nable.sh) after your trial.

---

## Security

All credentials are encrypted with Fernet and stored in your OS keyring (macOS Keychain, Windows Credential Manager, or libsecret on Linux). They never leave your machine.

---

## Docs

Full setup guide: [nable.sh/docs](https://nable.sh/docs)
