Skip to main content
Glama

Travel Planner MCP Server

formdata-to-blob.js1.3 kB
/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */ const escape = (str, filename) => (filename ? str : str.replace(/\r?\n|\r/g, '\r\n')) .replace(/\n/g, '%0A') .replace(/\r/g, '%0D') .replace(/"/g, '%22') /** * pure function to convert any formData instance to a Blob * instances synchronous without reading all of the files * * @param {FormData|*} formData an instance of a formData Class * @param {Blob|*} [BlobClass=Blob] the Blob class to use when constructing it */ export function formDataToBlob (formData, BlobClass = Blob) { const boundary = ('----formdata-polyfill-' + Math.random()) const chunks = [] const prefix = `--${boundary}\r\nContent-Disposition: form-data; name="` for (let [name, value] of formData) { if (typeof value === 'string') { chunks.push(prefix + escape(name) + `"\r\n\r\n${value.replace(/\r(?!\n)|(?<!\r)\n/g, '\r\n')}\r\n`) } else { chunks.push( prefix + escape(name) + `"; filename="${escape(value.name, 1)}"\r\n` + `Content-Type: ${value.type || 'application/octet-stream'}\r\n\r\n`, value, '\r\n' ) } } chunks.push(`--${boundary}--`) return new BlobClass(chunks, { type: 'multipart/form-data; boundary=' + boundary }) }

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/GongRzhe/TRAVEL-PLANNER-MCP-Server'

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