Skip to main content
Glama

Probe a server live

check_server
Read-onlyIdempotent

Connects to an MCP server URL now (initialize and tools/list, 10 s timeout) and reports status, protocol, how a client gets access, tool names and the token cost of the tool definitions: exact in Claude when the counter is available, else an estimate from the schema size. Use it for a URL that is not in the official registry, or to see the state this minute; for a registry server prefer lookup_server, which is instant. Sends no credentials: a server that needs them comes back with status "auth", not an error. A URL that is not https, or a server that does not answer, returns its failure as status and error.

Input Schema

NameRequiredDescriptionDefault
urlYesThe https URL of the MCP endpoint, Streamable HTTP (…/mcp) or SSE (…/sse)

Output Schema

NameRequiredDescriptionDefault
urlYes
errorNoThe first line of the failure, when status is not ok
toolsYesThe tool names, in the order the server lists them
statusYesok (answered initialize and tools/list), auth (needs credentials), payment (402), needs_url (every URL in the registry has a placeholder each user fills in; not called), unprobed (an entry the probe does not run yet: an MCPB bundle, an OCI image, a NuGet or Cargo package, or nothing to connect to), not_found, protocol_error (not MCP), timeout, dns, tls, refused, server_error, rate_limited, newer_protocol, unsupported_version (rejects the protocol version the client asks for); package servers also install_failed, no_bin, needs_env, needs_args, needs_network, needs_old_sdk (starts and lists its tools only with mcp<2), crashed. A failure counts as down only after two days of failed probes (see failingSince)
authKindNoHow a client gets in: oauth-dcr, oauth, token or unknown
latencyMsYes
toolCountNo
authSchemeNoThe WWW-Authenticate scheme of a server that needs auth
httpStatusNoThe HTTP status of the first response
serverInfoNoname, version and title from initialize
toolsBytesYesBytes of the compact JSON of every tool definition
claudeErrorNo
claudeModelNo
statusLabelYesThe status in words
authMetadataNoauthorizationServers, scopesSupported, dynamicRegistration, pkce, grantTypes
claudeTokensNoExact count from the Anthropic count_tokens endpoint
estimateNoteYes
protocolVersionNo
authDocumentationNoThe publisher's guide to getting access
toolsTokensEstimateYesTokens estimated from the schema size at the registry median of 4.42 bytes per token
claudeTokensClaudeCodeNoThe exact count with the Claude Code prefix on each tool name

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / status / description
      Previous value: -"ok (answered initialize and tools/list), auth (needs credentials), payment (402), needs_url (every URL in the registry has a placeholder each user fills in; not called), unprobed (an entry the probe does not run yet: an MCPB bundle, an OCI image, a NuGet or Cargo package, or nothing to connect to), not_found, protocol_error (not MCP), timeout, dns, tls, refused, server_error, rate_limited, newer_protocol, unsupported_version (rejects the protocol version the client asks for); package servers also install_failed, no_bin, needs_env, needs_args, needs_network, crashed. A failure counts as down only after two days of failed probes (see failingSince)"New value: +"ok (answered initialize and tools/list), auth (needs credentials), payment (402), needs_url (every URL in the registry has a placeholder each user fills in; not called), unprobed (an entry the probe does not run yet: an MCPB bundle, an OCI image, a NuGet or Cargo package, or nothing to connect to), not_found, protocol_error (not MCP), timeout, dns, tls, refused, server_error, rate_limited, newer_protocol, unsupported_version (rejects the protocol version the client asks for); package servers also install_failed, no_bin, needs_env, needs_args, needs_network, needs_old_sdk (starts and lists its tools only with mcp<2), crashed. A failure counts as down only after two days of failed probes (see failingSince)"
  2. Changed1 schema field changed
    • changedOutput schema / properties / status / description
      Previous value: -"ok (answered initialize and tools/list), auth (needs credentials), payment (402), needs_url (every URL in the registry has a placeholder each user fills in; not called), unprobed (an entry the probe does not run yet: an MCPB bundle, an OCI image, a NuGet or Cargo package, or nothing to connect to), not_found, protocol_error (not MCP), timeout, dns, tls, refused, server_error, rate_limited, newer_protocol; package servers also install_failed, no_bin, needs_env, needs_args, needs_network, crashed. A failure counts as down only after two days of failed probes (see failingSince)"New value: +"ok (answered initialize and tools/list), auth (needs credentials), payment (402), needs_url (every URL in the registry has a placeholder each user fills in; not called), unprobed (an entry the probe does not run yet: an MCPB bundle, an OCI image, a NuGet or Cargo package, or nothing to connect to), not_found, protocol_error (not MCP), timeout, dns, tls, refused, server_error, rate_limited, newer_protocol, unsupported_version (rejects the protocol version the client asks for); package servers also install_failed, no_bin, needs_env, needs_args, needs_network, crashed. A failure counts as down only after two days of failed probes (see failingSince)"
  3. Changed1 schema field changed
    • changedOutput schema / properties / status / description
      Previous value: -"ok (answered initialize and tools/list), auth (needs credentials), payment (402), needs_url (every URL in the registry has a placeholder each user fills in; not called), not_found, protocol_error (not MCP), timeout, dns, tls, refused, server_error, rate_limited, newer_protocol; package servers also install_failed, no_bin, needs_env, needs_args, needs_network, crashed. A failure counts as down only after two days of failed probes (see failingSince)"New value: +"ok (answered initialize and tools/list), auth (needs credentials), payment (402), needs_url (every URL in the registry has a placeholder each user fills in; not called), unprobed (an entry the probe does not run yet: an MCPB bundle, an OCI image, a NuGet or Cargo package, or nothing to connect to), not_found, protocol_error (not MCP), timeout, dns, tls, refused, server_error, rate_limited, newer_protocol; package servers also install_failed, no_bin, needs_env, needs_args, needs_network, crashed. A failure counts as down only after two days of failed probes (see failingSince)"
  4. Changed1 schema field changed
    • changedOutput schema / properties / status / description
      Previous value: -"ok (answered initialize and tools/list), auth (needs credentials), payment (402), not_found, protocol_error (not MCP), timeout, dns, tls, refused, server_error, rate_limited, newer_protocol; package servers also install_failed, no_bin, needs_env, needs_args, needs_network, crashed"New value: +"ok (answered initialize and tools/list), auth (needs credentials), payment (402), needs_url (every URL in the registry has a placeholder each user fills in; not called), not_found, protocol_error (not MCP), timeout, dns, tls, refused, server_error, rate_limited, newer_protocol; package servers also install_failed, no_bin, needs_env, needs_args, needs_network, crashed. A failure counts as down only after two days of failed probes (see failingSince)"
  5. Changed2 schema fields changed
    • changedInput schema / properties / url / description
      Previous value: -"https URL of the MCP endpoint"New value: +"The https URL of the MCP endpoint, Streamable HTTP (…/mcp) or SSE (…/sse)"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "authDocumentation": {
      +      "description": "The publisher's guide to getting access",
      +      "type": "string"
      +    },
      +    "authKind": {
      +      "description": "How a client gets in: oauth-dcr, oauth, token or unknown",
      +      "type": "string"
      +    },
      +    "authMetadata": {
      +      "additionalProperties": {},
      +      "description": "authorizationServers, scopesSupported, dynamicRegistration, pkce, grantTypes",
      +      "type": "object"
      +    },
      +    "authScheme": {
      +      "description": "The WWW-Authenticate scheme of a server that needs auth",
      +      "type": "string"
      +    },
      +    "claudeError": {
      +      "type": "string"
      +    },
      +    "claudeModel": {
      +      "type": "string"
      +    },
      +    "claudeTokens": {
      +      "description": "Exact count from the Anthropic count_tokens endpoint",
      +      "type": "integer"
      +    },
      +    "claudeTokensClaudeCode": {
      +      "description": "The exact count with the Claude Code prefix on each tool name",
      +      "type": "integer"
      +    },
      +    "error": {
      +      "description": "The first line of the failure, when status is not ok",
      +      "type": "string"
      +    },
      +    "estimateNote": {
      +      "type": "string"
      +    },
      +    "httpStatus": {
      +      "description": "The HTTP status of the first response",
      +      "type": "integer"
      +    },
      +    "latencyMs": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "initialize": {
      +          "type": "number"
      +        },
      +        "toolsList": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "protocolVersion": {
      +      "type": "string"
      +    },
      +    "serverInfo": {
      +      "additionalProperties": {},
      +      "description": "name, version and title from initialize",
      +      "type": "object"
      +    },
      +    "status": {
      +      "description": "ok (answered initialize and tools/list), auth (needs credentials), payment (402), not_found, protocol_error (not MCP), timeout, dns, tls, refused, server_error, rate_limited, newer_protocol; package servers also install_failed, no_bin, needs_env, needs_args, needs_network, crashed",
      +      "type": "string"
      +    },
      +    "statusLabel": {
      +      "description": "The status in words",
      +      "type": "string"
      +    },
      +    "toolCount": {
      +      "type": "integer"
      +    },
      +    "tools": {
      +      "description": "The tool names, in the order the server lists them",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "toolsBytes": {
      +      "description": "Bytes of the compact JSON of every tool definition",
      +      "type": "integer"
      +    },
      +    "toolsTokensEstimate": {
      +      "description": "Tokens estimated from the schema size at the registry median of 4.42 bytes per token",
      +      "type": "integer"
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "url",
      +    "status",
      +    "statusLabel",
      +    "toolsBytes",
      +    "toolsTokensEstimate",
      +    "estimateNote",
      +    "tools",
      +    "latencyMs"
      +  ],
      +  "type": "object"
      +}
  6. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/openWorld annotations, it discloses the 10 s timeout, that no credentials are sent, that an auth-requiring server returns status "auth" rather than an error, and that non-https URLs or unresponsive servers surface as status+error fields. These are exactly the behaviors an agent needs to interpret a surprising result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action, and each sentence carries distinct information (behavior, routing, auth semantics, failure mode). The token-cost clause ("exact in Claude when the counter is available, else an estimate from the schema size") is the densest part and could be trimmed without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, yet the description still summarizes the returned fields and, importantly, explains the non-error failure conventions. Combined with the auth and https notes, an agent has everything needed to call it and read the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already specifies the https URL format with …/mcp and …/sse examples. The description adds a real constraint on top (a non-https URL returns its failure as status), but does not extend the parameter semantics much further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (connects to an MCP server URL now, runs initialize and tools/list) and enumerates what it reports: status, protocol, access method, tool names, token cost. It is immediately distinguishable from lookup_server, which reads the registry rather than probing live.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use: a URL not in the official registry, or to see the state this minute. It also names the alternative (lookup_server) and the condition that selects it (registry server, instant). No inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.