get_templates
Retrieve email templates with performance metrics from Revenue Engine MCP to optimize communication strategies and track engagement results.
Instructions
Get message templates with performance metrics
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "get_templates"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- index.js:666-668 (handler)Handler implementation for the 'get_templates' MCP tool. It calls the backend Google Apps Script API via the callAPI helper function with action 'getTemplates'.
case "get_templates": result = await callAPI("getTemplates"); break; - index.js:302-309 (registration)Registration of the 'get_templates' tool in the ListTools response, including its description and empty input schema (no parameters required).
{ name: "get_templates", description: "Get message templates with performance metrics", inputSchema: { type: "object", properties: {}, }, }, - index.js:305-308 (schema)Input schema for the 'get_templates' tool, defining it as an object with no properties (parameterless tool).
inputSchema: { type: "object", properties: {}, }, - index.js:74-131 (helper)Helper function callAPI used by the get_templates handler (and other tools) to make POST requests to the Google Apps Script backend API.
async function callAPI(action, data = {}) { debugLog('=== API CALL START ==='); debugLog(`Action: ${action}`); debugLog(`Data: ${JSON.stringify(data)}`); try { // Build form-encoded body for POST const formData = new URLSearchParams(); formData.append('action', action); // Add all data fields to form for (const [key, value] of Object.entries(data)) { if (value !== undefined && value !== null) { formData.append(key, value.toString()); } } const formString = formData.toString(); debugLog(`FormData: ${formString}`); debugLog(`API_URL: ${API_URL}`); // Use POST with proper content type const response = await fetch(API_URL, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: formString }); debugLog(`Response status: ${response.status}`); debugLog(`Response ok: ${response.ok}`); if (!response.ok) { debugLog(`Response not OK: ${response.status} ${response.statusText}`); throw new Error(`API request failed: ${response.status} ${response.statusText}`); } const text = await response.text(); debugLog(`Response text length: ${text.length}`); debugLog(`Response text: ${text}`); if (!text) { debugLog('ERROR: Empty response from API'); throw new Error('Empty response from API'); } const parsed = JSON.parse(text); debugLog(`Parsed successfully: ${JSON.stringify(parsed)}`); debugLog('=== API CALL END ==='); return parsed; } catch (error) { debugLog(`ERROR in callAPI: ${error.message}`); debugLog(`ERROR stack: ${error.stack}`); throw error; } }