Skip to main content
Glama
DynamicEndpoints

pocketbase-mcp-server

discover_tools

Explore and manage PocketBase database tools within the MCP server for schema operations, data manipulation, and advanced database interactions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Handler function for 'discover_tools' tool that returns a JSON list of all registered tools with their availability status based on server initialization state.
    this.server.tool(
      'discover_tools',
      {
        description: 'List all available tools and their current status'
      },
      async () => {
        const tools = [];
        
        tools.push({
          name: 'health_check',
          status: 'available',
          description: 'Health check tool'
        });
        
        tools.push({
          name: 'discover_tools', 
          status: 'available',
          description: 'Tool discovery'
        });
    
        // PocketBase tools
        const pbStatus = this.state.initializationState.pocketbaseInitialized ? 'available' : 'requires_initialization';
        ['list_collections', 'get_collection', 'list_records', 'get_record', 'create_record'].forEach(toolName => {
          tools.push({
            name: toolName,
            status: pbStatus,
            description: `PocketBase ${toolName.replace(/_/g, ' ')}`
          });
        });
    
        return {
          content: [{
            type: 'text',
            text: JSON.stringify({
              totalTools: tools.length,
              availableTools: tools.filter(t => t.status === 'available').length,
              tools: tools
            }, null, 2)
          }]
        };
      }
    );
  • Handler function for 'discover_tools' tool that dynamically lists available tools categorized by system, pocketbase, stripe, and email services based on initialization.
    this.server.tool(
      "discover_tools",
      "List all available tools and their current status",
      {},
      async () => {
        const tools = [
          { name: 'health_check', status: 'available', category: 'system' },
          { name: 'smithery_discovery', status: 'available', category: 'system' },
          { name: 'discover_tools', status: 'available', category: 'system' }
        ];
    
        // Add PocketBase tools
        if (this.state.pocketbaseInitialized) {
          const pbTools = [
            'list_collections', 'get_collection', 'create_collection',
            'list_records', 'get_record', 'create_record', 'update_record',
            'delete_record', 'query_records', 'authenticate_user'
          ];
          pbTools.forEach(tool => {
            tools.push({ name: tool, status: 'available', category: 'pocketbase' });
          });
        }
    
        // Add service tools
        if (this.stripeService) {
          ['create_customer', 'create_payment_intent'].forEach(tool => {
            tools.push({ name: tool, status: 'available', category: 'stripe' });
          });
        }
    
        if (this.emailService) {
          ['send_email'].forEach(tool => {
            tools.push({ name: tool, status: 'available', category: 'email' });
          });
        }
    
        return {
          content: [{
            type: 'text',
            text: JSON.stringify({
              totalTools: tools.length,
              availableTools: tools.filter(t => t.status === 'available').length,
              tools: tools
            }, 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