Stacklok Registries API
The Registries API from Stacklok — 3 operation(s) for registries.
The Registries API from Stacklok — 3 operation(s) for registries.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/stacklok:stacklok-registries-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
contact:
url: https://github.com/stacklok/toolhive
description: 'API for accessing MCP server registry data and deployed server information
This API provides endpoints to query the MCP (Model Context Protocol) server registry,
get information about available servers, and check the status of deployed servers.
Authentication is required by default. Use Bearer token authentication with a valid
OAuth/OIDC access token. The /.well-known/oauth-protected-resource endpoint provides
OAuth discovery metadata (RFC 9728).'
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
title: ToolHive Registry clients V1 Registries API
version: '0.1'
tags:
- name: Registries
paths:
/v1/registries:
get:
description: List all registries
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/internal_api_v1.registryListResponse'
description: Registries list
'500':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Internal server error
summary: List registries
tags:
- Registries
operationId: getV1Registries
x-operation-id-source: derived
/v1/registries/{name}:
delete:
description: Delete a registry by name
parameters:
- description: Registry Name
in: path
name: name
required: true
schema:
type: string
responses:
'204':
description: Registry deleted
'400':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Bad request
'403':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Cannot modify config-created registry
'404':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Registry not found
'500':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Internal server error
summary: Delete registry
tags:
- Registries
operationId: deleteV1RegistriesByName
x-operation-id-source: derived
get:
description: Get a registry by name
parameters:
- description: Registry Name
in: path
name: name
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_stacklok_toolhive-registry-server_internal_service.RegistryInfo'
description: Registry details
'400':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Bad request
'404':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Registry not found
'500':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Internal server error
summary: Get registry
tags:
- Registries
operationId: getV1RegistriesByName
x-operation-id-source: derived
put:
description: Create a new registry or update an existing one
parameters:
- description: Registry Name
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
oneOf:
- type: object
- $ref: '#/components/schemas/github_com_stacklok_toolhive-registry-server_internal_service.RegistryCreateRequest'
description: Registry configuration
summary: request
description: Registry configuration
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_stacklok_toolhive-registry-server_internal_service.RegistryInfo'
description: Registry updated
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_stacklok_toolhive-registry-server_internal_service.RegistryInfo'
description: Registry created
'400':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Bad request
'403':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Cannot modify config-created registry
'500':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Internal server error
summary: Create or update registry
tags:
- Registries
operationId: putV1RegistriesByName
x-operation-id-source: derived
/v1/registries/{name}/entries:
get:
description: List all entries for a registry
parameters:
- description: Registry Name
in: path
name: name
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_stacklok_toolhive-registry-server_internal_service.RegistryEntriesResponse'
description: Registry entries
'400':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Bad request
'404':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Registry not found
'500':
content:
application/json:
schema:
additionalProperties:
type: string
type: object
description: Internal server error
summary: List registry entries
tags:
- Registries
operationId: getV1RegistriesByNameEntries
x-operation-id-source: derived
components:
schemas:
github_com_stacklok_toolhive-registry-server_internal_service.RegistryEntryInfo:
properties:
createdAt:
type: string
description:
type: string
entryType:
type: string
name:
type: string
position:
type: integer
sourceName:
type: string
title:
type: string
updatedAt:
type: string
version:
type: string
type: object
github_com_stacklok_toolhive-registry-server_internal_service.CreationType:
description: API or CONFIG
enum:
- API
- CONFIG
type: string
x-enum-varnames:
- CreationTypeAPI
- CreationTypeCONFIG
github_com_stacklok_toolhive-registry-server_internal_service.RegistryCreateRequest:
properties:
claims:
additionalProperties: {}
description: Authorization claims
type: object
sources:
description: ordered list of source names
items:
type: string
type: array
uniqueItems: false
type: object
internal_api_v1.registryListResponse:
properties:
registries:
items:
$ref: '#/components/schemas/github_com_stacklok_toolhive-registry-server_internal_service.RegistryInfo'
type: array
uniqueItems: false
type: object
github_com_stacklok_toolhive-registry-server_internal_service.RegistryInfo:
properties:
claims:
additionalProperties: {}
type: object
createdAt:
type: string
creationType:
$ref: '#/components/schemas/github_com_stacklok_toolhive-registry-server_internal_service.CreationType'
name:
type: string
sources:
items:
type: string
type: array
uniqueItems: false
updatedAt:
type: string
type: object
github_com_stacklok_toolhive-registry-server_internal_service.RegistryEntriesResponse:
properties:
entries:
items:
$ref: '#/components/schemas/github_com_stacklok_toolhive-registry-server_internal_service.RegistryEntryInfo'
type: array
uniqueItems: false
type: object
securitySchemes:
BearerAuth:
description: 'OAuth 2.0 Bearer token authentication. Format: "Bearer {token}"'
in: header
name: Authorization
type: apiKey
externalDocs:
description: ''
url: ''