Spanly MCP
Tools
The full surface of tools exposed by the Spanly MCP server.
The Spanly MCP server exposes the tools below. All of them resolve
against the project the API key is bound to. Time-range arguments
accept the presets 5m, 30m, 1h, 3h, 1d, 7d, 30d, 90d,
180d. Anywhere a tool takes an environmentId, you can list valid
values with list_environments.
| Tool | Purpose |
|---|
list_projects | Projects accessible to the API key. |
list_environments | Environments (regional contexts) inside the project. |
The leaf entity – one JSON-RPC request/response pair captured from your
MCP server.
| Tool | Purpose |
|---|
list_requests | Filter requests by server, client, method, status, and time range. |
get_request | Fetch a single request by id, including raw payload. |
aggregate_requests_by_method | Group request counts by method. |
| Tool | Purpose |
|---|
list_servers | Servers seen in the time range, with request counts and error rates. |
aggregate_servers | Roll up traffic by server name/version. |
client_calls_over_time | Time series of calls by client name/version – useful for spotting client-side regressions. |
| Tool | Purpose |
|---|
list_errors | Errored requests in the time range. |
aggregate_errors_by_code | Counts grouped by error code. |
get_errors_by_code | Pull the underlying requests for one error code. |
The same views that power the dashboard UI.
| Tool | Purpose |
|---|
dashboard_stats | Headline numbers: total requests, error rate, p50/p95/p99. |
dashboard_top_servers | Top servers by traffic. |
dashboard_top_tools | Top tools (MCP tools/call) by traffic. |
dashboard_slowest_operations | The slowest operations in the window. |
| Tool | Purpose |
|---|
get_integration_instructions | Returns copy-paste integration instructions for the TS SDK, Python SDK, CLI, or Docker – the same content as the in-app onboarding flow. |
Read and manage alert rules and notification channels.
| Tool | Purpose |
|---|
list_alert_rules | List alert rules in the project. |
count_alert_rules | Quick count for dashboard tiles. |
get_alert_rule | Fetch a single rule by id. |
create_alert_rule | Create a new rule. Metrics: ERROR_RATE, P95_DURATION, P99_DURATION, VOLUME_DROP, VOLUME_SPIKE. |
update_alert_rule | Update an existing rule. |
toggle_alert_rule | Enable / disable a rule without deleting it. |
delete_alert_rule | Delete a rule. |
preview_alert_metric | Compute the current value of a metric – useful before setting a threshold. |
test_fire_alert_rule | Force-fire a rule to verify routing to channels. |
| Tool | Purpose |
|---|
list_alert_channels | List notification channels (EMAIL, SLACK, WEBHOOK, IN_APP). |
create_alert_channel | Create a new channel. |
update_alert_channel | Update a channel's destination or auth. |
delete_alert_channel | Delete a channel. |
| Tool | Purpose |
|---|
list_shared_links | Existing share links for the project. |
create_shared_link | Create a read-only link to a dashboard, request, or chart. |
revoke_shared_link | Revoke an existing link. |
- Read-only by default – every tool documents whether it mutates
state. Write tools require project-admin permissions.
- No pagination cursor surprises – listing tools take
limit and
offset rather than opaque cursors, so an agent can plan multi-step
scans deterministically.
- Idempotent IDs –
create_* tools return the new id; if you
pass an existing id explicitly, the call is a no-op upsert rather
than a duplicate.