Skip to main content
Glama
override-params.ts1.3 kB
import { ParamExtensionOverrideValue, ToolExtensionParamsRecord, } from "@mcpx/shared-model"; const parseNumber = (v: unknown): number | undefined => { const n = typeof v === "number" ? v : Number(v); return !Number.isNaN(Number(v)) && Number.isFinite(n) ? n : undefined; }; const parseBoolean = (v: unknown): boolean | undefined => { if (v === true || v === "true") return true; if (v === false || v === "false") return false; return undefined; }; const parseValue = ( type: ParamExtensionOverrideValue, raw: unknown, ): ParamExtensionOverrideValue | undefined => { switch (type) { case "number": return parseNumber(raw); case "boolean": return parseBoolean(raw); case "string": case "array": case "object": return raw as ParamExtensionOverrideValue | undefined; case null: case true: case false: default: // These are literal values, not type indicators - return undefined return undefined; } }; export const injectParamsListOverrides = ( paramsList: { name: string; type: string; description: string }[], paramsValues: ToolExtensionParamsRecord, ) => paramsList.map(({ name, type, description }) => ({ name, type, description, value: parseValue(type, paramsValues[name]?.value), }));

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheLunarCompany/lunar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server