Skip to main content
Glama

ping

Check network connectivity by pinging a hostname or URL to verify reachability and measure response time.

Instructions

Pings a host and returns the result

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hostYesThe hostname or URL to ping (e.g., 'google.com' or 'https://google.com')

Implementation Reference

  • The execute handler for the 'ping' tool. It extracts the hostname from the input (handling URLs), executes a platform-specific ping command (ping -c 4 on Unix, ping -n 4 on Windows) using the promisified execAsync, and returns formatted success or error output.
    execute: async (args) => { try { // Extract hostname from URL if needed let hostname = args.host; // If it's a full URL, extract the hostname if (hostname.startsWith("http://") || hostname.startsWith("https://")) { const url = new URL(hostname); hostname = url.hostname; } // Execute ping command (platform-specific) const isWindows = process.platform === "win32"; const pingCommand = isWindows ? `ping -n 4 ${hostname}` : `ping -c 4 ${hostname}`; const { stderr, stdout } = await execAsync(pingCommand); if (stderr) { return `Failed to ping ${hostname}:\n${stderr}`; } return `Ping results for ${hostname}:\n\n${stdout}`; } catch (error) { const errorMessage = error instanceof Error ? error.message : "Unknown error occurred"; return `Failed to ping ${args.host}:\n${errorMessage}`; } },
  • Zod schema defining the input parameters for the 'ping' tool: a required 'host' string parameter with description.
    parameters: z.object({ host: z .string() .describe( "The hostname or URL to ping (e.g., 'google.com' or 'https://google.com')", ), }),
  • Registration of the 'ping' tool via server.addTool(), including name, description, annotations (title), handler, and parameters schema.
    server.addTool({ annotations: { openWorldHint: false, readOnlyHint: true, title: "Ping", }, description: "Pings a host and returns the result", execute: async (args) => { try { // Extract hostname from URL if needed let hostname = args.host; // If it's a full URL, extract the hostname if (hostname.startsWith("http://") || hostname.startsWith("https://")) { const url = new URL(hostname); hostname = url.hostname; } // Execute ping command (platform-specific) const isWindows = process.platform === "win32"; const pingCommand = isWindows ? `ping -n 4 ${hostname}` : `ping -c 4 ${hostname}`; const { stderr, stdout } = await execAsync(pingCommand); if (stderr) { return `Failed to ping ${hostname}:\n${stderr}`; } return `Ping results for ${hostname}:\n\n${stdout}`; } catch (error) { const errorMessage = error instanceof Error ? error.message : "Unknown error occurred"; return `Failed to ping ${args.host}:\n${errorMessage}`; } }, name: "ping", parameters: z.object({ host: z .string() .describe( "The hostname or URL to ping (e.g., 'google.com' or 'https://google.com')", ), }), });

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/punkpeye/mcp-ping'

If you have feedback or need assistance with the MCP directory API, please join our Discord server