# MCP tools

> Every MCP tool Fixter exposes, grouped by product area, and what each one does.

All tools are served through the single endpoint described in
[MCP](/setup/mcp/). Your agent sees every
tool your role allows; tools marked **admin** return a clear "requires the ADMIN role"
message to other callers.

## Telemetry

Query your monitoring data: the same surface as the
[Logs](https://app.fixter.dev/logs) and [Metrics](https://app.fixter.dev/metrics)
pages, tool-shaped.

| Tool | What it does |
| --- | --- |
| `logs` | search logs with filters (service, level, trace id, time range, text) and cursor pagination |
| `get_log` | fetch one complete log record by its `log_id` |
| `get_log_neighbors` | the logs immediately before/after a given log, for context around a suspicious line |
| `spans` | search spans (service, operation name, status, kind, minimum duration, trace id, time range) |
| `get_trace` | every span of one trace, plus a summary |
| `aggregate_spans` | request count, error rate, and latency percentiles, grouped by service or operation |
| `list_metrics` | discover which metrics exist per service |
| `metrics` | query one metric's time series (with step, grouping, filters) |
| `correlate` | one-shot pivot for a trace id: its spans, its logs, and related metric exemplars |
| `describe_schema` | what's queryable: fixed fields and your own dynamic attribute keys, per table |
| `run_sql` | run a read-only [QuerySQL](/reference/querysql/) statement |

## Alerting

Author and manage alert rules: the tool shape of the
[Alerts](https://app.fixter.dev/alerts) pages.

| Tool | What it does |
| --- | --- |
| `describe_alerting` | how Fixter alert rules work: the shapes and options, self-describing for agents |
| `get_alert_rules` | list your alert rules |
| `save_alert_rule` | create or update a rule (thresholds or anomaly conditions over a [QuerySQL](/reference/querysql/)-filtered signal) |
| `preview_alert_rule` | dry-run a rule against recent data before saving it |
| `set_alert_rule_status` | enable or disable a rule |
| `delete_alert_rule` | remove a rule |
| `suppress_signal` / `unsuppress_signal` / `list_suppressions` | temporarily silence matching alerts |
| `create_ignore_rule` / `delete_ignore_rule` / `list_ignore_rules` | permanently ignore known-noise signals |

## API tests

Synthetic probes against your HTTP endpoints and MCP servers: the tool shape of the
[API Tests](https://app.fixter.dev/api-tests) page.

| Tool | What it does |
| --- | --- |
| `create_api_test` / `update_api_test` / `delete_api_test` | define probes, with assertions on status, latency, headers, body, or MCP handshake/tools |
| `list_api_tests` / `get_api_test` | inspect configured tests |
| `enable_api_test` / `disable_api_test` | pause and resume a test |
| `get_api_test_runs` | run history with outcomes, filterable by time and status |
| `get_uptime` | uptime percentage over a window |
| `create_api_test_credential` / `list_api_test_credentials` / `delete_api_test_credential` | manage the credentials probes authenticate with (basic, bearer, API key, OAuth2); values are write-only and never echoed back |

## Investigations

Work [investigations](/using-fixter/investigations/) and configure how they run. Setup changes
require the **admin** role; reads are open to any role.

### Working an investigation

| Tool | What it does |
| --- | --- |
| `list_investigations` | recent investigations, newest first |
| `get_investigation_brief` | the full transcript of one investigation, read-only |
| `start_investigation` | claim an investigation (by id or its pick-up slug) and continue it in your editor with its complete context |

### Setup

| Tool | What it does |
| --- | --- |
| `list_investigation_alert_channels` | Slack channels Fixter watches for alerts |
| `add_investigation_alert_channel` / `remove_investigation_alert_channel` (**admin**) | add or remove a watched channel by id. Every bot-posted alert in a watched channel is investigated automatically; there is no per-alert rule to configure |
| `list_investigation_agent_context_credentials` | which monitoring-provider credentials are configured (names only; values are never readable) |
| `set_investigation_datadog_credentials` (**admin**) | store Datadog keys so investigations can run against your existing monitoring during migration |
| `set_investigation_cloudwatch_credentials` (**admin**) | store AWS CloudWatch credentials, same purpose |
| `get_issue_digest_config` / `set_issue_digest_config` (**admin**, set only) | the issue digest's mode, schedule, timezone, and delivery channel |

## Behavior notes

- Results are capped for agent-friendliness (long strings and large result sets are
  truncated); every search tool takes limits and filters for precise paging.
- Destructive setup tools (channel removal, rule deletion) act immediately.
- This page is hand-maintained against the current tool surface; your agent's live
  tool list is always authoritative, so ask it to list its Fixter tools.