Skip to main content
Glama
get-object.ts2.13 kB
/** * get_object tool implementation * Retrieves the content of an object from storage */ import { z } from "zod"; import { ProviderManager } from "../providers/manager.js"; import { createToolSuccessResponse, createToolErrorResponse } from "../utils/response-formatter.js"; /** * Schema for get_object tool */ export const getObjectSchema = { bucket: z.string().describe("The name of the bucket containing the object"), key: z.string().describe("The object key (full path) to retrieve"), max_size: z.number().optional().describe("Maximum content size to read in bytes (default: 10MB). Larger files will be truncated."), }; /** * Get metadata for get_object tool */ export function getGetObjectMetadata(sourceId: string, maxSize?: number) { const toolName = sourceId === "default" ? "get_object" : `get_object_${sourceId}`; return { name: toolName, title: `Get Object (${sourceId})`, description: `Retrieve the content of an object from the '${sourceId}' source. Text files are returned as plain text, binary files as base64.${maxSize ? ` Max size: ${maxSize} bytes` : " Default max size: 10MB"}`, schema: getObjectSchema, annotations: { title: `get_object (${sourceId})`, readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false, }, }; } /** * Create get_object tool handler for a specific source */ export function createGetObjectToolHandler(sourceId?: string, defaultMaxSize?: number) { return async (args: any, _extra: any) => { const { bucket, key, max_size } = args as { bucket: string; key: string; max_size?: number; }; try { const provider = ProviderManager.getCurrentProvider(sourceId); const result = await provider.getObject(bucket, key, { maxSize: max_size || defaultMaxSize || 10 * 1024 * 1024, // 10MB default }); return createToolSuccessResponse({ ...result, source_id: sourceId || "default", }); } catch (error) { return createToolErrorResponse((error as Error).message, "GET_OBJECT_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/zq940222/OssHub'

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