Skip to main content
Glama
DynamicEndpoints

Advanced PocketBase MCP Server

get_record

Retrieve specific records from PocketBase databases by executing queries with defined parameters to access stored data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Core handler function that executes the get_record tool logic by fetching the record from PocketBase using collection.getOne(id). Dispatched from the main tool call handler.
    private async getRecord(collection: string, id: string) {
      if (!this.pb) {
        throw new Error('PocketBase not configured');
      }
    
      try {
        const record = await this.pb.collection(collection).getOne(id);
        return {
          content: [
            {
              type: "text",
              text: JSON.stringify(record, null, 2)
            }
          ]
        };
      } catch (error: any) {
        throw new Error(`Failed to get record: ${error.message}`);
      }
    }
  • Input schema for get_record tool defining required 'collection' and 'id' string parameters.
      name: "get_record",
      description: "Get a specific record by ID",
      inputSchema: {
        type: "object",
        properties: {
          collection: {
            type: "string",
            description: "Collection name"
          },
          id: {
            type: "string",
            description: "Record ID"
          }
        },
        required: ["collection", "id"]
      }
    },
  • Inline tool registration and handler for get_record in the simple agent implementation, using Zod schema validation and PocketBase getOne.
      'get_record',
      {
        description: 'Get a specific record by ID',
        inputSchema: {
          collection: z.string().describe('Collection name'),
          id: z.string().describe('Record ID')
        }
      },
      async ({ collection, id }) => {
        await this.ensureInitialized();
        if (!this.pb) {
          throw new Error('PocketBase not initialized');
        }
    
        try {
          const record = await this.pb.collection(collection).getOne(id);
          return {
            content: [{
              type: 'text',
              text: JSON.stringify(record, null, 2)
            }]
          };
        } catch (error: any) {
          throw new Error(`Failed to get record: ${error.message}`);
        }
      }
    );
  • Tool handler for get_record in Cloudflare agent, supports optional expand parameter for relations.
    this.server.tool(
      "get_record",
      "Get a specific record by ID",
      {
        collection: z.string().describe('Collection name'),
        id: z.string().describe('Record ID'),
        expand: z.string().optional().describe('Relations to expand')
      },
      async ({ collection, id, expand }) => {
        if (!this.pb) {
          throw new Error('PocketBase not initialized');
        }
    
        const record = await this.pb.collection(collection).getOne(id, { expand });
        return {
          content: [{
            type: 'text',
            text: JSON.stringify(record, 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/DynamicEndpoints/advanced-pocketbase-mcp-server'

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