get_icp_profile
Retrieve comprehensive ideal customer profiles with intelligence layers, buyer insights, and churn predictors to inform enterprise sales strategies.
Instructions
Returns everything Andru knows about your ideal customer — all 5 intelligence layers, the 7 critical buyer questions, and the patterns that predict churn. Optionally filter to specific layers.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| layers | No | Specific layers to include (1-5). Omit for all layers. | |
| includeSevenAnswers | No | Include seven critical buyer answers (default: true) | |
| includeAntiPatterns | No | Include anti-patterns and churn predictors (default: true) |
Implementation Reference
- src/catalog.js:266-282 (registration)The tool `get_icp_profile` is registered in `src/catalog.js`. It does not have local handler code because it is proxied to the Andru backend API by `src/server.js` using `src/client.js`.
{ name: 'get_icp_profile', description: 'Returns everything Andru knows about your ideal customer — all 5 intelligence layers, the 7 critical buyer questions, and the patterns that predict churn. Optionally filter to specific layers.', annotations: READ_ONLY, inputSchema: { type: 'object', properties: { layers: { type: 'array', items: { type: 'number', enum: [1, 2, 3, 4, 5] }, description: 'Specific layers to include (1-5). Omit for all layers.', }, includeSevenAnswers: { type: 'boolean', description: 'Include seven critical buyer answers (default: true)' }, includeAntiPatterns: { type: 'boolean', description: 'Include anti-patterns and churn predictors (default: true)' }, }, }, }, - src/server.js:47-69 (handler)The actual execution of the tool is handled generically in `src/server.js` by calling `client.callTool(name, args)`.
server.setRequestHandler( CallToolRequestSchema, async (request) => { if (!client) { return { content: [{ type: 'text', text: JSON.stringify({ error: 'ANDRU_API_KEY not configured. Tool execution requires an API key.' }) }], isError: true, }; } const { name, arguments: args } = request.params; try { return await client.callTool(name, args || {}); } catch (error) { return { content: [{ type: 'text', text: JSON.stringify({ error: error.message }), }], isError: true, }; } } );