> **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 the Globalping MCP server

The Globalping MCP connector routes your AI agent's tool calls to Globalping's own MCP server through Scalekit. Each user signs in to Globalping once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 12 tools.

**Authentication:** OAuth2.1/DCR
**Categories:** Monitoring, Developer Tools
**Tools:** 12: 12 read, 0 write, 0 destructive
**Users sign in with:** OAuth
**OAuth app:** Scalekit's or your own
**Built by:** Vendor MCP
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=GLOBALPINGMCP)

## 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 Globalping MCP connection

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

   Scalekit credentials are available for Globalping MCP server, so you don't need to register an OAuth app.

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 = 'globalpingmcp'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Globalping MCP:', 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: 'globalpingmcp_authstatus',
     toolInput: { context: 'YOUR_CONTEXT' },
   })
   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 = "globalpingmcp"
   identifier = "user_123"

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

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

   ```bash
   python quickstart.py
   ```

   Each user signs in once. 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: 'globalpingmcp_authstatus',
  toolInput: {
    context: '<context>',
  },
  connector: 'globalpingmcp',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="globalpingmcp_authstatus",
    tool_input={
        "context": "<context>",
    },
    connection_name="globalpingmcp",
    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.

### `globalpingmcp_authstatus`

AuthStatus · Read-only

Check the current authentication status with Globalping. Use this tool to verify if the user is logged in and has a valid OAuth token for executing measurements.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).

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

### `globalpingmcp_comparelocations`

CompareLocations · Read-only

Get a guide on how to run comparison tests using the exact same probes as a previous measurement. Use this tool when you need to benchmark different targets from the same vantage points for a fair comparison.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).

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

### `globalpingmcp_dns`

Dns · Read-only

Resolve DNS records (A, AAAA, MX, etc.) for a domain from global locations. Use this tool to verify DNS propagation, troubleshoot resolution failures, or check if users in different regions are seeing the correct records. Note: Only public endpoints are supported.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).
- `target` (`string`, required): Public domain name to resolve (e.g., 'google.com'). Private domains, localhost, and link-local addresses are not supported.
- `limit` (`number`, optional): Number of probes to use (default: 3, max: 100).
- `locations` (`string`, optional): Locations to run the DNS lookup from. Supports Globalping magic field syntax: 'world', country codes like 'US', city names like 'London+UK', ASNs like 'AS13335'.
- `queryType` (`string`, optional): DNS record type to query (default: A). One of: `A`, `AAAA`, `ANY`, `CNAME`, `DNSKEY`, `DS`, `HTTPS`, `MX`, `NS`, `NSEC`, `PTR`, `RRSIG`, `SOA`, `TXT`, `SRV`, `SVCB`.
- `resolver` (`string`, optional): Custom DNS resolver IP to use (e.g., '1.1.1.1', '8.8.8.8'). Defaults to the probe's system resolver.
- `trace` (`boolean`, optional): Trace the full delegation path from root DNS servers (default: false).

Example input: `{"context":"<context>","target":"google.com"}`

### `globalpingmcp_get_more_tools`

GetMoreTools · Read-only

Check for additional Globalping tools whenever your task might benefit from specialized capabilities — even if existing tools could work as a fallback.

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

Inputs:

- `context` (`string`, required): A description of your goal and what kind of tool would help accomplish it.

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

### `globalpingmcp_getmeasurement`

GetMeasurement · Read-only

Retrieve the full details of a past measurement using its ID. Use this tool to access raw JSON data, individual probe results, or cached measurements when the initial summary from a measurement tool is insufficient.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).
- `id` (`string`, required): The ID of a previously run measurement (e.g., '01HT4DGF5ZS7B2M93QP5ZTS3DN').

Example input: `{"context":"<context>","id":"01HT4DGF5ZS7B2M93QP5ZTS3DN"}`

### `globalpingmcp_help`

Help · Read-only

Get a comprehensive guide to the Globalping MCP server. Use this tool to learn about available tools, understand location formatting (magic fields), or see example usage patterns.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).

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

### `globalpingmcp_http`

Http · Read-only

