kobold_sd_models
Retrieve available Stable Diffusion models from KoboldAI's MCP server for AI image generation tasks.
Instructions
List available Stable Diffusion models
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "kobold_sd_models"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| apiUrl | No | http://localhost:5001 |
Implementation Reference
- src/index.ts:307-324 (handler)Handler for kobold_sd_models and other GET tools: maps to '/sdapi/v1/sd-models' endpoint and proxies the request via makeRequest, returning the JSON response.
const getEndpoints: Record<string, string> = { kobold_max_context_length: '/api/v1/config/max_context_length', kobold_max_length: '/api/v1/config/max_length', kobold_generate_check: '/api/extra/generate/check', kobold_model_info: '/api/v1/model', kobold_version: '/api/v1/info/version', kobold_perf_info: '/api/extra/perf', kobold_sd_models: '/sdapi/v1/sd-models', kobold_sd_samplers: '/sdapi/v1/samplers', }; if (getEndpoints[name]) { const result = await makeRequest(`${apiUrl}${getEndpoints[name]}`); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], isError: false, }; } - src/index.ts:235-238 (registration)Tool registration in ListTools response, specifying name, description, and inputSchema.
name: "kobold_sd_models", description: "List available Stable Diffusion models", inputSchema: zodToJsonSchema(SDModelsSchema), }, - src/index.ts:97-97 (schema)Input schema for kobold_sd_models tool, equivalent to BaseConfigSchema (optional apiUrl).
const SDModelsSchema = BaseConfigSchema; - src/index.ts:11-13 (schema)BaseConfigSchema used by SDModelsSchema and all tools, allowing optional apiUrl override.
const BaseConfigSchema = z.object({ apiUrl: z.string().default('http://localhost:5001'), }); - src/index.ts:146-162 (helper)Shared helper function makeRequest used to proxy all API calls, including for kobold_sd_models.
async function makeRequest(url: string, method = 'GET', body: Record<string, unknown> | null = null) { const options: RequestInit = { method, headers: body ? { 'Content-Type': 'application/json' } : undefined, }; if (body && method !== 'GET') { options.body = JSON.stringify(body); } const response = await fetch(url, options); if (!response.ok) { throw new Error(`KoboldAI API error: ${response.statusText}`); } return response.json(); }