{"name":"io.github.alexpota/cloudscope","slug":"alexpota-cloudscope","title":null,"description":"Azure + GCP cost management: spending, forecasts, anomalies, budgets, idle resources, and tags.","url":"https://mcp.market/server/alexpota-cloudscope","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":1,"forks":1,"downloads_week":94,"last_push_at":"2026-08-12T01:27:58.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/alexpota/cloudscope-mcp","website":null,"version":"0.3.3","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"cloudscope-mcp","version":"0.3.3","transport":{"type":"stdio"},"environmentVariables":[{"description":"Azure subscription ID to query for cost data. Optional; auto-detected from az login session if not set.","name":"AZURE_SUBSCRIPTION_ID"},{"description":"Azure tenant ID for service principal authentication. Optional; falls back to DefaultAzureCredential (e.g. az login) if unset.","name":"AZURE_TENANT_ID"},{"description":"Service principal client ID. Optional; required only when using ClientSecretCredential.","name":"AZURE_CLIENT_ID"},{"description":"Service principal client secret. Optional; required only when using ClientSecretCredential.","isSecret":true,"name":"AZURE_CLIENT_SECRET"},{"description":"GCP project ID. Recommended to set explicitly in the MCP client env block — may not be inherited from gcloud shell configuration.","name":"GOOGLE_CLOUD_PROJECT"},{"description":"Fully-qualified BigQuery billing export table (project.dataset.table_name). Required for GCP cost queries.","name":"GCP_BILLING_TABLE"},{"description":"Override GCP project ID if the billing dataset lives in a different project than GOOGLE_CLOUD_PROJECT.","name":"GCP_PROJECT_ID"},{"description":"GCP billing account ID (format: XXXXXX-XXXXXX-XXXXXX). Optional; needed only for budget monitoring.","name":"GCP_BILLING_ACCOUNT_ID"},{"description":"Path to GCP service account JSON key file. Optional; falls back to Application Default Credentials (gcloud auth).","isSecret":true,"name":"GOOGLE_APPLICATION_CREDENTIALS"}]}],"tools":[{"name":"check_budgets","description":"Check budget status: current spend vs limit, percentage used, forecast, and overage risk. For GCP, requires GCP_BILLING_ACCOUNT_ID to be set.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_periods","description":"Compare costs between two date ranges, showing per-service absolute and percentage changes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"detect_anomalies","description":"Compares daily spending over the last N days against the prior N days to find cost spikes. Returns a list of services where spending increased above the threshold percentage, sorted by increase amount. Each entry includes service name, previous cost, current cost, percentage change, and absolute change in USD. Returns an empty list if no anomalies found. Use this when the user asks about unexpecte","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_idle_resources","description":"Finds cloud resources that are provisioned but not actively used \\u2014 unattached disks, orphaned network interfaces, unused IPs, idle VMs, and empty compute plans. Returns each resource with its name, type, resource group/project, reason it is idle, and estimated monthly cost in USD. Returns an empty list if no idle resources are found. Use this when the user asks about waste, idle or unused res","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_untagged_resources","description":"Finds resources that have no tags or labels applied. Returns each resource with its name, type, resource group/project, and location. Untagged resources cannot be attributed to teams or projects, making cost allocation and chargeback impossible. Returns an empty list if all resources are tagged. Use this when the user asks about tagging compliance, governance, cost attribution gaps, or wants to id","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cost_by_tag","description":"Breaks down costs by a specific tag or label key such as team, environment, or project. Returns a sorted table with each tag value, cost in USD, and percentage of total. Includes a total row and daily average. Returns an error if the date range is invalid or no tagged costs exist. Use this when the user asks about costs per team, per environment, cost allocation, chargeback, or wants to understand","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cost_forecast","description":"Projects future cloud spending for the next N days using a linear trend based on the last 30 days of actual costs. Returns the forecast period dates, projected total cost in USD, average daily projected cost, and the confidence basis (number of historical days used). Use this when the user asks \"how much will I spend this month\", wants to predict upcoming bills, or needs to plan budgets. Returns a","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cost_summary","description":"Returns a cost breakdown for a date range grouped by service, resource group, tag, or region. Defaults to current month if dates are omitted. Output includes a sorted table with each group name, cost in USD, and percentage of total. Includes a total row, daily average, and collapses groups beyond the top 10 into an \"Other\" row. Returns an error if the date range is invalid. Use this when the user ","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cross_project_costs","description":"Returns a combined cost breakdown across multiple GCP projects sorted by total spend. Each project shows its name, total cost in USD, and percentage of the combined total. Use this when the user asks about costs across all GCP projects, wants to compare project spending, or needs an organization-wide cost overview.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cross_subscription_costs","description":"Returns a combined cost breakdown across multiple Azure subscriptions sorted by total spend. Each subscription shows its name, total cost in USD, and percentage of the combined total. Handles partial failures gracefully \\u2014 if some subscriptions are inaccessible, returns results for the rest with a warning. Use this when the user asks about costs across all subscriptions, wants to compare subsc","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_current_date","description":"Returns today's date and the start/end of current and previous months in YYYY-MM-DD format","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_projects","description":"Returns all GCP projects the current credential can access, with name, ID, and state. Shows which project is currently active. Use this when the user has multiple GCP projects and wants to see which ones are available, or before calling get_cross_project_costs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_recommendations","description":"Fetches cost-saving recommendations filtered by category. Returns a list of recommendations each containing: title, category, impact level (high/medium/low), estimated annual savings in USD, affected resource ID, and a short description of the suggested action. Returns an empty list if no recommendations exist for the selected category. Use this when the user wants to reduce costs, find waste, or ","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_subscriptions","description":"Returns all Azure subscriptions the current credential can access, with name, ID, and state. Shows which subscription is currently active. Use this when the user has multiple subscriptions and wants to see which ones are available, or to confirm which subscription is being queried.","write_action":false,"price_micros":0,"input_schema":null},{"name":"top_spending_resources","description":"Find the N most expensive individual resources over a time period. On GCP, requires the detailed billing export for resource-level data.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-09-27T17:04:59.953Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T17:05:00.012Z","components":{"code":{"score":25,"max":25,"notes":["3 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 47 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"cloudscope-mcp","version":"0.3.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":14,"publishedAt":"2026-05-29T15:18:09.009Z","repositoryUrl":"git+https://github.com/alexpota/cloudscope-mcp.git","weeklyDownloads":94}],"repo":{"found":true,"owner":"alexpota","repo":"cloudscope-mcp","archived":false,"pushedAt":"2026-08-12T01:27:58Z","stars":1,"forks":1,"openIssues":11,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/7516125?v=4","ownerCreatedAt":"2014-05-07T19:23:35Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/7516125?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":1,"downloadsWeek":94,"license":"MIT","lastPushAt":"2026-08-12T01:27:58.000Z","score":23}}}},"grade_history":[],"reviews":[]}