Send HTTP/HTTPS requests (GET, HEAD, or OPTIONS) to a URL from global locations. Use this tool to check website uptime, verify response status codes, analyze timing (TTFB, download), and debug CDN or caching issues. Note: Only public endpoints are supported. Private networks cannot be tested.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).
- `target` (`string`, required): Public domain name or IP address to test (e.g., 'example.com'). Private IPs (RFC1918), localhost, and link-local addresses are not supported.
- `limit` (`number`, optional): Number of probes to use (default: 3, max: 100).
- `locations` (`string`, optional): Locations to run the test from. Supports Globalping magic field syntax: 'world', country codes like 'US', city names like 'London+UK', ASNs like 'AS13335'.
- `method` (`string`, optional): HTTP method to use (default: GET). Supported: GET, HEAD, OPTIONS. One of: `GET`, `HEAD`, `OPTIONS`.
- `path` (`string`, optional): URL path component (e.g., '/api/v1/status').
- `port` (`number`, optional): Port number (default: 443 for HTTPS, 80 for HTTP).
- `protocol` (`string`, optional): Protocol to use: HTTP or HTTPS (default: HTTPS). One of: `HTTP`, `HTTPS`.
- `query` (`string`, optional): Query string to append to the URL (e.g., 'param=value&another=123').

Example input: `{"context":"<context>","target":"example.com"}`

### `globalpingmcp_limits`

Limits · Read-only

Check current API rate limits and remaining credits for the Globalping account. Use this tool to monitor your usage quota and verify if you can perform additional measurements.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).

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

### `globalpingmcp_locations`

Locations · Read-only

Retrieve the list of available Globalping probe locations. Use this to find specific countries, cities, or ASNs for the 'locations' argument in measurement tools. Avoid using this unless necessary — the location field in measurement tools auto-selects probes intelligently.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).

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

### `globalpingmcp_mtr`

Mtr · Read-only

Run an MTR (My Traceroute) diagnostic, which combines Ping and Traceroute. Use this tool to analyze packet loss and latency trends at every hop in the network path over time, helpful for spotting intermittent issues. Note: Only public endpoints are supported. Private networks cannot be tested.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).
- `target` (`string`, required): Public destination hostname or IP address to run the MTR against. Private IPs (RFC1918), localhost, and link-local addresses are not supported.
- `limit` (`number`, optional): Number of probes to use (default: 3, max: 100).
- `locations` (`string`, optional): Locations to run the test from. Supports Globalping magic field syntax: 'world', country codes like 'US', city names like 'London+UK', ASNs like 'AS13335'.
- `packets` (`number`, optional): Number of packets to send to each hop (default: 3).
- `port` (`number`, optional): Port number for TCP/UDP MTR (default: 80).
- `protocol` (`string`, optional): Protocol to use for MTR (default: ICMP). One of: `ICMP`, `TCP`, `UDP`.

Example input: `{"context":"<context>","target":"google.com"}`

### `globalpingmcp_ping`

Ping · Read-only

Measure network latency, packet loss, and reachability to a target (domain or IP) from globally distributed probes. Use this tool to check if a server is online, debug connection issues, or assess global performance. Note: Only public endpoints are supported. Private networks cannot be tested.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).
- `target` (`string`, required): Public domain name or IP address to test (e.g., 'google.com', '1.1.1.1'). Private IPs (RFC1918), localhost, and link-local addresses are not supported.
- `limit` (`number`, optional): Number of probes to use (default: 3, max: 100).
- `locations` (`string`, optional): Locations to run the test from. Supports Globalping magic field syntax: 'world', country codes like 'US', city names like 'London+UK', ASNs like 'AS13335', or cloud regions like 'Amazon+Germany'. Can also be a previous measurement ID to compare from the same probes.
- `packets` (`number`, optional): Number of packets to send (default: 3).

Example input: `{"context":"<context>","target":"google.com"}`

### `globalpingmcp_traceroute`

Traceroute · Read-only

Trace the network path to a target (domain or IP) from global locations. Use this tool to identify where packets are being dropped, analyze routing paths, or pinpoint latency sources in the network. Note: Only public endpoints are supported. Private networks cannot be tested.

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

Inputs:

- `context` (`string`, required): Explain why you are calling this tool and how it fits into the user's overall goal. Used for analytics and intent tracking (15-25 words, third-person perspective).
- `target` (`string`, required): Public domain name or IP address to test (e.g., 'cloudflare.com', '1.1.1.1'). Private IPs (RFC1918), localhost, and link-local addresses are not supported.
- `limit` (`number`, optional): Number of probes to use (default: 3, max: 100).
- `locations` (`string`, optional): Locations to run the test from. Supports Globalping magic field syntax: 'world', country codes like 'US', city names like 'London+UK', ASNs like 'AS13335', or cloud regions like 'Amazon+Germany'. Can also be a previous measurement ID.
- `port` (`number`, optional): Port number for TCP/UDP traceroute (default: 80).
- `protocol` (`string`, optional): Protocol to use for the traceroute (default: ICMP). One of: `ICMP`, `TCP`, `UDP`.

Example input: `{"context":"<context>","target":"cloudflare.com"}`

## 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 |
