Skip to main content
Glama

Basic Math MCP Server

by bahfahh
object.js2.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseObjectDef = void 0; const zod_1 = require("zod"); const parseDef_js_1 = require("../parseDef.js"); function parseObjectDef(def, refs) { const forceOptionalIntoNullable = refs.target === "openAi"; const result = { type: "object", properties: {}, }; const required = []; const shape = def.shape(); for (const propName in shape) { let propDef = shape[propName]; if (propDef === undefined || propDef._def === undefined) { continue; } let propOptional = safeIsOptional(propDef); if (propOptional && forceOptionalIntoNullable) { if (propDef instanceof zod_1.ZodOptional) { propDef = propDef._def.innerType; } if (!propDef.isNullable()) { propDef = propDef.nullable(); } propOptional = false; } const parsedDef = (0, parseDef_js_1.parseDef)(propDef._def, { ...refs, currentPath: [...refs.currentPath, "properties", propName], propertyPath: [...refs.currentPath, "properties", propName], }); if (parsedDef === undefined) { continue; } result.properties[propName] = parsedDef; if (!propOptional) { required.push(propName); } } if (required.length) { result.required = required; } const additionalProperties = decideAdditionalProperties(def, refs); if (additionalProperties !== undefined) { result.additionalProperties = additionalProperties; } return result; } exports.parseObjectDef = parseObjectDef; function decideAdditionalProperties(def, refs) { if (def.catchall._def.typeName !== "ZodNever") { return (0, parseDef_js_1.parseDef)(def.catchall._def, { ...refs, currentPath: [...refs.currentPath, "additionalProperties"], }); } switch (def.unknownKeys) { case "passthrough": return refs.allowedAdditionalProperties; case "strict": return refs.rejectedAdditionalProperties; case "strip": return refs.removeAdditionalStrategy === "strict" ? refs.allowedAdditionalProperties : refs.rejectedAdditionalProperties; } } function safeIsOptional(schema) { try { return schema.isOptional(); } catch { return true; } }

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/bahfahh/mcptest'

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