@nutrient-sdk/dws-mcp-server
Version:
MCP server for Nutrient DWS Processor API
42 lines (41 loc) • 1.42 kB
JavaScript
import { pipeToString } from './utils.js';
/**
* Strips sensitive fields (API keys) from the account info response
* before returning it to the LLM.
*/
export function sanitizeAccountInfo(data) {
const { apiKeys: _apiKeys, ...safe } = data;
return safe;
}
/**
* Calls the DWS /account/info endpoint and returns credit information.
*/
export async function performCheckCreditsCall(apiClient) {
const response = await apiClient.get('account/info');
const raw = await pipeToString(response.data);
let parsed;
try {
parsed = JSON.parse(raw);
}
catch {
return {
content: [{ type: 'text', text: `Unexpected non-JSON response from /account/info: ${raw}` }],
isError: true,
};
}
const safe = sanitizeAccountInfo(parsed);
const totalCredits = safe.usage?.totalCredits;
const usedCredits = safe.usage?.usedCredits;
const remainingCredits = totalCredits != null && usedCredits != null ? totalCredits - usedCredits : undefined;
const summary = {
subscriptionType: safe.subscriptionType ?? 'unknown',
totalCredits: totalCredits ?? 'unknown',
usedCredits: usedCredits ?? 'unknown',
remainingCredits: remainingCredits ?? 'unknown',
signedIn: safe.signedIn,
};
return {
content: [{ type: 'text', text: JSON.stringify(summary, null, 2) }],
isError: false,
};
}