log_revenue_insight
Capture revenue insights, decisions, and metrics to build institutional memory for revenue teams. Automatically versions previous values to track changes over time.
Instructions
Save a revenue insight, decision, metric, or pattern into Andru's memory so it compounds over time. Use after any deal decision, ICP refinement, metric update, or strategic pivot. The system automatically versions previous values.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | What kind of memory this is. | |
| key | Yes | Unique identifier for this memory (lowercase_underscored, e.g., "current_arr", "acme_deal_stage"). | |
| value | Yes | The memory content — a concise, specific fact or insight. | |
| memoryType | No | episodic=time-bound fact, semantic=general pattern, procedural=behavioral habit. Default: episodic. | |
| domain | No | Business domain this memory relates to. Default: general. | |
| confidence | No | How confident this memory is (0.0-1.0). Default: 1.0 for founder-stated facts. |
Implementation Reference
- src/client.js:36-38 (handler)The tool call is proxied to the Andru backend API endpoint '/api/mcp/tools/call'. The server implementation in src/server.js delegates execution to this client method.
async callTool(name, args) { return this.post('/api/mcp/tools/call', { tool: name, arguments: args }); } - src/catalog.js:547-563 (schema)The schema and definition for 'log_revenue_insight' are stored in the static tool catalog.
{ name: 'log_revenue_insight', description: 'Save a revenue insight, decision, metric, or pattern into Andru\'s memory so it compounds over time. Use after any deal decision, ICP refinement, metric update, or strategic pivot. The system automatically versions previous values.', annotations: WRITE_OP, inputSchema: { type: 'object', properties: { category: { type: 'string', enum: ['metric', 'account', 'priority', 'preference', 'decision', 'deadline'], description: 'What kind of memory this is.', }, key: { type: 'string', description: 'Unique identifier for this memory (lowercase_underscored, e.g., "current_arr", "acme_deal_stage").', }, value: {