Token导航 LogoToken导航TokenDH.com
LLM COST TRACKER MCP Server NPM Package logo
运维云端未说明官方级别未说明来源级核验

LLM COST TRACKER MCP Server NPM Package

MCP Server

一个专业的TypeScript库,用于跟踪和管理多个LLM提供商的成本,包括预算设置、实时警报和详细分析。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptClaude云端部署Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

dominiquekossi

提供方

dominiquekossi

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

LLM成本跟踪器

](https://www.npmjs.com/package/llm-cost-tracker) ![License: MIT](https://opensource.org/licenses/MIT)

一个专业的TypeScript库,用于跟踪和管理多个LLM提供商(OpenAI、Anthropic、Google等)的成本。监控您的人工智能支出,设定预算,并在达到阈值时收到警报。

特性

  • 🎯 多提供商支持 -跟踪OpenAI、Anthropic、谷歌和定制提供商的成本
  • 💰 预算管理 -使用可定制的阈值警报设置支出限制
  • 📊 详细分析 -按供应商、型号和时间段获取全面的成本汇总
  • 🔔 实时警报 -达到或超过预算阈值时接收回调
  • 🚀 REST API服务器 -用于远程成本跟踪的可选HTTP服务器
  • 💾 灵活存储 -内置存储器,可轻松扩展
  • 🎨 自定义定价 -覆盖自定义型号或特价的默认定价
  • 📦 零依赖 -重量轻,对生产的依赖性最小
  • 🔒 类型安全 -完全支持TypeScript,具有全面的类型定义

安装

npm install llm-cost-tracker

快速开始

基本用法

import {
  CostTracker,
  InMemoryStorage,
  PriceRegistry,
  BudgetManager,
} from "llm-cost-tracker";

// Initialize components
const storage = new InMemoryStorage();
const priceRegistry = new PriceRegistry();
const budgetManager = new BudgetManager(storage, {
  limitUSD: 100.0,
  thresholdPercent: 80,
});

// Create tracker
const tracker = new CostTracker(storage, priceRegistry, budgetManager);

// Track a cost
const event = await tracker.track({
  provider: "openai",
  model: "gpt-4",
  inputTokens: 1000,
  outputTokens: 500,
});

console.log(`Cost: $${event.totalCostUSD}`);

// Get summary
const summary = await tracker.getSummary();
console.log(`Total spent: $${summary.totalCostUSD}`);
console.log(`Total events: ${summary.eventCount}`);

带有预算警报

import { BudgetManager } from "llm-cost-tracker";

const budgetManager = new BudgetManager(storage, {
  limitUSD: 100.0,
  thresholdPercent: 80,
});

// Set up alert callbacks
budgetManager.onThreshold((status) => {
  console.log(`⚠️ Warning: ${status.percentUsed}% of budget used!`);
  console.log(`Spent: $${status.usedUSD} / $${status.limitUSD}`);
});

budgetManager.onExceeded((status) => {
  console.log(`🚨 Budget exceeded! Spent: $${status.usedUSD}`);
  // Take action: disable API calls, send notifications, etc.
});

使用MCP服务器

import { MCPServer } from "llm-cost-tracker/server";

const server = new MCPServer({
  port: 3000,
  host: "localhost",
  costTracker: tracker,
  budgetManager: budgetManager,
});

await server.start();
console.log("MCP Server running on http://localhost:3000");

API终点

轨道成本

POST /cost.track
Content-Type: application/json

{
  "provider": "openai",
  "model": "gpt-4",
  "inputTokens": 1000,
  "outputTokens": 500
}

获取摘要

GET /cost.summary

获取预算状态

GET /budget.status

设定预算

POST /budget.set
Content-Type: application/json

{
  "limitUSD": 100.0,
  "thresholdPercent": 80
}

重置数据

POST /cost.reset

支持的供应商和型号

开放人工智能

  • gpt-4 -0.03美元/千输入,0.06美元/千输出
  • gpt-4-turbo -0.01美元/千输入,0.03美元/千输出
  • gpt-3.5-turbo -0.0005/1K输入,0.0015/1K输出

Anthropic

  • claude-3-opus -0.015/1K输入,0.075/1K输出
  • claude-3-sonnet -0.003/1K输入,0.015/1K输出
  • claude-3-haiku -0.00025/千美元输入,0.00125/千$输出

谷歌

  • gemini-pro -0.00025/1K输入,0.0005/1K输出
  • gemini-pro-vision -0.00025/1K输入,0.0005/1K输出

高级用法

自定义定价

import { PriceRegistry } from "llm-cost-tracker";

const priceRegistry = new PriceRegistry();

// Add custom pricing for a model
priceRegistry.register("openai", "gpt-4-custom", {
  inputPricePerThousand: 0.025,
  outputPricePerThousand: 0.05,
});

// Use it
const event = await tracker.track({
  provider: "openai",
  model: "gpt-4-custom",
  inputTokens: 1000,
  outputTokens: 500,
});

多租户应用程序的命名空间

// Track costs for different users/projects
await tracker.track({
  provider: "openai",
  model: "gpt-4",
  inputTokens: 1000,
  outputTokens: 500,
  namespace: "user-123",
});

// Get summary for specific namespace
const userSummary = await tracker.getSummary("user-123");

成本模拟(无持久性)

// Calculate cost without saving to storage
const simulatedEvent = tracker.simulateCost({
  provider: "openai",
  model: "gpt-4",
  inputTokens: 1000,
  outputTokens: 500,
});

console.log(`Estimated cost: $${simulatedEvent.totalCostUSD}`);

自定义存储提供商

import { StorageProvider, CostEvent } from "llm-cost-tracker";

class DatabaseStorage implements StorageProvider {
  async save(event: CostEvent): Promise {
    // Save to your database
  }

  async loadAll(namespace?: string): Promise {
    // Load from your database
  }

  async reset(namespace?: string): Promise {
    // Clear your database
  }
}

const storage = new DatabaseStorage();
const tracker = new CostTracker(storage, priceRegistry);

API 参考

CostTracker

track(request: TrackingRequest): Promise

跟踪新的LLM API调用并返回成本事件。

参数:

  • provider (string)-提供者名称(例如“openai”、“anthropic”)
  • model (string)-型号名称(例如“gpt-4”、“claude-3-opus”)
  • inputTokens (number)-输入令牌的数量
  • outputTokens (number)-输出令牌的数量
  • namespace (字符串,可选)-用于多租户跟踪的命名空间

退货: CostEvent 计算成本

simulateCost(request: TrackingRequest): CostEvent

计算成本而不坚持存储。

getSummary(namespace?: string): Promise

获取按供应商和型号细分的汇总成本汇总。

reset(namespace?: string): Promise

清除所有跟踪数据。

预算经理

constructor(storage: StorageProvider, config: BudgetConfig)

创建一个新的预算经理。

配置选项:

  • limitUSD (数字)-最高支出限额(美元)
  • thresholdPercent (数字)-警告的百分比阈值(0-100)
  • resetInterval (字符串,可选)-“每日”、“每周”、“每月”或“手动”
  • namespace (字符串,可选)-要跟踪的命名空间

onThreshold(callback: BudgetCallback): void

设置阈值警告的回调。

onExceeded(callback: BudgetCallback): void

设置超出限制的回调。

checkBudget(): Promise

对照预算检查当前支出并触发回调。

getStatus(): Promise

在不触发回调的情况下获取当前预算状态。

updateConfig(config: Partial): void

更新预算配置。

reset(): Promise

重置预算使用数据。

价格注册表

register(provider: string, model: string, pricing: ModelPricing): void

为模型注册自定义定价。

getPricing(provider: string, model: string): ModelPricing

获取特定供应商和型号的定价。

calculateCost(tokens: number, pricePerThousand: number): number

计算给定数量的令牌的成本。

类型

interface CostEvent {
  id: string;
  timestamp: Date;
  provider: string;
  model: string;
  inputTokens: number;
  outputTokens: number;
  inputCostUSD: number;
  outputCostUSD: number;
  totalCostUSD: number;
  namespace?: string;
}

interface CostSummary {
  totalCostUSD: number;
  totalInputTokens: number;
  totalOutputTokens: number;
  eventCount: number;
  byProvider: Record;
  byModel: Record;
}

interface BudgetStatus {
  limitUSD: number;
  usedUSD: number;
  percentUsed: number;
  remainingUSD: number;
  thresholdReached: boolean;
  limitExceeded: boolean;
  resetInterval: string;
  nextResetDate?: Date;
}

示例

看看 示例 完整工作示例目录:

测试

# Run all tests
npm test

# Run tests with coverage
npm run test:coverage

# Run tests in watch mode
npm run test:watch

建筑

npm run build

贡献

欢迎投稿!请随时提交拉取请求。

许可证

麻省理工学院© 多米尼克 Houessou

支持

  • 📧 电子邮件:houessoudominique@gmail.com
  • 🐛 问题:

更新日志

1.0.0 (2024-11-20)

初始版本包含:

  • 多提供商成本跟踪(OpenAI、Anthropic、谷歌)
  • 具有阈值警报的预算管理
  • 内存存储实现
  • REST API服务器(MCP服务器)
  • 定制定价支持
  • 多租户应用程序的命名空间支持
  • 全面测试覆盖率(92%+)
  • 完全支持TypeScript

目录标签

目录标签

TypeScriptClaude云端部署成本管理本地部署LLM监控预算警报多提供商支持TypeScript库

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP