---
title: "Get a registry server"
method: GET
path: "/registry/{registryName}/v0.1/servers/{serverName}/versions/latest"
tags: ["registry-servers"]
---

# Get a registry server

`GET /registry/{registryName}/v0.1/servers/{serverName}/versions/latest`

Retrieve a single server by name. Names use reverse-DNS format; URL-encode slashes.

## Path parameters

- `registryName` string, required
- `serverName` string, required

## Response `200`

OK

- V0ServerJSON
  - `$schema` string, uri
  - `_meta` V0ServerMeta
    - `io.modelcontextprotocol.registry/publisher-provided` object
  - `description` string
  - `icons` ModelIcon[]
    - `mimeType` string
    - `sizes` string[]
    - `src` string, uri
    - `theme` string
  - `name` string
  - `packages` ModelPackage[]
    - `environmentVariables` ModelKeyValueInput[] — EnvironmentVariables are set when running the package
      - `choices` string[]
      - `default` string
      - `description` string
      - `format` 'string' | 'number' | 'boolean' | 'filepath'
      - `isRequired` boolean
      - `isSecret` boolean
      - `name` string
      - `placeholder` string
      - `value` string
      - `variables` object
    - `fileSha256` string — FileSHA256 is the SHA-256 hash for integrity verification (required for mcpb, optional for others)
    - `identifier` string — Identifier is the package identifier: - For NPM/PyPI/NuGet: package name or ID - For OCI: full image reference (e.g., "ghcr.io/owner/repo:v1.0.0") - For MCPB: direct download URL
    - `packageArguments` ModelArgument[] — PackageArguments are passed to the package's binary
      - `choices` string[]
      - `default` string
      - `description` string
      - `format` 'string' | 'number' | 'boolean' | 'filepath'
      - `isRepeated` boolean
      - `isRequired` boolean
      - `isSecret` boolean
      - `name` string
      - `placeholder` string
      - `type` 'positional' | 'named'
      - `value` string
      - `valueHint` string
      - `variables` object
    - `registryBaseUrl` string, uri — RegistryBaseURL is the base URL of the package registry (used by npm, pypi, nuget, cargo; not used by oci, mcpb)
    - `registryType` string — RegistryType indicates how to download packages (e.g., "npm", "pypi", "cargo", "oci", "nuget", "mcpb")
    - `runtimeArguments` ModelArgument[] — RuntimeArguments are passed to the package's runtime command (e.g., docker, npx)
      - `choices` string[]
      - `default` string
      - `description` string
      - `format` 'string' | 'number' | 'boolean' | 'filepath'
      - `isRepeated` boolean
      - `isRequired` boolean
      - `isSecret` boolean
      - `name` string
      - `placeholder` string
      - `type` 'positional' | 'named'
      - `value` string
      - `valueHint` string
      - `variables` object
    - `runtimeHint` string — RunTimeHint suggests the appropriate runtime for the package
    - `transport` ModelTransport — Transport is required and specifies the transport protocol configuration
      - `headers` ModelKeyValueInput[]
        - `choices` string[]
        - `default` string
        - `description` string
        - `format` 'string' | 'number' | 'boolean' | 'filepath'
        - `isRequired` boolean
        - `isSecret` boolean
        - `name` string
        - `placeholder` string
        - `value` string
        - `variables` object
      - `type` string
      - `url` string
      - `variables` object
    - `version` string — Version is the package version (required for npm, pypi, nuget; optional for mcpb; not used by oci where version is in the identifier)
  - `remotes` ModelTransport[]
    - `headers` ModelKeyValueInput[]
      - `choices` string[]
      - `default` string
      - `description` string
      - `format` 'string' | 'number' | 'boolean' | 'filepath'
      - `isRequired` boolean
      - `isSecret` boolean
      - `name` string
      - `placeholder` string
      - `value` string
      - `variables` object
    - `type` string
    - `url` string
    - `variables` object
  - `repository` ModelRepository
    - `id` string
    - `source` string
    - `subfolder` string
    - `url` string, uri
  - `title` string
  - `version` string
  - `websiteUrl` string, uri

## Other responses

- `400` — Invalid server name encoding
- `404` — Server not found
- `500` — Internal server error
- `503` — Registry authentication required or upstream registry unavailable

## Changes

- **2026-04-16** `6a0cd5f67bd1` — 1 info
  - endpoint added
- **2026-01-29** `ff6ce8dd8f3a` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/stacklok/apis/toolhive-api/changes/registry/:registryName/v0.1/servers/:serverName/versions/latest/get.md)

---

[API](https://skmtc.dev/stacklok/apis/toolhive-api.md) · [All operations](https://skmtc.dev/stacklok/apis/toolhive-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stacklok/toolhive-api/revisions/e9f942effcda/schema)
