ListRecords
Retrieve records from a specified collection in Astra DB, with options to limit the number of results returned for efficient data management.
Instructions
List records from a collection in the database
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| collectionName | Yes | Name of the collection to list records from | |
| limit | No | Maximum number of records to return |
Input Schema (JSON Schema)
{
"properties": {
"collectionName": {
"description": "Name of the collection to list records from",
"type": "string"
},
"limit": {
"default": 10,
"description": "Maximum number of records to return",
"type": "number"
}
},
"required": [
"collectionName"
],
"type": "object"
}
Implementation Reference
- tools/ListRecords.ts:18-49 (handler)Core handler function that executes the ListRecords tool: fetches records from the specified collection using db.collection().find(), applies limit, sanitizes output, handles errors.export async function ListRecords(params: { collectionName: string; limit?: number; }) { const { collectionName, limit = 10 } = params; const collection = db.collection(collectionName); try { // Try to use the limit method if available const cursor = collection.find({}); // Handle the case when toArray is not available if (!cursor || typeof cursor.toArray !== 'function') { console.warn(`cursor.toArray is not available for collection '${collectionName}'`); return sanitizeRecordData([]); } if (typeof cursor.limit === 'function') { const records = await cursor.limit(limit).toArray(); return sanitizeRecordData(records); } else { // Fallback if limit is not available const allRecords = await cursor.toArray(); const limitedRecords = allRecords.slice(0, limit); return sanitizeRecordData(limitedRecords); } } catch (error) { console.error(`Error listing records from collection '${collectionName}':`, error); return sanitizeRecordData([]); } }
- tools.ts:117-135 (schema)Input schema definition for the ListRecords tool, specifying parameters collectionName (required) and optional limit.{ name: "ListRecords", description: "List records from a collection in the database", inputSchema: { type: "object", properties: { collectionName: { type: "string", description: "Name of the collection to list records from", }, limit: { type: "number", description: "Maximum number of records to return", default: 10, }, }, required: ["collectionName"], }, },
- index.ts:140-154 (registration)Registration and dispatch logic in the MCP server's CallToolRequestSchema handler: imports ListRecords, calls it with arguments, sanitizes, and returns JSON response.case "ListRecords": const records = await ListRecords({ collectionName: args.collectionName as string, limit: args.limit as number | undefined, }); // Sanitize records to prevent prompt injection const sanitizedRecords = sanitizeRecordData(records); return { content: [ { type: "text", text: JSON.stringify(sanitizedRecords, null, 2), }, ], };