Skip to main content
Glama
DynamicEndpoints

pocketbase-mcp-server

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)
          }]
        };
      }
    );
Install Server

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