Skip to main content
Glama

Look up a registry server

lookup_server
Read-onlyIdempotent

Reads the board's latest daily probe of one server in the official MCP registry: status, how a client gets access, the exact Claude token cost of its tool definitions, tool count, latency and the most expensive tools. Instant, no connection to the server. Use it when the server is in the registry; use search_servers when you do not know its name, and check_server to probe a URL that is not in the registry. A name or URL that is not on the board returns isError with a short message.

Input Schema

NameRequiredDescriptionDefault
nameOrUrlYesThe registry name, for example io.github.owner/name, or the server's https URL as the registry lists it. The name is exact; the URL must match the registry entry.

Output Schema

NameRequiredDescriptionDefault
urlYesThe endpoint the board probes
downNoTrue when the server has failed for two days or more; a more recent failure is "no answer", not down
hostYesThe endpoint host
nameYesThe registry name, io.github.owner/name
pageYesThe server's page on the board
titleNoThe title the registry gives
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 (clients register themselves), oauth (client id from the publisher), token (a key in the Authorization header), unknown
probedAtYesISO 8601 time of the probe
topToolsNoThe five most expensive tools: name and o200k_base tokens
latencyMsNo
toolCountNoHow many tools tools/list returned
authSchemeNoThe WWW-Authenticate scheme of a server that needs auth
httpStatusNoThe HTTP status of the first response
claudeErrorNoWhy the Anthropic endpoint refused to count
claudeModelNoThe model the exact count is for
shareOf200kNoPercent of a 200k window, exact when claudeTokens is present
statusLabelYesThe status in words, as the board shows it
toolsTokensNoo200k_base estimate over the compact JSON of the tool definitions; the exact count is about 1.9 times this at the median
authMetadataNoauthorizationServers, scopesSupported, dynamicRegistration, pkce, grantTypes, from the OAuth metadata
claudeTokensNoExact count from the Anthropic count_tokens endpoint, names as published
failingSinceNoFor a server with no valid answer: the first probe of its current run of failed probes, ISO 8601
protocolVersionNoThe MCP protocol version the server negotiated
toolsTokensNoteNo
authDocumentationNoThe publisher's guide to getting access
claudeTokensClaudeCodeNoThe exact count with the Claude Code prefix mcp__<server>__ 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. Changed3 schema fields changed
    • addedOutput schema / properties / down
      Added value: +{
      +  "description": "True when the server has failed for two days or more; a more recent failure is \"no answer\", not down",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / failingSince
      Added value: +{
      +  "description": "For a server with no valid answer: the first probe of its current run of failed probes, ISO 8601",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • 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 / nameOrUrl / description
      Previous value: -"Registry name or https URL of the server"New value: +"The registry name, for example io.github.owner/name, or the server's https URL as the registry lists it. The name is exact; the URL must match the registry entry."
    • 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",
      +        "null"
      +      ]
      +    },
      +    "authKind": {
      +      "description": "How a client gets in: oauth-dcr (clients register themselves), oauth (client id from the publisher), token (a key in the Authorization header), unknown",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "authMetadata": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "authorizationServers, scopesSupported, dynamicRegistration, pkce, grantTypes, from the OAuth metadata"
      +    },
      +    "authScheme": {
      +      "description": "The WWW-Authenticate scheme of a server that needs auth",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "claudeError": {
      +      "description": "Why the Anthropic endpoint refused to count",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "claudeModel": {
      +      "description": "The model the exact count is for",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "claudeTokens": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Exact count from the Anthropic count_tokens endpoint, names as published"
      +    },
      +    "claudeTokensClaudeCode": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The exact count with the Claude Code prefix mcp__<server>__ on each tool name"
      +    },
      +    "host": {
      +      "description": "The endpoint host",
      +      "type": "string"
      +    },
      +    "httpStatus": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The HTTP status of the first response"
      +    },
      +    "latencyMs": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "initialize": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "milliseconds"
      +        },
      +        "toolsList": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "milliseconds"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "name": {
      +      "description": "The registry name, io.github.owner/name",
      +      "type": "string"
      +    },
      +    "page": {
      +      "description": "The server's page on the board",
      +      "type": "string"
      +    },
      +    "probedAt": {
      +      "description": "ISO 8601 time of the probe",
      +      "type": "string"
      +    },
      +    "protocolVersion": {
      +      "description": "The MCP protocol version the server negotiated",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "shareOf200k": {
      +      "description": "Percent of a 200k window, exact when claudeTokens is present",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "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, as the board shows it",
      +      "type": "string"
      +    },
      +    "title": {
      +      "description": "The title the registry gives",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "toolCount": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "How many tools tools/list returned"
      +    },
      +    "toolsTokens": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "o200k_base estimate over the compact JSON of the tool definitions; the exact count is about 1.9 times this at the median"
      +    },
      +    "toolsTokensNote": {
      +      "type": "string"
      +    },
      +    "topTools": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "name": {
      +                "type": "string"
      +              },
      +              "tokens": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "name",
      +              "tokens"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The five most expensive tools: name and o200k_base tokens"
      +    },
      +    "url": {
      +      "description": "The endpoint the board probes",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "host",
      +    "status",
      +    "page",
      +    "url",
      +    "statusLabel",
      +    "probedAt"
      +  ],
      +  "type": "object"
      +}
  6. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld, and the description adds real context beyond them: results are a 'daily probe' (so data can be up to a day stale) and 'instant, no connection to the server' (no live network call). It also discloses the error contract for unknown names. Only gap is any note on result caching or limits, which is minor here.

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

Conciseness5/5

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

Three dense sentences, front-loaded with what is returned, then the when-to-use routing, then the error case. No filler and no repetition of the name/title.

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?

For a single-parameter read tool with full schema coverage, annotations, and an output schema, the description covers purpose, freshness, live-vs-cached behavior, alternatives, and error handling. Nothing an agent needs before calling is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter's description already explains the registry-name format and the URL-must-match rule. The description echoes that a name or URL is required but adds no syntax or edge-case detail beyond the schema, so the baseline 3 applies.

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?

The description names a specific verb and resource ('Reads the board's latest daily probe of one server in the official MCP registry') and enumerates the returned facets: status, access method, token cost, tool count, latency, most expensive tools. That is enough for an agent to distinguish it from compare_servers or registry_summary without opening any schema.

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?

It states the positive condition ('use it when the server is in the registry') and names both alternatives with their selecting conditions: search_servers when the name is unknown, check_server for a URL not in the registry. It even documents the failure path for names not on the board.

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.