Skip to main content
Glama
gurveeer

MCP Server Gemini

by gurveeer

count_tokens

Calculate token counts for text using specified Gemini models to manage input length and optimize API usage.

Instructions

Count tokens for a given text with a specific model

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYesText to count tokens for
modelNoModel to use for token countinggemini-2.5-flash

Implementation Reference

  • The primary handler method for the 'count_tokens' tool. It extracts parameters, calls the underlying Gemini SDK's countTokens method, formats the token count result into an MCP response, and handles errors.
    private async countTokens(id: any, args: any): Promise<MCPResponse> {
      try {
        const model = args.model || 'gemini-2.5-flash';
    
        const result = await this.genAI.models.countTokens({
          model,
          contents: [
            {
              parts: [
                {
                  text: args.text
                }
              ],
              role: 'user'
            }
          ]
        });
    
        return {
          jsonrpc: '2.0',
          id,
          result: {
            content: [
              {
                type: 'text',
                text: `Token count: ${result.totalTokens}`
              }
            ],
            metadata: {
              tokenCount: result.totalTokens,
              model
            }
          }
        };
      } catch (error) {
        return {
          jsonrpc: '2.0',
          id,
          error: {
            code: -32603,
            message: error instanceof Error ? error.message : 'Internal error'
          }
        };
      }
    }
  • Registers the 'count_tokens' tool in the list of available tools, defining its name, description, and input schema for MCP protocol.
      name: 'count_tokens',
      description: 'Count tokens for a given text with a specific model',
      inputSchema: {
        type: 'object',
        properties: {
          text: {
            type: 'string',
            description: 'Text to count tokens for'
          },
          model: {
            type: 'string',
            description: 'Model to use for token counting',
            enum: Object.keys(GEMINI_MODELS),
            default: 'gemini-2.5-flash'
          }
        },
        required: ['text']
      }
    },
  • Zod schema definition for validating input parameters of the 'count_tokens' tool (text required, model optional).
    countTokens: z.object({
      text: z.string().min(1, 'Text is required'),
      model: CommonSchemas.geminiModel.optional()
    }),

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/gurveeer/mcp-server-gemini-pro'

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