Available Tools
The MCP server exposes 43 read-only tools. The first tool, list_organisations, requires no arguments. All other tools require an org_id argument — call list_organisations first to get the org IDs.
Authentication
Every request must include a valid PAT in the Authorization header:
Authorization: Bearer <your-token>Key points about authentication:
- Tokens are tied to your email, not a specific organisation
- Permissions are checked dynamically per request
- If you are removed from an organisation, access is denied immediately
- If MCP is disabled for an organisation, tool calls for that org are blocked
- Tokens have configurable expiry — create a new one when it expires
- All tool calls are read-only — you cannot modify data through MCP
Tools Reference
| Tool | Description | Required Arguments |
|---|---|---|
list_organisations | List all organisations you have access to | None |
get_organisation | Get organisation details | org_id |
list_resources | List cloud resources (paginated) | org_id |
get_resource | Get specific resource details | org_id, resource_id |
get_resource_count | Get total resource count | org_id |
get_resource_summary | Resource counts by provider and account | org_id |
get_resource_metrics | CPU/memory/disk utilization metrics | org_id, resource_uids |
get_discovery_summary | Get discovery status summary | org_id |
get_discovery_status | Last discovery refresh status | org_id |
list_schedules | List start/stop schedules (paginated) | org_id |
get_schedule | Get specific schedule details | org_id, schedule_id |
list_resource_groups | List resource groups (paginated) | org_id |
get_resource_group | Get resource group details | org_id, group_id |
list_overrides | List schedule overrides (paginated) | org_id |
get_override | Get override details | org_id, override_id |
list_cloud_accounts | List connected cloud accounts | org_id |
get_cloud_account | Get cloud account details | org_id, account_id |
get_costs | Get cost and savings summary | org_id |
get_cost_by_resources | Per-resource cost breakdown (paginated) | org_id |
get_cost_by_provider | Cost breakdown by cloud provider | org_id |
get_cost_trends | Cost trends over time | org_id, from, to, granularity |
get_resource_cost_history | Daily cost history for a resource | org_id, resource_uid |
get_report_snapshots | Monthly cost and savings snapshots | org_id |
get_currency_exchange_rate | Current currency exchange rates | org_id |
get_recommendations | List optimization recommendations (paginated) | org_id |
get_recommendation | Get specific recommendation detail | org_id, recommendation_id |
get_recommendation_summary | Savings stats by severity | org_id |
get_recommendation_by_provider | Recommendations by cloud provider | org_id |
list_recommendation_resources | Resources with recommendations (paginated) | org_id |
list_budgets | List all budgets (paginated) | org_id |
get_budget_summary | Budget health summary | org_id |
get_state_history | Resource start/stop history (paginated) | org_id |
get_action | Action execution details | org_id, action_id |
get_latest_bulk_action | Latest bulk action | org_id |
list_events | Scheduler execution events (paginated) | org_id |
list_audit_logs | Audit log entries (paginated) | org_id |
get_billing_sync_status | Billing sync health per cloud account | org_id |
list_teams | List all teams (paginated) | org_id |
get_team | Get team details | org_id, team_id |
list_team_members | List members of a team (paginated) | org_id, team_id |
list_team_resources | List resources assigned to a team (paginated) | org_id, team_id |
list_users | List all users in the organisation | org_id |
list_notification_channels | Notification channels for the org | org_id |
Read-Only Access
Pagination
Tools marked as (paginated) return results in pages. Pass a page argument (starting at 1) to navigate through results. The response includes:
{
"items": [...],
"total": 42,
"page": 1,
"limit": 10,
"hasMore": true
}When hasMore is true, increment the page number to fetch the next set. If you omit the page argument, the server returns page 1 by default.
Filters Reference
Many tools accept optional filter arguments to narrow results. Pass them in the arguments object alongside org_id. All filters are optional unless noted otherwise.
Boolean Filters
schedulable filter accepts multiple formats: true, false, 1, 0, yes, or no. They are all normalized automatically.list_resources
| Filter | Values | Notes |
|---|---|---|
provider | aws, gcp, azure | Cloud provider |
resource_type | compute, disk, kms-key, gcp-subnet, ... | Resource type |
status | running, stopped, active, available, ... | Resource status (case-insensitive) |
region | us-central1, ap-south-1, us-east-1, ... | Cloud region |
search | Any string | Substring match on resource name |
cloud_account_id | Account ID | Filter by cloud account |
schedulable | true, false (also accepts 1, 0, yes, no) | Whether resource can be scheduled |
instance_type | e2-micro, STANDARD, ... | Instance/machine type |
sort_by | name | Sort field |
sort_order | asc, desc | Sort direction |
view | all, parents, children | Resource hierarchy view |
parent_uid | Resource UID | Parent resource — requires view=children |
tag | Tag key name | Filter by tag key presence |
limit | Integer | Results per page |
get_recommendations
list_recommendation_resources supports the same filters.
| Filter | Values | Notes |
|---|---|---|
status | open, optimised | Recommendation status |
provider | aws, gcp, azure | Cloud provider |
category | compliance, discount, idle, orphan, rightsizing, schedule | Recommendation category |
resource_type | disk, compute, gke-cluster, s3, ecr, ec2, ebs-volume | Resource type |
severity | high, medium, low | Recommendation severity |
cloud_account_id | Account ID | Filter by cloud account |
search | Any string | Matches resource name or UID |
resource_uid | Full resource UID | Exact match on resource |
rule_id | e.g. RC-022, RC-111 | Specific recommendation rule |
sort_by | updated_at, generated_at, savings_usd, severity, title | Sort field |
sort_order | asc, desc | Sort direction |
list_schedules
| Filter | Values | Notes |
|---|---|---|
search | Any string | Matches schedule name |
team_id | Team UUID | Returns team-linked + standalone schedules |
list_resource_groups
| Filter | Values | Notes |
|---|---|---|
search | Any string | Matches group name |
team_id | Team UUID | Returns team-matching + unassigned groups |
list_overrides
| Filter | Values | Notes |
|---|---|---|
group_id | Resource group UUID | Filter by resource group |
resource_uid | Resource UID | Filter by resource |
status | active, expired | Override status |
sort_by | created_at, expires_at | Sort field |
sort_order | asc, desc | Sort direction |
list_cloud_accounts
| Filter | Values | Notes |
|---|---|---|
search | Any string | Matches account name |
get_cost_trends
| Filter | Values | Notes |
|---|---|---|
from | YYYY-MM-DD | Start date (required) |
to | YYYY-MM-DD | End date (required) |
granularity | daily, weekly, monthly | Time granularity (required) |
get_cost_by_resources
| Filter | Values | Notes |
|---|---|---|
resource_uids | Comma-separated UIDs | Filter to specific resources |
sort_by | cost | Sort field |
sort_order | asc, desc | Sort direction |
list_audit_logs
| Filter | Values | Notes |
|---|---|---|
method | POST, DELETE, PUT, PATCH | HTTP method |
resource | Any string | Path substring match |
user | Email address | Filter by user email |
search | Any string | General search |
start_date | YYYY-MM-DD | Start date |
end_date | YYYY-MM-DD | End date |
sort_order | asc, desc | Sort direction |
get_state_history
| Filter | Values | Notes |
|---|---|---|
state | stopped, started, failed | Action state |
resource_uid | Resource UID | Filter by resource |
changed_by_type | bulk, manual, schedule | How the action was triggered |
from | YYYY-MM-DD | Start date |
to | YYYY-MM-DD | End date |
sort_by | changed_at | Sort field |
sort_order | asc, desc | Sort direction |
list_events
| Filter | Values | Notes |
|---|---|---|
schedule_id | Schedule UUID | Filter by schedule |
resource_uid | Resource UID | Filter by resource |
sort_order | asc, desc | Sort direction |
list_budgets
| Filter | Values | Notes |
|---|---|---|
group_id | Resource group UUID | Filter by resource group |
resource_uid | Resource UID | Filter by resource |
Filter Example
To list only running AWS compute resources sorted by name:
{
"method": "tools/call",
"params": {
"name": "list_resources",
"arguments": {
"org_id": "your-org-id",
"provider": "aws",
"resource_type": "compute",
"status": "running",
"sort_by": "name",
"sort_order": "asc",
"page": 1
}
}
}Example Prompts
Once connected, try asking your AI assistant:
| What to ask | What happens |
|---|---|
| "List my organisations" | Shows all orgs you have access to |
| "What are my cloud costs this month?" | Shows cost summary and savings |
| "Show me optimization recommendations" | Lists recommendations with savings estimates |
| "How many resources do I have?" | Shows total resource count and summary by provider |
| "What schedules are active?" | Shows start/stop schedules |
| "Show my cloud accounts" | Lists connected AWS/GCP/Azure accounts |
| "Show cost trends over the last month" | Shows daily cost trends |
| "What is the CPU utilization of my EC2 instances?" | Shows CPU/memory metrics |
| "Are my budgets on track?" | Shows budget health summary |
| "Show billing sync status" | Shows if billing data is syncing correctly |
| "What teams exist in my org?" | Lists all teams and members |
| "Show audit logs" | Shows recent activity in the organisation |
| "What actions were executed recently?" | Shows scheduler events and action history |