Skip to main content
Glama

UpdateCollection

Modify an existing collection in Astra DB by renaming it using the specified new name. Simplifies database management through direct updates.

Instructions

Update an existing collection in the database

Input Schema

NameRequiredDescriptionDefault
collectionNameYesName of the collection to update
newNameYesNew name for the collection

Input Schema (JSON Schema)

{ "properties": { "collectionName": { "description": "Name of the collection to update", "type": "string" }, "newName": { "description": "New name for the collection", "type": "string" } }, "required": [ "collectionName", "newName" ], "type": "object" }

Implementation Reference

  • The core handler function that renames a collection by creating a new one with the same data and vector settings, copying documents, and dropping the old collection.
    export async function UpdateCollection(params: { collectionName: string; newName: string; }) { const { collectionName, newName } = params; // Check if source collection exists const collections = await db.listCollections(); const sourceCollectionExists = collections.some( (collection) => collection.name === collectionName ); if (!sourceCollectionExists) { throw new Error(`Collection '${collectionName}' does not exist`); } // Check if target collection already exists const targetCollectionExists = collections.some( (collection) => collection.name === newName ); if (targetCollectionExists) { throw new Error(`Collection '${newName}' already exists`); } // Create new collection const sourceCollection = db.collection(collectionName); // Get the source collection info to preserve settings const collectionInfo = await sourceCollection.find({}).limit(1).toArray(); const hasVectors = collectionInfo.length > 0 && collectionInfo[0].$vector !== undefined; // Create the new collection with the same settings if (hasVectors) { const vectorDimension = collectionInfo[0].$vector.length; await db.createCollection(newName, { vector: { dimension: vectorDimension, }, }); } else { await db.createCollection(newName); } // Copy data const targetCollection = db.collection(newName); const documents = await sourceCollection.find({}).toArray(); if (documents.length > 0) { await targetCollection.insertMany(documents); } // Delete the old collection await db.dropCollection(collectionName); return { success: true, message: `Collection '${collectionName}' renamed to '${newName}' successfully`, }; }
  • The tool schema definition including name, description, and input validation schema for UpdateCollection.
    { name: "UpdateCollection", description: "Update an existing collection in the database", inputSchema: { type: "object", properties: { collectionName: { type: "string", description: "Name of the collection to update", }, newName: { type: "string", description: "New name for the collection", }, }, required: ["collectionName", "newName"], }, },
  • index.ts:113-125 (registration)
    The dispatch case in the CallToolRequest handler that invokes the UpdateCollection function.
    case "UpdateCollection": const updateResult = await UpdateCollection({ collectionName: args.collectionName as string, newName: args.newName as string, }); return { content: [ { type: "text", text: updateResult.message, }, ], };
  • index.ts:61-65 (registration)
    Registration of the listTools capability which includes UpdateCollection via the imported tools array.
    server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools, }; });

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/datastax/astra-db-mcp'

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