Skip to main content
Glama

add_review_record

Add a new review record to a custom type for storing evaluations of items like coffee, whisky, or wine, using defined schemas to organize data.

Instructions

Add a new review record to a type

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNameYesName of the review type
dataYesReview data matching the type schema

Implementation Reference

  • The `addRecord` function that executes the core tool logic: validates parameters, checks type existence, validates data against schema, generates record ID, appends to storage, and returns success info.
    export async function addRecord( storage: StorageProvider, params: AddRecordParams ): Promise<AddRecordResult> { // Validate type name const typeName = validateTypeName(params.typeName); // Check if type exists const exists = await storage.typeExists(typeName); if (!exists) { throw new Error(`Review type "${typeName}" does not exist`); } // Read existing type data const typeData = await storage.readType(typeName); // Validate record against schema validateRecordAgainstSchema(params.data, typeData.schema); // Create new record const recordId = generateId(); const newRecord: ReviewRecord = { id: recordId, data: params.data as Record<string, string | number | boolean>, createdAt: getCurrentTimestamp(), }; // Add record to type typeData.records.push(newRecord); typeData.updatedAt = getCurrentTimestamp(); // Save updated type data await storage.writeType(typeName, typeData); return { success: true, typeName, recordId, message: `Record added to "${typeName}" with ID: ${recordId}`, }; }
  • Input schema definition for the `add_review_record` tool, specifying `typeName` and `data` parameters.
    inputSchema: { type: "object", properties: { typeName: { type: "string", description: "Name of the review type", }, data: { type: "object", description: "Review data matching the type schema", }, }, required: ["typeName", "data"], },
  • src/index.ts:107-124 (registration)
    Registration of the `add_review_record` tool in the TOOLS array, including name, description, and input schema.
    { name: "add_review_record", description: "Add a new review record to a type", inputSchema: { type: "object", properties: { typeName: { type: "string", description: "Name of the review type", }, data: { type: "object", description: "Review data matching the type schema", }, }, required: ["typeName", "data"], }, },
  • src/index.ts:220-234 (registration)
    Dispatch handler in the CallToolRequest switch statement that invokes `addRecord` with parsed arguments and formats the response.
    case "add_review_record": { const params = args as { typeName: string; data: Record<string, unknown> }; if (!params?.typeName || !params?.data) { throw new Error("typeName and data are required"); } const result = await addRecord(storage, params); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }

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/sanggggg/record-mcp'

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