Skip to main content
Glama

list_records

Fetch and display records from PocketBase databases using the MCP protocol. This tool simplifies data retrieval and supports efficient database interactions within the pocketbase-mcp-server ecosystem.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Primary registration and handler for the 'list_records' tool in the main PocketBase MCP server. Defines input schema using Zod and implements the PocketBase getList query.
    server.tool( 'list_records', { collection: z.string().describe('Collection name'), filter: z.string().optional().describe('Filter query'), sort: z.string().optional().describe('Sort field and direction'), page: z.number().optional().describe('Page number'), perPage: z.number().optional().describe('Items per page') }, async ({ collection, filter, sort, page = 1, perPage = 50 }) => { try { const options: any = {}; if (filter) options.filter = filter; if (sort) options.sort = sort; const result = await this.pb.collection(collection).getList(page, perPage, options); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; } catch (error: any) { return { content: [{ type: 'text', text: `Failed to list records: ${error.message}` }], isError: true }; } } );
  • Handler function listRecords in the worker-compatible PocketBase MCP agent, called from the tool dispatch switch statement.
    private async listRecords(collection: string, options: any = {}) { if (!this.pb) { throw new Error('PocketBase not configured'); } try { const records = await this.pb.collection(collection).getList( options.page || 1, options.perPage || 30, { filter: options.filter, sort: options.sort } ); return { content: [ { type: "text", text: JSON.stringify(records, null, 2) } ] }; } catch (error: any) { throw new Error(`Failed to list records: ${error.message}`); } }
  • Input schema definition for the list_records tool in the ListTools response of the worker-compatible agent.
    name: "list_records", description: "List records from a collection", inputSchema: { type: "object", properties: { collection: { type: "string", description: "Collection name" }, page: { type: "number", description: "Page number (default: 1)" }, perPage: { type: "number", description: "Records per page (default: 30)" }, filter: { type: "string", description: "Filter expression" }, sort: { type: "string", description: "Sort expression" } }, required: ["collection"] } },
  • Registration and inline handler for list_records tool in the Cloudflare Agent implementation of PocketBase MCP server.
    this.server.tool( "list_records", "List records from a collection with optional filtering and pagination", { collection: z.string().describe('Collection name'), page: z.number().optional().default(1).describe('Page number'), perPage: z.number().optional().default(30).describe('Records per page'), sort: z.string().optional().describe('Sort order (e.g., "-created")'), filter: z.string().optional().describe('Filter expression'), expand: z.string().optional().describe('Relations to expand') }, async ({ collection, page, perPage, sort, filter, expand }) => { if (!this.pb) { throw new Error('PocketBase not initialized'); } const records = await this.pb.collection(collection).getList(page, perPage, { sort, filter, expand }); return { content: [{ type: 'text', text: JSON.stringify(records, null, 2) }] }; } );

Other Tools

Related 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/DynamicEndpoints/pocketbase-mcp-server'

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