Skip to main content
Glama
get-object-metadata.ts1.96 kB
/** * get_object_metadata tool implementation * Retrieves metadata (HEAD) for an object without downloading content */ import { z } from "zod"; import { ProviderManager } from "../providers/manager.js"; import { createToolSuccessResponse, createToolErrorResponse } from "../utils/response-formatter.js"; /** * Schema for get_object_metadata tool */ export const getObjectMetadataSchema = { bucket: z.string().describe("The name of the bucket containing the object"), key: z.string().describe("The object key (full path) to get metadata for"), }; /** * Get metadata for get_object_metadata tool */ export function getGetObjectMetadataMetadata(sourceId: string) { const toolName = sourceId === "default" ? "get_object_metadata" : `get_object_metadata_${sourceId}`; return { name: toolName, title: `Get Object Metadata (${sourceId})`, description: `Get metadata for an object from the '${sourceId}' source without downloading content. Returns content type, size, last modified date, ETag, storage class, and custom metadata.`, schema: getObjectMetadataSchema, annotations: { title: `get_object_metadata (${sourceId})`, readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false, }, }; } /** * Create get_object_metadata tool handler for a specific source */ export function createGetObjectMetadataToolHandler(sourceId?: string) { return async (args: any, _extra: any) => { const { bucket, key } = args as { bucket: string; key: string; }; try { const provider = ProviderManager.getCurrentProvider(sourceId); const result = await provider.getObjectMetadata(bucket, key); return createToolSuccessResponse({ ...result, source_id: sourceId || "default", }); } catch (error) { return createToolErrorResponse((error as Error).message, "GET_OBJECT_METADATA_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