Skip to main content
Glama
AiAgency-Now

VoiceAI-MCP-VAVicky

Official
by AiAgency-Now

update_deepseek_token

Update the Deepseek API key to maintain access to AI chat integrations and custom voice AI functionality within the VoiceAI platform.

Instructions

Update Deepseek API Key

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deepseek_tokenYesDeepseek API Key

Implementation Reference

  • Handler implementation for 'update_deepseek_token' tool. Sets the API endpoint to POST /deepseek/oauth with the token in the body.
    case 'update_deepseek_token':
      url = `${this.baseUrl}/deepseek/oauth`;
      method = 'POST';
      body = { deepseek_token: args.deepseek_token };
      break;
  • Schema definition for the 'update_deepseek_token' tool, specifying input as an object with required 'deepseek_token' string.
    {
      name: 'update_deepseek_token',
      description: 'Update Deepseek API Key',
      inputSchema: {
        type: 'object',
        properties: {
          deepseek_token: { type: 'string', description: 'Deepseek API Key' }
        },
        required: ['deepseek_token']
      }
  • index.js:37-456 (registration)
    The tool is registered by being included in the list of tools returned by the ListToolsRequestSchema handler.
    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 for behavioral disclosure. It states 'update' implies a mutation, but doesn't specify whether this requires authentication, what happens to the old token (e.g., revocation), if changes are immediate or reversible, or any rate limits. For a security-sensitive tool like an API key update, this lack of detail is a significant gap.

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 phrase ('Update Deepseek API Key') that front-loads the core purpose without unnecessary words. Every word earns its place, making it easy to scan and understand 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 the tool's complexity (mutating a security-sensitive API key) and lack of annotations or output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication needs, side effects, or response format, leaving the agent with insufficient context for safe and effective use.

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

Parameters3/5

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

The description adds no parameter semantics beyond what the schema provides. Since schema description coverage is 100% (the single parameter 'deepseek_token' is fully described in the schema as 'Deepseek API Key'), the baseline score of 3 applies. The tool name implies the parameter is for updating, but the description doesn't elaborate on format, validation, or constraints.

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 'Update Deepseek API Key' clearly states the action (update) and the resource (Deepseek API Key), making the tool's purpose immediately understandable. It distinguishes from most siblings (e.g., update_assistant, update_openai_token) by specifying the target token type, though it doesn't explicitly differentiate from similar token-update tools like update_elevenlabs_token or update_gemini_token beyond naming.

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. It doesn't mention prerequisites (e.g., needing an existing token to update), exclusions, or related tools (e.g., whether this is for initial setup or replacement). The agent must infer usage from the tool name alone.

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