Skip to main content
Glama
wn01011

llm-token-tracker

README.mdโ€ข9.23 kB
# LLM Token Tracker ๐Ÿงฎ Token usage tracker for OpenAI, Claude, and Gemini APIs with **MCP (Model Context Protocol) support**. Pass accurate API costs to your users. [![npm version](https://badge.fury.io/js/llm-token-tracker.svg)](https://www.npmjs.com/package/llm-token-tracker) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) <a href="https://glama.ai/mcp/servers/@wn01011/llm-token-tracker"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@wn01011/llm-token-tracker/badge" alt="llm-token-tracker MCP server" /> </a> ## โœจ Features - ๐ŸŽฏ **Simple Integration** - One line to wrap your API client - ๐Ÿ“Š **Automatic Tracking** - No manual token counting - ๐Ÿ’ฐ **Accurate Pricing** - Up-to-date pricing for all models (2025) - ๐Ÿ”„ **Multiple Providers** - OpenAI, Claude, and Gemini support - ๐Ÿ“ˆ **User Management** - Track usage per user/session - ๐ŸŒ **Currency Support** - USD and KRW - ๐Ÿค– **MCP Server** - Use directly in Claude Desktop! - ๐Ÿ†• **Intuitive Session Tracking** - Real-time usage with progress bars ## ๐Ÿ“ฆ Installation ```bash npm install llm-token-tracker ``` ## ๐Ÿš€ Quick Start ### Option 1: Use as Library ```javascript const { TokenTracker } = require('llm-token-tracker'); // or import { TokenTracker } from 'llm-token-tracker'; // Initialize tracker const tracker = new TokenTracker({ currency: 'USD' // or 'KRW' }); // Example: Manual tracking const trackingId = tracker.startTracking('user-123'); // ... your API call here ... tracker.endTracking(trackingId, { provider: 'openai', // or 'anthropic' or 'gemini' model: 'gpt-3.5-turbo', inputTokens: 100, outputTokens: 50, totalTokens: 150 }); // Get user's usage const usage = tracker.getUserUsage('user-123'); console.log(`Total cost: $${usage.totalCost}`); ``` ## ๐Ÿ”ง With Real APIs To use with actual OpenAI/Anthropic APIs: ```javascript const OpenAI = require('openai'); const { TokenTracker } = require('llm-token-tracker'); const tracker = new TokenTracker(); const openai = tracker.wrap(new OpenAI({ apiKey: process.env.OPENAI_API_KEY })); // Use normally - tracking happens automatically const response = await openai.chat.completions.create({ model: "gpt-3.5-turbo", messages: [{ role: "user", content: "Hello!" }] }); console.log(response._tokenUsage); // { tokens: 125, cost: 0.0002, model: "gpt-3.5-turbo" } ``` ### Option 2: Use as MCP Server Add to Claude Desktop settings (`~/Library/Application Support/Claude/claude_desktop_config.json`): ```json { "mcpServers": { "token-tracker": { "command": "npx", "args": ["llm-token-tracker"] } } } ``` Then in Claude: - **"Calculate current session usage"** - See current session usage with intuitive format - **"Calculate current conversation cost"** - Get cost breakdown with input/output tokens - "Track my API usage" - "Compare costs between GPT-4 and Claude" - "Show my total spending today" #### Available MCP Tools 1. **`get_current_session`** - ๐Ÿ†• Get current session usage (RECOMMENDED) - Returns: Used/Remaining tokens, Input/Output breakdown, Cost, Progress bar - Default user_id: `current-session` - Default budget: 190,000 tokens - **Perfect for real-time conversation tracking!** 2. **`track_usage`** - Track token usage for an AI API call - Parameters: provider, model, input_tokens, output_tokens, user_id 3. **`get_usage`** - Get usage summary for specific user or all users 4. **`compare_costs`** - Compare costs between different models 5. **`clear_usage`** - Clear usage data for a user #### Example MCP Output ``` ๐Ÿ’ฐ Current Session โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ“Š Used: 62,830 tokens (33.1%) โœจ Remaining: 127,170 tokens [โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘] ๐Ÿ“ฅ Input: 55,000 tokens ๐Ÿ“ค Output: 7,830 tokens ๐Ÿ’ต Cost: $0.2825 โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ“‹ Model Breakdown: โ€ข anthropic/claude-sonnet-4.5: 62,830 tokens ($0.2825) ``` ## ๐Ÿ“Š Supported Models & Pricing (Updated 2025) ### OpenAI (2025) | Model | Input (per 1K tokens) | Output (per 1K tokens) | Notes | |-------|----------------------|------------------------|-------| | **GPT-5 Series** | | | | | GPT-5 | $0.00125 | $0.010 | Latest flagship model | | GPT-5 Mini | $0.00025 | $0.0010 | Compact version | | **GPT-4.1 Series** | | | | | GPT-4.1 | $0.0020 | $0.008 | Advanced reasoning | | GPT-4.1 Mini | $0.00015 | $0.0006 | Cost-effective | | **GPT-4o Series** | | | | | GPT-4o | $0.0025 | $0.010 | Multimodal | | GPT-4o Mini | $0.00015 | $0.0006 | Fast & cheap | | **o1 Reasoning Series** | | | | | o1 | $0.015 | $0.060 | Advanced reasoning | | o1 Mini | $0.0011 | $0.0044 | Efficient reasoning | | o1 Pro | $0.015 | $0.060 | Pro reasoning | | **Legacy Models** | | | | | GPT-4 Turbo | $0.01 | $0.03 | | | GPT-4 | $0.03 | $0.06 | | | GPT-3.5 Turbo | $0.0005 | $0.0015 | Most affordable | | **Media Models** | | | | | DALL-E 3 | $0.040 per image | - | Image generation | | Whisper | $0.006 per minute | - | Speech-to-text | ### Anthropic (2025) | Model | Input (per 1K tokens) | Output (per 1K tokens) | Notes | |-------|----------------------|------------------------|-------| | **Claude 4 Series** | | | | | Claude Opus 4.1 | $0.015 | $0.075 | Most powerful | | Claude Opus 4 | $0.015 | $0.075 | Flagship model | | Claude Sonnet 4.5 | $0.003 | $0.015 | Best for coding | | Claude Sonnet 4 | $0.003 | $0.015 | Balanced | | **Claude 3 Series** | | | | | Claude 3.5 Sonnet | $0.003 | $0.015 | | | Claude 3.5 Haiku | $0.00025 | $0.00125 | Fastest | | Claude 3 Opus | $0.015 | $0.075 | | | Claude 3 Sonnet | $0.003 | $0.015 | | | Claude 3 Haiku | $0.00025 | $0.00125 | Most affordable | ### Google Gemini (2025) | Model | Input (per 1K tokens) | Output (per 1K tokens) | Notes | |-------|----------------------|------------------------|-------| | **Gemini 2.0 Series** | | | | | Gemini 2.0 Flash (Exp) | Free | Free | Experimental preview | | Gemini 2.0 Flash Thinking | Free | Free | Reasoning preview | | **Gemini 1.5 Series** | | | | | Gemini 1.5 Pro | $0.00125 | $0.005 | Most capable | | Gemini 1.5 Flash | $0.000075 | $0.0003 | Fast & efficient | | Gemini 1.5 Flash-8B | $0.0000375 | $0.00015 | Ultra-fast | | **Gemini 1.0 Series** | | | | | Gemini 1.0 Pro | $0.0005 | $0.0015 | Legacy model | | Gemini 1.0 Pro Vision | $0.00025 | $0.0005 | Multimodal | | Gemini Ultra | $0.002 | $0.006 | Premium tier | **Note:** Prices shown are per 1,000 tokens. Batch API offers 50% discount. Prompt caching can reduce costs by up to 90%. ## ๐ŸŽฏ Examples Run the example: ```bash npm run example ``` Check `examples/basic-usage.js` for detailed usage patterns. ## ๐Ÿ“ API Reference ### `new TokenTracker(config)` - `config.currency`: 'USD' or 'KRW' (default: 'USD') - `config.webhookUrl`: Optional webhook for usage notifications ### `tracker.wrap(client)` Wrap an OpenAI or Anthropic client for automatic tracking. ### `tracker.forUser(userId)` Create a user-specific tracker instance. ### `tracker.startTracking(userId?, sessionId?)` Start manual tracking session. Returns tracking ID. ### `tracker.endTracking(trackingId, usage)` End tracking and record usage. ### `tracker.getUserUsage(userId)` Get total usage for a user. ### `tracker.getAllUsersUsage()` Get usage summary for all users. ## ๐Ÿ›  Development ```bash # Install dependencies npm install # Build TypeScript npm run build # Watch mode npm run dev # Run examples npm run example ``` ## ๐Ÿ“„ License MIT ## ๐Ÿค Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## ๐Ÿ› Issues For bugs and feature requests, please [create an issue](https://github.com/wn01011/llm-token-tracker/issues). ## ๐Ÿ“ฆ What's New in v2.4.0 - ๐ŸŽ‰ **Gemini API Support** - Full integration with Google's Gemini models - ๐Ÿ’Ž **Gemini 2.0 Support** - Free preview models included - ๐Ÿ“Š **Enhanced Pricing** - Up-to-date Gemini 1.5 and 2.0 pricing - ๐Ÿ”ง **Auto-detection** - Automatic Gemini client wrapping - ๐Ÿ’ฐ **Cost Comparison** - Compare Gemini with OpenAI and Claude ## ๐Ÿ“ฆ What's New in v2.3.0 - ๐Ÿ’ฑ **Real-time exchange rates** - Automatic USD to KRW conversion - ๐ŸŒ Uses exchangerate-api.com for accurate rates - ๐Ÿ’พ 24-hour caching to minimize API calls - ๐Ÿ“Š New `get_exchange_rate` tool to check current rates - ๐Ÿ”„ Background auto-updates with fallback support ## What's New in v2.2.0 - ๐Ÿ—„๏ธ **File-based persistence** - Session data survives server restarts - ๐Ÿ’พ Automatic saving to `~/.llm-token-tracker/sessions.json` - ๐Ÿ”„ Works for both npm and local installations - ๐Ÿ“Š Historical data tracking across sessions - ๐ŸŽฏ Zero configuration required - just works! ## What's New in v2.1.0 - ๐Ÿ†• Added `get_current_session` tool for intuitive session tracking - ๐Ÿ“Š Real-time progress bars and visual indicators - ๐Ÿ’ฐ Enhanced cost breakdown with input/output token separation - ๐ŸŽจ Improved formatting with thousands separators - ๐Ÿ”ง Better default user_id handling (`current-session`) --- Built with โค๏ธ for developers who need transparent AI API billing.

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/wn01011/llm-token-tracker'

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