> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iqrush.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Make your first MCP calls

> Retrieve one measurement and the information needed to interpret it. You need an authorized MCP connection and a project with a completed run.

Retrieve one measurement and the information needed to interpret it. You need an authorized MCP connection and a project with a completed run.

## 1. Connect and discover tools

Use the URL shown in **Settings → MCP → Connect** in your IQRush environment. The remote connection uses Streamable HTTP and browser authorization. See [connection setup](/developers/guides/03-connect-assistants).

For a custom client, let your MCP library handle the protocol lifecycle, then call `tools/list`. Use its `inputSchema` to validate arguments. Tool names below are IQRush names; a host may display a prefix around them.

## 2. Find your project

Call `list_projects` with an empty arguments object:

```json theme={null}
{"name":"list_projects","arguments":{}}
```

The result contains `projects` and `count`. Find the intended project by its name and workspace, then retain its `project_id`. Names can repeat; IDs identify the project.

## 3. Select a completed run

Call `list_runs` with that `project_id`:

```json theme={null}
{"name":"list_runs","arguments":{"project_id":"PROJECT_ID"}}
```

Select the intended run with `status: "COMPLETED"`. Check `data_ready`. For grouped or filtered measurements, also check `cold_path_ready` when returned. Save `run_id` and the completion date. If the required data is not ready, wait and check the run again before interpreting an empty measurement.

`start_session` is a convenient alternative for discovery, but its latest-run selection is not a guarantee that the latest run is complete. Inspect the returned run before using it.

## 4. Check stability

Call `get_results_stability` with the project and run IDs. Read `data.is_converged`, `data.rank_corr_ok`, `data.sufficiency_ok`, and `data.structural_snr`. A finished run and a converged measurement are different states. See [decision-grade results](/developers/guides/10-stability).

```json theme={null}
{"name":"get_results_stability","arguments":{"project_id":"PROJECT_ID","run_id":"RUN_ID","aggregation_level":"domain"}}
```

## 5. Read citation coverage

Replace the two ID placeholders with values returned by discovery:

```json theme={null}
{
  "name": "get_citation_score",
  "arguments": {
    "project_id": "PROJECT_ID",
    "run_id": "RUN_ID",
    "metric": "coverage",
    "aggregation_level": "domain",
    "subject": {"kind": "owned"},
    "group_by": ["platform"]
  }
}
```

These objects are the `params` of an MCP `tools/call` request, not standalone HTTP request bodies. See [custom clients](/developers/guides/05-custom-mcp-client) for the surrounding protocol message.

## What success looks like

You receive the requested project and run, rows for the owned domains, platform scope, and an `estimate` for each row. Display the value with its returned confidence interval. A coverage value of `0.25` is 25%, not 0.25%.

Check errors and warnings even when the transport succeeds. An empty list is not automatically zero visibility. Follow [response handling](/developers/guides/09-responses-and-metrics) if the result has no rows.

Next: [Work through a reporting example](/developers/guides/17-worked-example), then choose a [report recipe](/developers/guides/16-report-recipes). For your own client, use [response handling](/developers/guides/09-responses-and-metrics) before turning returned fields into a report.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.