Skip to main content
Glama
gilberth

MCP Cloudflare DNS Server

tools.js1.96 kB
export async function listTools(client) { try { const response = await client.listTools(); return response; } catch (error) { throw new Error(`Failed to list tools: ${error instanceof Error ? error.message : String(error)}`); } } function convertParameterValue(value, schema) { if (!value) { return value; } if (schema.type === "number" || schema.type === "integer") { return Number(value); } if (schema.type === "boolean") { return value.toLowerCase() === "true"; } if (schema.type === "object" || schema.type === "array") { try { return JSON.parse(value); } catch (error) { return value; } } return value; } function convertParameters(tool, params) { const result = {}; const properties = tool.inputSchema.properties || {}; for (const [key, value] of Object.entries(params)) { const paramSchema = properties[key]; if (paramSchema) { result[key] = convertParameterValue(value, paramSchema); } else { // If no schema is found for this parameter, keep it as string result[key] = value; } } return result; } export async function callTool(client, name, args) { try { const toolsResponse = await listTools(client); const tools = toolsResponse.tools; const tool = tools.find((t) => t.name === name); let convertedArgs = args; if (tool) { // Convert parameters based on the tool's schema convertedArgs = convertParameters(tool, args); } const response = await client.callTool({ name: name, arguments: convertedArgs, }); return response; } catch (error) { throw new Error(`Failed to call tool ${name}: ${error instanceof Error ? error.message : String(error)}`); } }

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/gilberth/mcp-cloudflare'

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