Skip to main content
Glama
AiAgency-Now

VoiceAI-MCP-VAVicky

Official
by AiAgency-Now

get_assistants_token_usage

Track and monitor token consumption across all AI assistants to manage usage and optimize costs.

Instructions

Get token usage across all assistants

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Handler logic for the 'get_assistants_token_usage' tool within the executeTool switch statement. It configures a GET request to the backend API endpoint '/assistants/all/token/usage' to retrieve token usage across all assistants.
    case 'get_assistants_token_usage':
      url = `${this.baseUrl}/assistants/all/token/usage`;
      break;
  • Tool schema definition including name, description, and empty input schema (no parameters required), registered in the ListTools response.
      name: 'get_assistants_token_usage',
      description: 'Get token usage across all assistants',
      inputSchema: {
        type: 'object',
        properties: {},
        required: []
      }
    },
  • index.js:37-458 (registration)
    Registration of all tools including 'get_assistants_token_usage' via the ListToolsRequestHandler, which returns the list of available tools with their schemas.
    this.server.setRequestHandler(ListToolsRequestSchema, async () => {
      return {
        tools: [
          // User Management
          {
            name: 'get_user',
            description: 'Get user data including tokens and settings',
            inputSchema: {
              type: 'object',
              properties: {},
              required: []
            }
          },
          {
            name: 'update_white_label',
            description: 'Update White Label details: name, description, domain and color',
            inputSchema: {
              type: 'object',
              properties: {
                whitelabel_name: { type: 'string', description: 'White label name' },
                whitelabel_description: { type: 'string', description: 'White label description' },
                whitelabel_domain: { type: 'string', description: 'White label domain' },
                whitelabel_color: { type: 'string', description: 'White label color (hex code)' }
              },
              required: []
            }
          },
          {
            name: 'update_smtp',
            description: 'Update SMTP settings for custom email notifications',
            inputSchema: {
              type: 'object',
              properties: {
                smtp_email: { type: 'string', description: 'SMTP email address' },
                smtp_password: { type: 'string', description: 'SMTP password' },
                smtp_host: { type: 'string', description: 'SMTP host' },
                smtp_port: { type: 'string', description: 'SMTP port' }
              },
              required: ['smtp_email', 'smtp_password', 'smtp_host']
            }
          },
          // API Token Management
          {
            name: 'update_openai_token',
            description: 'Update OpenAI API Key',
            inputSchema: {
              type: 'object',
              properties: {
                openai_token: { type: 'string', description: 'OpenAI API Key' }
              },
              required: ['openai_token']
            }
          },
          {
            name: 'update_elevenlabs_token',
            description: 'Update Elevenlabs API Key',
            inputSchema: {
              type: 'object',
              properties: {
                elevenlabs_token: { type: 'string', description: 'Elevenlabs API Key' }
              },
              required: ['elevenlabs_token']
            }
          },
          {
            name: 'update_deepseek_token',
            description: 'Update Deepseek API Key',
            inputSchema: {
              type: 'object',
              properties: {
                deepseek_token: { type: 'string', description: 'Deepseek API Key' }
              },
              required: ['deepseek_token']
            }
          },
          {
            name: 'update_gemini_token',
            description: 'Update Google Gemini API Key',
            inputSchema: {
              type: 'object',
              properties: {
                gemini_token: { type: 'string', description: 'Google Gemini API Key' }
              },
              required: ['gemini_token']
            }
          },
          {
            name: 'update_openrouter_token',
            description: 'Update Open Router API Key',
            inputSchema: {
              type: 'object',
              properties: {
                openrouter_token: { type: 'string', description: 'Open Router API Key' }
              },
              required: ['openrouter_token']
            }
          },
          // Assistant Management
          {
            name: 'get_assistants',
            description: 'Get all assistants for the authenticated user',
            inputSchema: {
              type: 'object',
              properties: {},
              required: []
            }
          },
          {
            name: 'get_assistant',
            description: 'Get basic information about a specific assistant',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' }
              },
              required: ['assistant_id']
            }
          },
          {
            name: 'get_one_assistant',
            description: 'Get complete information about a specific assistant',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' }
              },
              required: ['assistant_id']
            }
          },
          {
            name: 'create_assistant',
            description: 'Create a new assistant with comprehensive configuration',
            inputSchema: {
              type: 'object',
              properties: {
                name: { type: 'string', description: 'Assistant name' },
                apiKey: { type: 'string', description: 'OpenAI API Key' },
                welcome_message: { type: 'string', description: 'Welcome message', default: 'Hello how can I help you today?' },
                prompt: { type: 'string', description: 'Instructions/Prompt for the assistant' },
                active: { type: 'boolean', description: 'Whether assistant is active', default: true },
                assistant_type: { type: 'string', enum: ['Text Only', 'Voice Only', 'Text & Voice', 'Voice & Text'], description: 'AI Type' },
                ai_platform: { type: 'string', enum: ['openai', 'gemini', 'openrouter', 'deepseek'], description: 'AI Provider' },
                openai_model: { type: 'string', description: 'AI Model', default: 'gpt-3.5-turbo' },
                openai_temperature: { type: 'number', description: 'AI Temperature (0-2)', default: 0.8 },
                booking_bot: { type: 'boolean', description: 'Is booking bot', default: false },
                location: { type: 'string', description: 'GoHighLevel Location' },
                calendar: { type: 'string', description: 'Calendar ID' },
                timezone: { type: 'string', description: 'Timezone' },
                custom_field: { type: 'string', description: 'Custom field' },
                limit_call_time: { type: 'number', description: 'Limit call time in seconds', default: 240 },
                limit_call_tokens: { type: 'number', description: 'Limit call tokens', default: 2000 },
                max_call_tokens: { type: 'number', description: 'Max call tokens', default: 18000 },
                elevenlabs_voice_id: { type: 'string', description: 'ElevenLabs Voice ID' },
                twilio_sid: { type: 'string', description: 'Twilio SID' },
                twilio_token: { type: 'string', description: 'Twilio Token' },
                twilio_phone: { type: 'string', description: 'Twilio Phone Number' },
                twilio_welcome: { type: 'string', description: 'Twilio Welcome Message' },
                twilio_speech_timeout: { type: 'number', description: 'Twilio Speech Timeout', default: 3 },
                twilio_initial_delay: { type: 'number', description: 'Twilio Initial Delay', default: 1 },
                google_calendar: { type: 'boolean', description: 'Google Calendar Integration', default: false },
                webhook_to_send: { type: 'string', description: 'Webhook URL' },
                openai_realtime: { type: 'boolean', description: 'OpenAI Realtime', default: false },
                openai_realtime_voice: { type: 'string', enum: ['alloy', 'echo', 'fable', 'nova', 'onyx', 'shimmer'], description: 'OpenAI Realtime Voice' },
                openai_websites: { type: 'array', items: { type: 'string' }, description: 'OpenAI Websites' }
              },
              required: ['name', 'apiKey']
            }
          },
          {
            name: 'update_assistant',
            description: 'Update an existing assistant',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' },
                name: { type: 'string', description: 'Assistant name' },
                apiKey: { type: 'string', description: 'OpenAI API Key' },
                welcome_message: { type: 'string', description: 'Welcome message' },
                prompt: { type: 'string', description: 'Instructions/Prompt' },
                active: { type: 'boolean', description: 'Whether assistant is active' },
                assistant_type: { type: 'string', enum: ['Text Only', 'Voice Only', 'Text & Voice', 'Voice & Text'] },
                ai_platform: { type: 'string', enum: ['openai', 'gemini', 'openrouter', 'deepseek'] },
                openai_model: { type: 'string', description: 'AI Model' },
                openai_temperature: { type: 'number', description: 'AI Temperature (0-2)' },
                booking_bot: { type: 'boolean', description: 'Is booking bot' },
                location: { type: 'string', description: 'GoHighLevel Location' },
                calendar: { type: 'string', description: 'Calendar ID' },
                timezone: { type: 'string', description: 'Timezone' },
                custom_field: { type: 'string', description: 'Custom field' }
              },
              required: ['assistant_id']
            }
          },
          {
            name: 'delete_assistant',
            description: 'Delete an assistant',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' }
              },
              required: ['assistant_id']
            }
          },
    
          // Assistant Files
          {
            name: 'get_assistant_files',
            description: 'Get files associated with an assistant',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' }
              },
              required: ['assistant_id']
            }
          },
          {
            name: 'delete_assistant_file',
            description: 'Delete a specific file from an assistant',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' },
                file_id: { type: 'string', description: 'File ID' }
              },
              required: ['assistant_id', 'file_id']
            }
          },
    
          // Assistant Usage & Analytics
          {
            name: 'get_assistant_usage',
            description: 'Get usage statistics for an assistant',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' }
              },
              required: ['assistant_id']
            }
          },
          {
            name: 'get_assistants_token_usage',
            description: 'Get token usage across all assistants',
            inputSchema: {
              type: 'object',
              properties: {},
              required: []
            }
          },
          {
            name: 'get_dashboard_assistant',
            description: 'Get the dashboard assistant for the authenticated user',
            inputSchema: {
              type: 'object',
              properties: {},
              required: []
            }
          },
          // Chat with Assistant
          {
            name: 'chat_with_assistant',
            description: 'Chat with a specific assistant',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' },
                message: { type: 'string', description: 'Message to send' },
                thread_id: { type: 'string', description: 'Chat/Thread ID' },
                audio: { type: 'boolean', description: 'Enable audio response', default: false }
              },
              required: ['assistant_id', 'message', 'thread_id']
            }
          },
          // Twilio Operations
          {
            name: 'connect_twilio',
            description: 'Connect Twilio account credentials',
            inputSchema: {
              type: 'object',
              properties: {
                twilio_sid: { type: 'string', description: 'Twilio Account SID' },
                twilio_token: { type: 'string', description: 'Twilio Auth Token' }
              },
              required: ['twilio_sid', 'twilio_token']
            }
          },
          {
            name: 'disconnect_twilio',
            description: 'Disconnect Twilio account',
            inputSchema: {
              type: 'object',
              properties: {},
              required: []
            }
          },
          {
            name: 'get_twilio_numbers',
            description: 'Get all Twilio phone numbers',
            inputSchema: {
              type: 'object',
              properties: {},
              required: []
            }
          },
          {
            name: 'get_available_numbers',
            description: 'Get available phone numbers for purchase',
            inputSchema: {
              type: 'object',
              properties: {
                country_code: { type: 'string', description: 'Country code', default: 'US' },
                number_type: { type: 'string', enum: ['local', 'tollfree', 'mobile'], description: 'Number type', default: 'local' },
                search_pattern: { type: 'string', description: 'Search for numbers containing this pattern' },
                locality: { type: 'string', description: 'Locality/city for local numbers' }
              },
              required: []
            }
          },
          {
            name: 'buy_twilio_number',
            description: 'Purchase a new Twilio phone number',
            inputSchema: {
              type: 'object',
              properties: {
                phone_number: { type: 'string', description: 'Phone number to purchase' }
              },
              required: ['phone_number']
            }
          },
          {
            name: 'update_twilio_number',
            description: 'Update Twilio number configuration',
            inputSchema: {
              type: 'object',
              properties: {
                number_sid: { type: 'string', description: 'Number SID' },
                friendly_name: { type: 'string', description: 'Friendly name' },
                voice_webhook: { type: 'string', description: 'Voice webhook URL' },
                sms_webhook: { type: 'string', description: 'SMS webhook URL' }
              },
              required: ['number_sid']
            }
          },
          {
            name: 'get_twilio_usage',
            description: 'Get Twilio usage statistics',
            inputSchema: {
              type: 'object',
              properties: {
                start_date: { type: 'string', description: 'Start date (ISO format)' },
                end_date: { type: 'string', description: 'End date (ISO format)' },
                limit: { type: 'number', description: 'Max number of results', default: 50 }
              },
              required: []
            }
          },
          // Call Management
          {
            name: 'make_call',
            description: 'Make a phone call through assistant',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' },
                phone_number: { type: 'string', description: 'Phone number to call' },
                contact_id: { type: 'string', description: 'Contact ID (optional)' }
              },
              required: ['assistant_id', 'phone_number']
            }
          },
          {
            name: 'make_bulk_call',
            description: 'Make bulk phone calls',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' },
                contact_bulk_id: { type: 'string', description: 'Contact bulk ID' }
              },
              required: ['assistant_id', 'contact_bulk_id']
            }
          },
          {
            name: 'get_calls_in_progress',
            description: 'Get all calls currently in progress',
            inputSchema: {
              type: 'object',
              properties: {},
              required: []
            }
          },
          {
            name: 'cancel_call',
            description: 'Cancel an active phone call',
            inputSchema: {
              type: 'object',
              properties: {
                call_id: { type: 'string', description: 'Call ID' }
              },
              required: ['call_id']
            }
          },
          // SMS Operations
          {
            name: 'send_sms',
            description: 'Send SMS message through assistant',
            inputSchema: {
              type: 'object',
              properties: {
                assistant_id: { type: 'string', description: 'Assistant ID' },
                phone_number: { type: 'string', description: 'Phone number to send SMS' },
                message: { type: 'string', description: 'SMS message content' },
                contact_id: { type: 'string', description: 'Contact ID (optional)' }
              },
              required: ['assistant_id', 'phone_number', 'message']
            }
          }
        ]
      };
    });
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose if this is a read-only operation, requires authentication, has rate limits, returns aggregated or detailed data, or any side effects. For a tool with zero annotation coverage, this is a significant gap in behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a no-parameter tool, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool that likely returns structured data (token usage). It doesn't explain what 'token usage' entails (e.g., counts, types, time ranges) or the return format, leaving the agent with insufficient context to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a baseline score of 4 for not adding unnecessary information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get token usage across all assistants' clearly states the action (get) and resource (token usage), specifying scope (across all assistants). It distinguishes from sibling tools like 'get_assistant_usage' which likely focuses on a single assistant, though not explicitly named. It lacks full sibling differentiation for a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_assistant_usage' or other usage-related tools. It implies a broad scope but doesn't specify prerequisites, timing, or exclusions, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other 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/AiAgency-Now/MCP-VoiceAI-WhiteLabel'

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