Self-Hosting ToolSDK Registry
Learn how to deploy your own private ToolSDK MCP Registry and configure the SDK to use it.
Self-Hosting & Private Deployment
ToolSDK.ai supports self-hosted deployments of the ToolSDK MCP Registry, allowing you to maintain full control over your data and infrastructure.
1. 🚀 Quick Deployment
You can deploy the registry locally or on your own server using Docker.
1.1 Clone the Registry
git clone https://github.com/toolsdk-ai/toolsdk-mcp-registry.git
cd toolsdk-mcp-registry1.2 Start with Docker Compose
Run the registry with a single command:
docker compose up -dThis will start:
- Registry API:
http://localhost:3003 - Swagger Docs:
http://localhost:3003/swagger - Search Engine: Meilisearch (internal)
2. 📡 SDK Configuration
To connect your AI agents or applications to your self-hosted registry, verify the baseURL configuration in the ToolSDKApiClient.
The SDK accepts a baseURL option in the constructor:
import { ToolSDKApiClient } from 'toolsdk/api';
const client = new ToolSDKApiClient({
apiKey: 'dummy-key-for-local', // API key validation can be disabled or configured in your private instance
baseURL: 'http://localhost:3003/api/v1' // Point to your self-hosted instance (The /api/v1 path is crucial)
});
// Now valid requests will go to your local registry
const tools = await client.package('github').getAISDKToolSet();The toolsdk-mcp-registry docker container acts as the comprehensive backend service (Gateway) that processes API requests and executes tools. Pointing baseURL to its exposed API endpoint (e.g., http://localhost:3003/api/v1) is the correct configuration.
3. 🔒 Private Package Management
For enterprise environments, you might want to restrict which tools are available.
- Prune Packages: You can delete folders in the
packages/directory of the registry repo to only keep the tools you trust. - Private Tools: Add your own internal tools to
packages/private(or any custom category) following the Contributing Guide.
4. ⚙️ Advanced Configuration
Use .env file to configure your registry instance:
MCP_SANDBOX_PROVIDER: Set toLOCALto disable external sandbox providers (default for quick start).PORT: Change the listening port (default3003).
For full configuration options, refer to the Development Guide in the repository.