loading…
Search for a command to run...
loading…
Token usage tracker for OpenAI and Claude APIs with MCP support, real-time session tracking, and accurate pricing for 2025 models
Token usage tracker for OpenAI and Claude APIs with MCP support, real-time session tracking, and accurate pricing for 2025 models
Token usage tracker for OpenAI, Claude, and Gemini APIs with MCP (Model Context Protocol) support. Pass accurate API costs to your users.
npm install llm-token-tracker
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}`);
To use with actual OpenAI/Anthropic APIs:
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" }
Add to Claude Desktop settings (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"token-tracker": {
"command": "npx",
"args": ["llm-token-tracker"]
}
}
}
Then in Claude:
get_current_session - 🆕 Get current session usage (RECOMMENDED)
current-sessiontrack_usage - Track token usage for an AI API call
get_usage - Get usage summary for specific user or all users
compare_costs - Compare costs between different models
clear_usage - Clear usage data for a user
💰 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)
| 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 |
| 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 |
| 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%.
Run the example:
npm run example
Check examples/basic-usage.js for detailed usage patterns.
new TokenTracker(config)config.currency: 'USD' or 'KRW' (default: 'USD')config.webhookUrl: Optional webhook for usage notificationstracker.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.
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode
npm run dev
# Run examples
npm run example
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
For bugs and feature requests, please create an issue.
get_exchange_rate tool to check current rates~/.llm-token-tracker/sessions.jsonget_current_session tool for intuitive session trackingcurrent-session)Built with ❤️ for developers who need transparent AI API billing.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"wn01011-llm-token-tracker": {
"command": "npx",
"args": []
}
}
}Web content fetching and conversion for efficient LLM usage.
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also