#!/usr/bin/env node
/**
* Verify that accountKey and divisionId are marked as required
* for endpoints that need them
*/
const https = require('https');
const MCP_URL = 'https://pledge-face-replied-pamela.trycloudflare.com/mcp';
async function testRequiredParams() {
console.log('='.repeat(60));
console.log('VERIFYING REQUIRED PARAMETERS IN MCP TOOL SCHEMA');
console.log('='.repeat(60));
console.log();
// First, we need to authenticate and get a token
console.log('Step 1: Authenticate...');
// For this test, we'll check the tool schema directly via tools/list
// Make a JSON-RPC request to tools/list
const requestBody = JSON.stringify({
jsonrpc: '2.0',
method: 'tools/list',
params: {},
id: 1
});
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(requestBody)
}
};
return new Promise((resolve, reject) => {
const req = https.request(MCP_URL, options, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
try {
const response = JSON.parse(data);
if (response.error) {
console.error('Error from server:', response.error);
resolve();
return;
}
if (!response.result || !response.result.tools) {
console.error('No tools in response');
resolve();
return;
}
// Find the /v1/invoices/caui tool
const cauiTool = response.result.tools.find(tool =>
tool.name === 'api___v1_invoices_caui'
);
if (!cauiTool) {
console.error('Tool api___v1_invoices_caui not found!');
resolve();
return;
}
console.log('✅ Found tool: api___v1_invoices_caui');
console.log();
console.log('Required parameters:', cauiTool.inputSchema.required);
console.log();
// Check if accountKey and divisionId are in required array
const hasAccountKey = cauiTool.inputSchema.required.includes('accountKey');
const hasDivisionId = cauiTool.inputSchema.required.includes('divisionId');
if (hasAccountKey && hasDivisionId) {
console.log('✅ SUCCESS! Both accountKey and divisionId are marked as REQUIRED');
console.log();
console.log('This means Claude will now be forced to include both parameters');
console.log('when calling /v1/invoices/caui, which should fix the GCP');
console.log('Masterbilling account issue!');
} else {
console.log('❌ FAILURE! Missing required parameters:');
if (!hasAccountKey) console.log(' - accountKey is NOT required');
if (!hasDivisionId) console.log(' - divisionId is NOT required');
}
console.log();
console.log('Full tool schema:');
console.log(JSON.stringify(cauiTool, null, 2));
resolve();
} catch (error) {
console.error('Error parsing response:', error);
console.error('Raw response:', data);
reject(error);
}
});
});
req.on('error', (error) => {
console.error('Request error:', error);
reject(error);
});
req.write(requestBody);
req.end();
});
}
testRequiredParams().catch(console.error);