> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Algolia Monitoring

The Algolia Monitoring connector lets your AI agent act in each user's Algolia Monitoring account. Each user connects their own Algolia Monitoring API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 9 tools.

**Authentication:** API Key
**Categories:** Monitoring, Search
**Tools:** 9: 9 read, 0 write, 0 destructive
**Users sign in with:** API key
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=ALGOLIAMONITORING)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Algolia Monitoring connection

   In **AgentKit > Connections**, create an Algolia Monitoring connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'algoliamonitoring'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Algolia Monitoring:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'algoliamonitoring_get_status',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "algoliamonitoring"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Algolia Monitoring:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="algoliamonitoring_get_status",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their Algolia Monitoring credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'algoliamonitoring_get_cluster_status',
  toolInput: {
    clusters: '<clusters>',
  },
  connector: 'algoliamonitoring',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="algoliamonitoring_get_cluster_status",
    tool_input={
        "clusters": "<clusters>",
    },
    connection_name="algoliamonitoring",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `algoliamonitoring_get_cluster_status`

Get Status of Selected Clusters · Read-only

Get the current operational status of one or more specific Algolia clusters.
Returns a status map keyed by cluster name, where each value is operational, degraded_performance, partial_outage, or major_outage.
Use this to check clusters you already know by name. Use get_status for every cluster, and list_cluster_incidents for incident history on these clusters.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `clusters` (`string`, required): Comma-separated list of Algolia cluster names to query, with no spaces. Use the cluster names returned by get_status or list_servers. Example: c1-de,c2-de,c3-de.

Example input: `{"clusters":"<clusters>"}`

### `algoliamonitoring_get_indexing_time`

Get Indexing Time · Read-only

Get indexing latency metrics for one or more Algolia clusters.
Returns time series per cluster name, where each point has a millisecond Unix timestamp and a latency value in milliseconds, measured on Algolia's internal monitoring index.
Use this for infrastructure-level monitoring, not for the indexing performance of your own index. Use get_latency for search latency.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `clusters` (`string`, required): Comma-separated list of Algolia cluster names to query, with no spaces. Use the cluster names returned by get_status or list_servers. Example: c1-de,c2-de,c3-de. These are infrastructure-level metrics, not a measure of a single application's indexing.

Example input: `{"clusters":"<clusters>"}`

### `algoliamonitoring_get_infrastructure_metrics`

Get Infrastructure Metrics · Read-only

Get infrastructure metrics for your Algolia application, aggregated over a chosen time window.
Returns time series keyed by metric and then by server name, where each point has a millisecond Unix timestamp and a value. Metrics cover CPU idleness, SSD usage, RAM used for search and indexing, and average build time.
Use this for resource usage trends. Requires an Algolia Premium or Elevate plan. Use get_latency for search latency and get_cluster_status for current health.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `metric` (`string`, required): Infrastructure metric to report. One of avg_build_time (average index build time in seconds), ssd_usage (SSD usage as a percentage of RAM), ram_search_usage (RAM used for search in MB), ram_indexing_usage (RAM used for indexing in MB), cpu_usage (CPU idleness in percent), or * to return all metrics. Example: cpu_usage. One of: `avg_build_time`, `ssd_usage`, `ram_search_usage`, `ram_indexing_usage`, `cpu_usage`, `*`.
- `period` (`string`, required): Time window over which to aggregate the metrics. One of minute (last minute, 1 data point per 10 seconds), hour (last hour, 1 per minute), day (last day, 1 per 10 minutes), week (last week, 1 per hour), or month (last month, 1 per day). Example: week. One of: `minute`, `hour`, `day`, `week`, `month`.

Example input: `{"metric":"avg_build_time","period":"minute"}`

### `algoliamonitoring_get_latency`

Get Search Latency · Read-only

Get the average search request latency for one or more Algolia clusters.
Returns time series per cluster name, where each point has a millisecond Unix timestamp and a latency value in milliseconds.
Use this to measure search speed. Use get_indexing_time for indexing latency, and get_cluster_status for current health.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `clusters` (`string`, required): Comma-separated list of Algolia cluster names to query, with no spaces. Use the cluster names returned by get_status or list_servers. Example: c1-de,c2-de,c3-de.

Example input: `{"clusters":"<clusters>"}`

### `algoliamonitoring_get_reachability`

Get Cluster Reachability · Read-only

Test whether one or more Algolia clusters are reachable from Algolia's monitoring probes.
Returns a map keyed by cluster name, where each value maps a probe name to true when reachable or false when not.
Use this to diagnose connectivity problems. Use get_cluster_status for the reported operational status.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `clusters` (`string`, required): Comma-separated list of Algolia cluster names to query, with no spaces. Use the cluster names returned by get_status or list_servers. Example: c1-de,c2-de,c3-de.

Example input: `{"clusters":"<clusters>"}`

### `algoliamonitoring_get_status`

Get Status of All Clusters · Read-only

Get the current operational status of all Algolia clusters and instances.
Returns a status map keyed by cluster name, where each value is operational, degraded_performance, partial_outage, or major_outage.
Use this for a fleet-wide health overview. Use get_cluster_status to check specific clusters, and list_incidents for known incidents.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `algoliamonitoring_list_cluster_incidents`

List Incidents for Selected Clusters · Read-only

List known incidents for one or more specific Algolia clusters.
Returns incidents grouped by cluster name; each entry has a millisecond Unix timestamp and a details object with a title and a status (operational, degraded_performance, partial_outage, or major_outage).
Use this when you know the cluster names. Use list_incidents for all clusters, and get_cluster_status for current health only.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `clusters` (`string`, required): Comma-separated list of Algolia cluster names to query, with no spaces. Use the cluster names returned by get_status or list_servers. Example: c1-de,c2-de,c3-de.

Example input: `{"clusters":"<clusters>"}`

### `algoliamonitoring_list_incidents`

List All Incidents · Read-only

List known incidents across all Algolia clusters.
Returns incidents grouped by cluster name; each entry has a millisecond Unix timestamp and a details object with a title and a status (operational, degraded_performance, partial_outage, or major_outage).
Use this for a fleet-wide incident history. Use list_cluster_incidents to limit results to specific clusters, and get_status for current health only.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `algoliamonitoring_list_servers`

List Servers · Read-only

List the servers that belong to Algolia clusters.
Returns an inventory array where each server has a name, cluster, region, replica flag, status, and type. When authenticated, the list covers the cluster assigned to your Algolia application.
Use this to discover cluster and server names before calling get_cluster_status, get_latency, or other cluster-specific tools.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

## Related

Other Monitoring connectors ([all 22](/agentkit/connectors/?category=monitoring)):

- [Datadog](/agentkit/connectors/datadog/): Scalekit connector, API key, 105 tools
- [PagerDuty](/agentkit/connectors/pagerduty/): Scalekit connector, OAuth, 71 tools
- [Agency Analytics MCP server](/agentkit/connectors/agencyanalyticsmcp/): Vendor MCP, OAuth, 35 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
