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 projects your signed-in account can access. Time-range arguments
accept the presets 5m, 30m, 1h, 3h, 1d, 7d, 30d, 90d,
180d, 365d. Anywhere a tool takes an environmentId, you can list valid
values with list_environments.
| Tool | Purpose |
|---|
list_projects | Projects accessible to your account. |
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 act with your account's permissions.
- No pagination cursor surprises: listing tools take a plain
limit rather than opaque cursors, so an agent can plan multi-step
scans deterministically.
- Explicit ids:
create_* tools return the new entity's id;
get_*, update_*, and delete_* tools take it as an argument.