MCP Connect supports both the official MCP Registry and custom registry sources. This guide explains how to work with registries.
The official MCP Registry is the default source for discovering MCP servers. It’s automatically available and doesn’t require configuration.
# Search for servers
mcp-connect registry search github
# Search with remote-only filter
mcp-connect registry search github --remote-only
# Show all servers (including STDIO-only)
mcp-connect registry search github --show-all
# List all servers
mcp-connect registry list
# List only remote-compatible servers
mcp-connect registry list --remote-only
# Show server details
mcp-connect registry show modelcontextprotocol/github-mcp-server
# Show details from a specific registry
mcp-connect registry show modelcontextprotocol/github-mcp-server --source default
You can add custom registry sources for private or internal server catalogs.
# Add a custom registry
mcp-connect registry registry add my-registry \
--url "https://registry.example.com" \
--api-version "v1"
Options:
--url: Base URL of the registry API--api-version: API version path (optional, e.g., “v1”, “v0.1”)# List all configured registry sources
mcp-connect registry registry list
Output shows:
# Set a custom registry as default
mcp-connect registry registry set-default my-registry
# Reset to official registry
mcp-connect registry registry set-default default
All registry commands support the --source option:
# Search in a specific registry
mcp-connect registry search github --source my-registry
# Show server from specific registry
mcp-connect registry show server-name --source my-registry
# List servers from specific registry
mcp-connect registry list --source my-registry
# Remove a custom registry
mcp-connect registry registry remove my-registry
# Force remove without confirmation
mcp-connect registry registry remove my-registry --force
Note: You cannot remove the default registry. Reset it first:
mcp-connect registry registry set-default default
mcp-connect registry registry remove my-registry
Registry sources are stored in .mcp-connect.json:
{
"registries": {
"my-registry": {
"baseUrl": "https://registry.example.com",
"apiVersion": "v1"
},
"company-registry": {
"baseUrl": "https://mcp-registry.company.com",
"apiVersion": "v0.1"
}
},
"defaultRegistry": "my-registry"
}
baseUrl (required): Base URL of the registry APIapiVersion (optional): API version pathCustom registries should implement the MCP Registry API format:
GET /servers?limit={limit}&cursor={cursor}&search={query}
Response:
{
"servers": [...],
"metadata": {
"count": 10,
"nextCursor": "..."
}
}
GET /servers/{name}/versions/{version}
Response:
{
"server": {
"name": "...",
"description": "...",
"remotes": [...]
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"isLatest": true
}
}
}
# Add internal registry
mcp-connect registry registry add company \
--url "https://mcp-registry.company.com" \
--api-version "v1"
# Set as default
mcp-connect registry registry set-default company
# Now all commands use company registry by default
mcp-connect registry search internal-server
# Add multiple registries
mcp-connect registry registry add public --url "https://public-registry.com"
mcp-connect registry registry add private --url "https://private-registry.com"
# Use specific registry for each command
mcp-connect registry search query --source public
mcp-connect registry search query --source private
When adding a registry, MCP Connect automatically tests the connection:
mcp-connect registry registry add my-registry --url "https://registry.example.com"
# Testing connection to registry...
# ✓ Registry connection successful
# ✓ Added registry 'my-registry'
If the connection test fails, you’ll see a warning but can still add the registry (it might be temporarily unavailable).
Issue: Registry connection test fails
Solutions:
Issue: Server not found in custom registry
Solutions:
--source flag to specify the registryIssue: Commands not using expected registry
Solutions:
mcp-connect registry registry listmcp-connect registry registry set-default <name>--source flag to override default