@chinchillaenterprises/mcp-ai-assistant
Version:
MCP server for AI assistant with ElevenLabs text-to-speech integration
53 lines • 2.69 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUsageTool = void 0;
const zod_1 = require("zod");
const account_state_js_1 = require("../../services/account-state.js");
const elevenlabs_client_js_1 = require("../../services/elevenlabs-client.js");
const inputSchema = zod_1.z.object({});
exports.getUsageTool = {
name: 'elevenlabs_get_usage',
description: 'Get subscription and usage information for the current account',
inputSchema,
handler: async (args) => {
const accountState = new account_state_js_1.AccountState();
const client = new elevenlabs_client_js_1.ElevenLabsClient(accountState);
try {
const subscriptionInfo = await client.getSubscriptionInfo();
return {
content: [{
type: 'text',
text: JSON.stringify({
success: true,
usage: {
character_count: subscriptionInfo.character_count,
character_limit: subscriptionInfo.character_limit,
can_extend_character_limit: subscriptionInfo.can_extend_character_limit,
allowed_to_extend_character_limit: subscriptionInfo.allowed_to_extend_character_limit,
next_character_count_reset_unix: subscriptionInfo.next_character_count_reset_unix,
voice_limit: subscriptionInfo.voice_limit,
professional_voice_limit: subscriptionInfo.professional_voice_limit,
can_use_instant_voice_cloning: subscriptionInfo.can_use_instant_voice_cloning,
can_use_professional_voice_cloning: subscriptionInfo.can_use_professional_voice_cloning,
available_models: subscriptionInfo.available_models,
can_use_style: subscriptionInfo.can_use_style,
can_use_speaker_boost: subscriptionInfo.can_use_speaker_boost
}
}, null, 2)
}]
};
}
catch (error) {
return {
content: [{
type: 'text',
text: JSON.stringify({
success: false,
error: error instanceof Error ? error.message : 'Unknown error occurred'
}, null, 2)
}]
};
}
}
};
//# sourceMappingURL=get-usage.js.map