内容
# CloudScope MCP
> 向您的 AI 询问云账单。
[](https://www.npmjs.com/package/cloudscope-mcp)
[](https://glama.ai/mcp/servers/alexpota/cloudscope-mcp)
[](https://nodejs.org)
[](https://www.typescriptlang.org)
[](LICENSE)
## 您将获得
询问一次:**"给我本月的成本审查"** —— CloudScope 运行整个工作流程(支出、差异、异常、空闲资源、预算、预测),并返回一份决策就绪的报告,而不是您需要自己解释的原始数字:
> ## TL;DR
>截至目前的本月 Azure 支出为 **$4,312**(5 月 1 日至 29 日),与四月份相比 **增长 11%**。
> 变动原因是 **应用服务(+ $280)** —— 一个新的暂存槽留存。
> **2 个空闲资源每月花费 $94**;`prod-budget` 已达到 **78%**,还有 2 天。
> 主要操作:**删除孤立的托管磁盘 → 节省 $63/月。**
> ## 本月支出
> | 服务 | 成本 | % |
> |------------------|----------|------|
> | 虚拟机 | $2,140 | 49.6% |
> | 应用服务 | $890 | 20.6% |
> | 存储 | $612 | 14.2% |
> | Redis 缓存 | $410 | 9.5% |
> | 网络 | $260 | 6.0% |
>
> ## 与上个月比较
> **+ $427(+ 11%)** 总体。应用服务 **+ $280** 驱动了大部分;其他则持平。→ *新的 `staging-slot-2`,于 5 月 12 日创建,从未被销毁。*
>
> ## 空闲和浪费的资源
> | 资源 | 类型 | 每月 $ |
> |-----------------------|-------------|---------|
> | `orphaned-osdisk-01` | 托管磁盘 | $63 |
> | `old-lb-ip` | 公共 IP | $31 |
>
> ## 预算状态
> `prod-budget` — **78% 已用**,$4,312 / $5,500,正常运行(剩余 2 天)。
>
> ## 推荐操作
> 1. 删除 `orphaned-osdisk-01`(未附加 40 天)→ **$63/月**
> 2. 关闭 `staging-slot-2` 如果暂存处于空闲状态 → **~ $280/月**
> 3. 释放 `old-lb-ip`(无绑定)→ **$31/月**
*示例报告格式。运行 `/cloudscope:monthly-cost-review` 以获取您自己的订阅的实时数字。*
## 安装
| Claude 代码 | Cursor | VS Code |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `claude mcp add cloudscope -- npx -y cloudscope-mcp` | [安装](https://cursor.com/en/install-mcp?name=cloudscope&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImNsb3Vkc2NvcGUtbWNwIl19) | [安装](https://insiders.vscode.dev/redirect/mcp/install?name=cloudscope&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImNsb3Vkc2NvcGUtbWNwIl19) |
> Azure 会自动从您的 `az login` 会话中检测到。GCP 需要 BigQuery 账单导出设置(见下文)。
## 支持的提供商
| 提供商 | 状态 |
| -------- | ------------------------------------------------------------------------------------------------------------ |
| Azure | ✅ 支持 |
| GCP | ✅ 支持 |
| AWS | 使用 [AWS 官方服务器](https://github.com/awslabs/mcp/tree/main/src/billing-cost-management-mcp-server) |
## 先决条件
### Azure
- [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) 已安装并登录(`az login`)
- **成本管理读取器** 角色在订阅上
### GCP
- [gcloud CLI](https://cloud.google.com/sdk/docs/install) 已安装并登录(`gcloud auth application-default login`)
- [导出到 BigQuery 的账单](https://cloud.google.com/billing/docs/how-to/export-data-bigquery) 已启用 — 这是一个一次性手动设置步骤,默认不启用(建议使用详细导出进行资源级成本查询)
- **BigQuery 数据查看器** + **BigQuery 作业用户** 角色在数据集项目上
- 注意:BigQuery 按需查询费用为每 TiB 扫描 $6.25([定价](https://cloud.google.com/bigquery/pricing))。前 1 TiB/月免费。账单导出表很小 — 典型的 CloudScope 查询每次费用 < $0.01。
## 配置
### Azure(零配置)
CloudScope 从 `az login` 自动检测您的订阅。只需添加服务器:
```json
{
"mcpServers": {
"cloudscope": {
"command": "npx",
"args": ["-y", "cloudscope-mcp"]
}
}
}
```
要针对特定订阅,请添加一个 `env` 块:
```json
{
"mcpServers": {
"cloudscope": {
"command": "npx",
"args": ["-y", "cloudscope-mcp"],
"env": {
"AZURE_SUBSCRIPTION_ID": "your-subscription-id"
}
}
}
}
```
<details>
<summary>高级:服务主体(CI/CD 和自动化环境)</summary>
| 变量 | 描述 |
| --------------------- | ------------------------------ |
| `AZURE_TENANT_ID` | Azure AD 租户 ID |
| `AZURE_CLIENT_ID` | 应用程序注册客户端 ID |
| `AZURE_CLIENT_SECRET` | 应用程序注册客户端密钥 |
在上面的 `env` 块中设置这些。
</details>
### GCP
GCP 需要一个 BigQuery 账单导出表。在 **GCP 控制台 > 账单 > 账单导出 > BigQuery 导出** 中找到您的表名。
```json
{
"mcpServers": {
"cloudscope": {
"command": "npx",
"args": ["-y", "cloudscope-mcp"],
"env": {
"GOOGLE_CLOUD_PROJECT": "my-project",
"GCP_BILLING_TABLE": "my-project.my_dataset.gcp_billing_export_resource_v1_XXXXXX"
}
}
}
}
```
设置 `GOOGLE_CLOUD_PROJECT` 为您的 GCP 项目 ID。如果您的账单数据集位于不同的项目中,请使用 `GCP_PROJECT_ID` 进行覆盖。
这些变量仅在 GCP 中使用;仅使用 Azure 的用户可以跳过它们。
| 变量 | 描述 | 必需 |
| -------------------------------- | --------------------------------------------------------- | -------- |
| `GOOGLE_CLOUD_PROJECT` | GCP 项目 ID | 是 |
| `GCP_BILLING_TABLE` | 完全限定的 BigQuery 表(`project.dataset.table`) | 是 |
| `GCP_PROJECT_ID` | 如果与 `GOOGLE_CLOUD_PROJECT` 不同,则覆盖项目 ID | 否 |
| `GCP_BILLING_ACCOUNT_ID` | 用于预算监控的账单账户 ID | 否 |
| `GOOGLE_APPLICATION_CREDENTIALS` | 服务账户 JSON 密钥文件路径 | 否 |
### 两个提供商
```json
{
"mcpServers": {
"cloudscope": {
"command": "npx",
"args": ["-y", "cloudscope-mcp"],
"env": {
"AZURE_SUBSCRIPTION_ID": "your-subscription-id",
"GOOGLE_CLOUD_PROJECT": "my-project",
"GCP_BILLING_TABLE": "my-project.my_dataset.gcp_billing_export_resource_v1_XXXXXX"
}
}
}
}
```
Azure 从 `az login` 自动检测。添加 `AZURE_SUBSCRIPTION_ID` 以针对特定订阅。
## 示例问题
- "Azure 上个月花费了多少钱?"
- "显示过去 7 天的 GCP 服务支出"
- "GCP 上周有任何成本异常吗?"
- "Azure 下个月将花费多少钱?"
- "显示 GCP 的成本优化建议"
- "比较所有项目和订阅的 Azure 和 GCP 成本"
## 安全
CloudScope 仅为只读。它无法创建、修改或删除任何云资源。Azure 使用成本管理读取器权限。GCP 使用 BigQuery 数据查看器 + 作业用户,无写入访问。
## 常见问题
**这会修改我的云资源吗?** 不。仅只读访问。
**我需要服务主体吗?** 不。`az login`(Azure)或 `gcloud auth application-default login`(GCP)适用于本地使用。
**Azure 成本管理 API 会收费吗?** 不。免费。
**GCP BigQuery 成本查询会收费吗?** 是,但通常 <$0.01 每查询($6.25/TiB 扫描,前 1 TiB/月免费)。参见 [BigQuery 定价](https://cloud.google.com/bigquery/pricing)。
**我可以同时使用 Azure 和 GCP 吗?** 是。配置两组环境变量,CloudScope 将查询每个工具调用中指定的提供商。
## 开发
```bash
git clone https://github.com/alexpota/cloudscope-mcp.git
cd cloudscope-mcp
npm install
npm run build
npm test
npx @modelcontextprotocol/inspector node dist/index.js
```
## 参考
### 工具
大多数工具接受 `provider` 参数(`azure` 或 `gcp`);特定于提供商的工具(`list_subscriptions`、`list_projects` 和跨账户工具 `get_cross_subscription_costs` / `get_cross_project_costs`)固定在其自己的云上。默认提供商根据配置了哪些提供商自动检测。
**成本分析**
| 工具 | 描述 | 关键参数 |
| ------------------------------ | ------------------------------------------------------- | -------------------------------------------- |
| `get_cost_summary` | 服务、组或区域的支出分解 | `start_date`、`end_date`、`group_by` |
| `get_cost_by_tag` | 按标签/标签键分组的成本 | `tag_key`、`start_date`、`end_date` |
| `compare_periods` | 两个日期范围的并排成本比较 | `period_a_start/end`、`period_b_start/end` |
| `top_spending_resources` | 最昂贵的个别资源 | `days`、`limit` |
| `get_cross_subscription_costs` | 跨 Azure 订阅的综合成本 | `subscription_ids`、`start_date`、`end_date` |
| `get_cross_project_costs` | 跨 GCP 项目的综合成本 | `project_ids`、`start_date`、`end_date` |
**监控**
| 工具 | 描述 | 关键参数 |
| ------------------- | ----------------------------------------------- | ------------------- |
| `detect_anomalies` | 查找与上一期间相比的支出峰值 | `days`、`threshold` |
| `check_budgets` | 预算状态、当前支出、预计超额 | _(无)_ |
| `get_cost_forecast` | 根据当前趋势预测支出 | `days` |
**优化**
| 工具 | 描述 | 关键参数 |
| ------------------------- | ------------------------------------------------------- | -------------- |
| `list_recommendations` | 成本优化建议(Azure Advisor / GCP Recommender) | `category` |
| `find_idle_resources` | 已预配但未使用的资源及其成本估算 | _(无)_ |
| `find_untagged_resources` | 无标签/标签的资源(成本归因缺口) | _(无)_ |
**实用程序**
| 工具 | 描述 | 关键参数 |
| -------------------- | -------------------------------------------------- | -------------- |
| `get_current_date` | 今日日期和当前/上个月边界 | _(无)_ |
| `list_subscriptions` | 具有活动指示器的 Azure 订阅 | _(无)_ |
| `list_projects` | 具有活动指示器的 GCP 项目 | _(无)_ |
### 提示
生成结构化报告的引导式工作流。所有提示都接受可选的 `provider` 参数(`azure` 或 `gcp`)。在 **Claude Code** 中输入 `/cloudscope:` 以查看所有提示。在 **Claude Desktop** 中,点击 `+` 按钮 → **连接器** → **cloudscope**。
| 提示 | 描述 | 参数 |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| `monthly-cost-review` | 完整的月度审查:支出、上个月比较、异常、顶级资源、预算、预测、节省机会 | `provider`(可选) |
| `waste-audit` | 查找浪费的支出:顶级资源、优化建议、风险预算、总潜在节省 | `provider`(可选) |
| `cost-spike-investigation` | 成本增加的根本原因分析:哪些服务、哪些资源、趋势与一次性、推荐操作 | `days`(可选)、`provider`(可选) |
| `executive-summary` | 领导层的简要非技术成本摘要:支出、趋势、预算状态、顶级驱动因素、预测、关键建议 | `provider`(可选) |
| `chargeback-report` | 按标签/标签键分配成本:每个值的支出、无标签资源、标记与未标记的分割、月环比 | `tag_key`(必需)、`provider`(可选) |
## 许可证
[MIT](LICENSE)
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器