mcp-server-andru-intelligence 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Andru Revenue Intelligence MCP Server
2
2
 
3
- Strategic revenue intelligence for technical SaaS founders. ICP scoring, persona profiling, competitive positioning, buyer journey mapping, and pre-meeting briefs — powered by 20 years of B2B sales wisdom.
3
+ The revenue intelligence system that technical founders wish existed when they were Googling "how to interview a VP Sales" at 2 AM. ICP scoring, buyer persona profiling, competitive battlecards, MBTI-adapted messaging, and pre-meeting briefs — built on 20 years of B2B sales pattern data.
4
+
5
+ Works immediately — no pipeline data required. Describe your product and Andru delivers pre-built buyer intelligence in seconds. Run a full pipeline for intelligence tuned to your specific market.
4
6
 
5
7
  ## Installation
6
8
 
@@ -52,31 +54,63 @@ claude mcp add andru-intelligence npx @andru/mcp-server-intelligence \
52
54
 
53
55
  ## Available Tools
54
56
 
55
- | Tool | Description | Latency |
57
+ ### Qualification & Scoring
58
+
59
+ | Tool | What It Does | Latency |
60
+ |------|-------------|---------|
61
+ | `get_icp_fit_score` | Tells you in seconds whether a company is worth your time — scores across 5 dimensions against who actually buys from you | <100ms |
62
+ | `batch_fit_score` | Score up to 50 companies at once — tier and score so you can rank a list in under a second | <500ms |
63
+ | `classify_opportunity` | Full read on a deal — fit score, persona match, risk flags, disqualification check, and a verdict: pursue, pause, or walk away | <200ms |
64
+ | `get_disqualification_signals` | Find out if you're wasting time on a deal that won't close — three layers of signal and a clear recommendation | <200ms |
65
+
66
+ ### Buyer Intelligence
67
+
68
+ | Tool | What It Does | Latency |
56
69
  |------|-------------|---------|
57
- | `get_icp_fit_score` | Score a company against your ICP criteria | <100ms |
58
- | `get_persona_profile` | Look up buyer persona from ICP data | <50ms |
59
- | `get_disqualification_signals` | 3-layer opportunity classification | <200ms |
60
- | `get_messaging_framework` | MBTI-adapted messaging frameworks | <50ms |
61
- | `get_competitive_positioning` | Competitive battlecards and positioning | <100ms |
62
- | `classify_opportunity` | Full opportunity classification | <200ms |
63
- | `get_account_plan` | Structured account plan with MEDDICC | <100ms |
64
- | `get_capability_profile` | Machine-readable capability profile | <50ms |
65
- | `get_evaluation_criteria` | 6-value alignment scoring | <100ms |
66
- | `get_icp_profile` | Full Pure Signal ICP profile (5 layers) | <100ms |
67
- | `discover_prospects` | AI-powered prospect discovery | 15-30s |
68
- | `get_pre_brief` | Pre-meeting brief with talk track | 10-20s |
69
- | `get_syndication_status` | CRM syndication status | <200ms |
70
- | `trigger_syndication` | Trigger CRM syndication | 5-15s |
71
- | `batch_fit_score` | Batch score up to 50 companies | <500ms |
70
+ | `get_persona_profile` | Look up who you're actually talking to — what they care about at 7 AM, why they'll say no, and exactly how to open | <50ms |
71
+ | `get_messaging_framework` | Get the exact words to use MBTI-adapted so the analytical CTO and the results-driven VP Sales get different versions | <50ms |
72
+ | `get_competitive_positioning` | Battlecard for a specific competitor — where you win, where they'll attack, which questions to plant | <100ms |
73
+ | `get_evaluation_criteria` | Scores how well you match what a buyer needs — across pain coverage, outcome clarity, capability fit, and 3 more dimensions | <100ms |
74
+
75
+ ### Account & Pipeline
76
+
77
+ | Tool | What It Does | Latency |
78
+ |------|-------------|---------|
79
+ | `get_account_plan` | Builds the account plan you'd normally spend a weekend on — stakeholder map, MEDDICC gaps, and the unified story | <100ms |
80
+ | `get_icp_profile` | Returns everything Andru knows about your ideal customer — all 5 intelligence layers and the patterns that predict churn | <100ms |
81
+ | `get_capability_profile` | Machine-readable snapshot of what your product does and who it's for — designed for buyer-side evaluation | <50ms |
82
+
83
+ ### Prospecting & Meetings
84
+
85
+ | Tool | What It Does | Latency |
86
+ |------|-------------|---------|
87
+ | `discover_prospects` | Finds real companies showing the same buying signals your best customers showed — searches the web live | 15-30s |
88
+ | `get_pre_brief` | Pre-call prep so you don't walk in cold — talk track, discovery questions, anticipated objections, and the one thing to get done | 10-20s |
89
+
90
+ ### CRM Syndication
91
+
92
+ | Tool | What It Does | Latency |
93
+ |------|-------------|---------|
94
+ | `get_syndication_status` | Shows whether your CRM has your current intelligence or is running on stale data | <200ms |
95
+ | `trigger_syndication` | Pushes latest intelligence into your CRM — detects which platforms are out of date and updates only what's stale | 5-15s |
96
+
97
+ ## Cold-Start Support
98
+
99
+ 7 tools work without any pipeline data — just describe your product:
100
+
101
+ - `get_icp_fit_score`, `get_persona_profile`, `get_messaging_framework`, `get_competitive_positioning`, `get_evaluation_criteria`, `classify_opportunity`, `get_disqualification_signals`
102
+
103
+ Pass `productDescription`, `vertical`, and `targetRole` parameters, or let Claude infer them from your conversation. The tools use pre-built buyer intelligence (5 named buyer personas, 3 vertical segment profiles) to deliver results immediately.
104
+
105
+ Run a full Pure Signal ICP pipeline at [app.andru.ai](https://app.andru.ai) for intelligence tuned to your specific product and market.
72
106
 
73
107
  ## Available Resources
74
108
 
75
109
  | URI | Description |
76
110
  |-----|-------------|
77
- | `andru://icp/profile` | Canonical ICP profile |
78
- | `andru://pipeline/runs` | Pipeline run summaries |
79
- | `andru://accounts` | Account and prospect data |
111
+ | `andru://icp/profile` | The complete profile of the companies you should actually be selling to — 5 intelligence layers, 7 critical questions, and churn prediction patterns |
112
+ | `andru://pipeline/runs` | All your pipeline runs and what each one produced — ICP layers, lead gen strategy, account plans, and deck output |
113
+ | `andru://accounts` | Your tracked accounts — tier, pipeline value, stakeholder count, and account plan status |
80
114
 
81
115
  ## How It Works
82
116
 
package/glama.json CHANGED
@@ -1,4 +1,5 @@
1
1
  {
2
2
  "$schema": "https://glama.ai/mcp/schemas/server.json",
3
+ "description": "Buyer intelligence for technical founders who sell to enterprises — know who to target, what to say, and when to walk away.",
3
4
  "maintainers": ["geter-andru"]
4
5
  }
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "mcp-server-andru-intelligence",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "mcpName": "io.github.geter-andru/andru-intelligence",
5
- "description": "Andru Revenue Intelligence MCP ServerICP scoring, persona profiling, competitive positioning, and buyer intelligence for technical SaaS founders.",
5
+ "description": "Buyer intelligence for technical founders who sell to enterprises know who to target, what to say, and when to walk away. 15 MCP tools: ICP scoring, persona lookup, battlecards, deal classification, prospect discovery.",
6
6
  "type": "module",
7
7
  "bin": {
8
8
  "andru-mcp": "./src/index.js"
package/server.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.geter-andru/andru-intelligence",
4
4
  "title": "Andru Revenue Intelligence",
5
- "description": "Revenue intelligence for SaaS founders: ICP scoring, persona profiling, competitive positioning.",
6
- "version": "0.1.1",
5
+ "description": "Buyer intelligence for technical founders who sell to enterprises — know who to target, what to say, and when to walk away. 15 tools: ICP scoring, persona lookup, battlecards, deal classification, prospect discovery.",
6
+ "version": "0.2.0",
7
7
  "websiteUrl": "https://andru.ai",
8
8
  "repository": {
9
9
  "url": "https://github.com/geter-andru/mcp-server-andru-intelligence.git",
@@ -13,7 +13,7 @@
13
13
  {
14
14
  "registryType": "npm",
15
15
  "identifier": "mcp-server-andru-intelligence",
16
- "version": "0.1.1",
16
+ "version": "0.2.0",
17
17
  "transport": {
18
18
  "type": "stdio"
19
19
  },
package/src/catalog.js CHANGED
@@ -6,19 +6,41 @@
6
6
  * Tool *execution* still proxies to the Andru API.
7
7
  *
8
8
  * Source of truth: backend/src/mcp/tools/*.js + backend/src/mcp/resources/*.js
9
+ *
10
+ * v0.2.0 — Founder-pain descriptions + cold-start product context params
9
11
  */
10
12
 
13
+ // ── Cold-Start Product Context Params ───────────────────────────────────────
14
+ // Added to 7 tools that support cold-start (no pipeline data required when these are provided).
15
+ // Claude reads inputSchema.description before calling tools — these descriptions
16
+ // guide Claude to infer from conversation context or ask the user.
17
+
18
+ const COLD_START_PARAMS = {
19
+ productDescription: {
20
+ type: 'string',
21
+ description: 'A brief description of what the user\'s product does and who it\'s for. Infer this from the conversation if the user has already described their product. If the user hasn\'t mentioned their product yet, ask them: "What does your product do, and who do you sell to?" before calling this tool.',
22
+ },
23
+ vertical: {
24
+ type: 'string',
25
+ description: 'The industry the user sells into (e.g., "fintech", "healthcare", "defense"). Infer from conversation context — the user\'s product description, company name, or the companies they\'re asking about. If unclear, ask.',
26
+ },
27
+ targetRole: {
28
+ type: 'string',
29
+ description: 'The buyer role being evaluated (e.g., "CFO", "CTO", "VP Sales"). Infer from context — often explicit in the user\'s question. If not mentioned, default to the most senior relevant role for their vertical.',
30
+ },
31
+ };
32
+
11
33
  // ── 15 Tools ────────────────────────────────────────────────────────────────
12
34
 
13
35
  export const tools = [
14
36
  {
15
37
  name: 'get_icp_fit_score',
16
- description: 'Score a company against your ICP criteria. Returns a score (0-100), tier (A/B/C/D), and breakdown across 5 dimensions: firmographics, technographics, pain points, budget fit, and behavioral signals. No AI calls pure algorithmic scoring.',
38
+ description: 'Tells you in seconds whether the company you\'re thinking about is worth your time scores them against who actually buys from you and why, across 5 dimensions. No AI calls, instant results.',
17
39
  inputSchema: {
18
40
  type: 'object',
19
41
  properties: {
20
- companyName: { type: 'string', description: 'Company name' },
21
- domain: { type: 'string', description: 'Company domain' },
42
+ companyName: { type: 'string', description: 'Company name to evaluate' },
43
+ domain: { type: 'string', description: 'Company website domain' },
22
44
  industry: { type: 'string', description: 'Industry vertical' },
23
45
  employeeCount: { type: 'number', description: 'Number of employees' },
24
46
  revenue: { type: 'string', description: 'Revenue range (e.g., "$1M-$5M")' },
@@ -26,31 +48,33 @@ export const tools = [
26
48
  techStack: {
27
49
  type: 'array',
28
50
  items: { type: 'string' },
29
- description: 'Technologies used',
51
+ description: 'Technologies the company uses',
30
52
  },
31
53
  painPoints: {
32
54
  type: 'array',
33
55
  items: { type: 'string' },
34
- description: 'Known pain points or challenges',
56
+ description: 'Known pain points or challenges they face',
35
57
  },
36
58
  triggerEvents: {
37
59
  type: 'array',
38
60
  items: { type: 'string' },
39
61
  description: 'Recent trigger events (e.g., "just raised Series B", "new CTO hired")',
40
62
  },
63
+ ...COLD_START_PARAMS,
41
64
  },
42
65
  },
43
66
  },
44
67
 
45
68
  {
46
69
  name: 'get_persona_profile',
47
- description: 'Find the best-matching buyer persona from your ICP for a given job title, industry, and company size. Returns persona details including MBTI distribution, pain points, empathy map, and messaging angles.',
70
+ description: 'Look up who you\'re actually talking to before the call what they care about at 7 AM, why they\'ll say no, and exactly how to open. Returns persona details including MBTI distribution, empathy map, and messaging angles.',
48
71
  inputSchema: {
49
72
  type: 'object',
50
73
  properties: {
51
- title: { type: 'string', description: 'Job title (e.g., "VP Engineering", "CTO", "Head of Sales")' },
52
- industry: { type: 'string', description: 'Industry context' },
53
- companySize: { type: 'string', description: 'Company size range' },
74
+ title: { type: 'string', description: 'Job title of the person you\'re meeting (e.g., "VP Engineering", "CTO", "Head of Sales")' },
75
+ industry: { type: 'string', description: 'Their industry' },
76
+ companySize: { type: 'string', description: 'Their company size range' },
77
+ ...COLD_START_PARAMS,
54
78
  },
55
79
  required: ['title'],
56
80
  },
@@ -58,16 +82,16 @@ export const tools = [
58
82
 
59
83
  {
60
84
  name: 'get_disqualification_signals',
61
- description: 'Classify an opportunity using 3-layer scoring: ICP fit score, anti-pattern matching, and learned churn patterns. Returns STRONG/MODERATE/MARGINAL/ANTI_PATTERN classification with reasoning chain.',
85
+ description: 'Find out if you\'re wasting time on a deal that won\'t close. Runs the company through three layers of signal — ICP fit, anti-pattern matching, and churn patterns and tells you whether to keep investing or walk away.',
62
86
  inputSchema: {
63
87
  type: 'object',
64
88
  properties: {
65
- companyName: { type: 'string', description: 'Company name' },
89
+ companyName: { type: 'string', description: 'Company name to check' },
66
90
  industry: { type: 'string', description: 'Industry' },
67
91
  employeeCount: { type: 'number', description: 'Number of employees' },
68
92
  revenue: { type: 'string', description: 'Revenue range' },
69
93
  geography: { type: 'string', description: 'Location' },
70
- techStack: { type: 'array', items: { type: 'string' }, description: 'Technologies used' },
94
+ techStack: { type: 'array', items: { type: 'string' }, description: 'Technologies they use' },
71
95
  dealContext: {
72
96
  type: 'object',
73
97
  properties: {
@@ -78,13 +102,14 @@ export const tools = [
78
102
  },
79
103
  description: 'Current deal context (if applicable)',
80
104
  },
105
+ ...COLD_START_PARAMS,
81
106
  },
82
107
  },
83
108
  },
84
109
 
85
110
  {
86
111
  name: 'get_messaging_framework',
87
- description: 'Get messaging framework for a specific segment, funnel stage, or persona type. Returns value props, MBTI-adapted message templates, objection responses, voice variants, and content recommendations.',
112
+ description: 'Get the exact words to use — for a specific buyer type, channel, and funnel stage. MBTI-adapted so the analytical CTO and the results-driven VP Sales get different versions. Returns value props, objection responses, voice variants, and outbound templates.',
88
113
  inputSchema: {
89
114
  type: 'object',
90
115
  properties: {
@@ -92,22 +117,23 @@ export const tools = [
92
117
  stage: {
93
118
  type: 'string',
94
119
  enum: ['awareness', 'consideration', 'decision'],
95
- description: 'Buyer journey stage',
120
+ description: 'Where the buyer is in their journey',
96
121
  },
97
122
  channel: { type: 'string', description: 'Channel (email, linkedin, phone, etc.)' },
98
- personaType: { type: 'string', description: 'Target persona title' },
123
+ personaType: { type: 'string', description: 'Target buyer title' },
99
124
  mbtiCategory: {
100
125
  type: 'string',
101
126
  enum: ['Analytical', 'Driver', 'Expressive', 'Amiable'],
102
127
  description: 'MBTI communication category for message adaptation',
103
128
  },
129
+ ...COLD_START_PARAMS,
104
130
  },
105
131
  },
106
132
  },
107
133
 
108
134
  {
109
135
  name: 'get_competitive_positioning',
110
- description: 'Get competitive positioning intelligence against a specific competitor. Returns differentiation points, landmines to avoid, winning themes, and battlecard data.',
136
+ description: 'Gives you the battlecard for a specific competitor where you win, where they\'ll attack, which questions to plant in the buyer\'s mind, and which landmines to avoid.',
111
137
  inputSchema: {
112
138
  type: 'object',
113
139
  properties: {
@@ -121,6 +147,7 @@ export const tools = [
121
147
  type: 'string',
122
148
  description: 'Additional context (e.g., "enterprise deal", "competing on price")',
123
149
  },
150
+ ...COLD_START_PARAMS,
124
151
  },
125
152
  required: ['competitorName'],
126
153
  },
@@ -128,7 +155,7 @@ export const tools = [
128
155
 
129
156
  {
130
157
  name: 'classify_opportunity',
131
- description: 'Classify an opportunity with full analysis: ICP fit score, persona match, disqualification check, risk assessment, and recommended next actions. Combines multiple engines for a comprehensive assessment.',
158
+ description: 'Run a full read on a deal in one call — fit score, persona match, risk flags, disqualification check, and a verdict: pursue, pause, or walk away. Combines multiple scoring engines for a comprehensive assessment.',
132
159
  inputSchema: {
133
160
  type: 'object',
134
161
  properties: {
@@ -145,6 +172,7 @@ export const tools = [
145
172
  triggerEvents: { type: 'array', items: { type: 'string' }, description: 'Trigger events' },
146
173
  championIdentified: { type: 'boolean', description: 'Has a champion been identified?' },
147
174
  competitorInvolved: { type: 'string', description: 'Known competitor in the deal' },
175
+ ...COLD_START_PARAMS,
148
176
  },
149
177
  required: ['companyName'],
150
178
  },
@@ -152,7 +180,7 @@ export const tools = [
152
180
 
153
181
  {
154
182
  name: 'get_account_plan',
155
- description: 'Get a structured account plan for a target company. Returns stakeholder map, value propositions, capability gaps, meeting prep, MEDDICC assessment, and CRM update package. Requires an existing Pure Signal ICP pipeline.',
183
+ description: 'Builds the account plan you\'d normally spend a weekend on stakeholder map, what each person needs to hear, MEDDICC gaps, and the unified story across the buying committee.',
156
184
  inputSchema: {
157
185
  type: 'object',
158
186
  properties: {
@@ -187,7 +215,7 @@ export const tools = [
187
215
 
188
216
  {
189
217
  name: 'get_capability_profile',
190
- description: "Get a structured capability profile for the authenticated user's product. Returns capabilities, target customer, verified outcomes, trust signals, pricing model, and integrations. Includes values-based alignment scoring. Designed for buyer-side agent evaluation.",
218
+ description: 'Returns a machine-readable snapshot of what your product actually does and who it\'s for capabilities, verified outcomes, trust signals, pricing model, and integrations. Designed for buyer-side agent evaluation.',
191
219
  inputSchema: {
192
220
  type: 'object',
193
221
  properties: {
@@ -200,29 +228,30 @@ export const tools = [
200
228
 
201
229
  {
202
230
  name: 'get_evaluation_criteria',
203
- description: "Evaluate seller-buyer alignment across Andru's 6 values: Empathy (pain point coverage), Clarity (outcome specificity), Authenticity (claim verification), Focus (feature relevance), Accountability (outcome tracking), Alignment (mutual investment). Returns scores 0-100 per dimension plus overall.",
231
+ description: 'Scores how well you actually match what this buyer needs across pain coverage, outcome clarity, capability fit, and 3 more dimensions. Returns 0-100 per dimension plus overall alignment score.',
204
232
  inputSchema: {
205
233
  type: 'object',
206
234
  properties: {
207
235
  buyerPainPoints: {
208
236
  type: 'array',
209
237
  items: { type: 'string' },
210
- description: "Buyer's known pain points",
238
+ description: 'Pain points the buyer has expressed or you expect them to have',
211
239
  },
212
- buyerIndustry: { type: 'string', description: "Buyer's industry" },
240
+ buyerIndustry: { type: 'string', description: 'Buyer\'s industry' },
213
241
  buyerSize: { type: 'string', description: 'Buyer company size' },
214
242
  requiredCapabilities: {
215
243
  type: 'array',
216
244
  items: { type: 'string' },
217
- description: 'Capabilities the buyer needs',
245
+ description: 'Capabilities the buyer needs from a solution',
218
246
  },
247
+ ...COLD_START_PARAMS,
219
248
  },
220
249
  },
221
250
  },
222
251
 
223
252
  {
224
253
  name: 'get_icp_profile',
225
- description: 'Get the full Pure Signal ICP profile. Returns all 5 intelligence layers (Product-Market, Role, Psychological, Timing, Channel), the seven critical buyer questions, and anti-patterns/disqualifiers. Optionally filter to specific layers.',
254
+ 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.',
226
255
  inputSchema: {
227
256
  type: 'object',
228
257
  properties: {
@@ -231,15 +260,15 @@ export const tools = [
231
260
  items: { type: 'number', enum: [1, 2, 3, 4, 5] },
232
261
  description: 'Specific layers to include (1-5). Omit for all layers.',
233
262
  },
234
- includeSevenAnswers: { type: 'boolean', description: 'Include seven answers (default: true)' },
235
- includeAntiPatterns: { type: 'boolean', description: 'Include anti-patterns (default: true)' },
263
+ includeSevenAnswers: { type: 'boolean', description: 'Include seven critical buyer answers (default: true)' },
264
+ includeAntiPatterns: { type: 'boolean', description: 'Include anti-patterns and churn predictors (default: true)' },
236
265
  },
237
266
  },
238
267
  },
239
268
 
240
269
  {
241
270
  name: 'discover_prospects',
242
- description: 'Discover companies that match your ICP using AI-powered web search. Returns a list of prospects with confidence scores and evidence. NOTE: This is an expensive operation that calls Claude API with web search — it may take 15-30 seconds and consumes AI credits.',
271
+ description: 'Finds real companies that look like your best customers searches the web for companies showing the same buying signals your winners showed. Takes 15-30 seconds. Works without prior pipeline data.',
243
272
  inputSchema: {
244
273
  type: 'object',
245
274
  properties: {
@@ -249,19 +278,19 @@ export const tools = [
249
278
  },
250
279
  productDescription: {
251
280
  type: 'string',
252
- description: 'Description of your product or service',
281
+ description: 'What your product does and who it\'s for. Infer from conversation context if the user has already described their product.',
253
282
  },
254
283
  coreCapability: {
255
284
  type: 'string',
256
- description: 'Your core capability or "pure signal" — the single most important thing your product does',
285
+ description: 'The single most important thing your product does — the core capability that makes customers buy',
257
286
  },
258
287
  industry: {
259
288
  type: 'string',
260
- description: 'Target industry to search within (optional)',
289
+ description: 'Target industry to search within',
261
290
  },
262
291
  targetMarket: {
263
292
  type: 'string',
264
- description: 'Target market segment (optional, e.g., "Series A SaaS companies")',
293
+ description: 'Target market segment (e.g., "Series A SaaS companies")',
265
294
  },
266
295
  },
267
296
  required: ['companyName', 'productDescription'],
@@ -270,17 +299,17 @@ export const tools = [
270
299
 
271
300
  {
272
301
  name: 'get_pre_brief',
273
- description: 'Generate a pre-meeting brief with talk track, discovery questions, objection prep, and contextual intelligence. Provide an eventId for calendar-linked briefs, or provide meeting context directly. NOTE: This calls the AI API and consumes credits.',
302
+ description: 'Writes your pre-call prep so you don\'t walk in cold — talk track, discovery questions tuned to this buyer, anticipated objections, and the one thing you need to get done in this meeting. Requires a calendar event ID.',
274
303
  inputSchema: {
275
304
  type: 'object',
276
305
  properties: {
277
306
  eventId: {
278
307
  type: 'string',
279
- description: 'Calendar event ID (from Andru calendar integration). If provided, pulls all context automatically.',
308
+ description: 'Calendar event ID (from Andru calendar integration). Pulls all context automatically.',
280
309
  },
281
310
  dealId: {
282
311
  type: 'string',
283
- description: 'Associated deal ID for additional deal intelligence (optional)',
312
+ description: 'Associated deal ID for additional deal intelligence',
284
313
  },
285
314
  briefType: {
286
315
  type: 'string',
@@ -293,7 +322,7 @@ export const tools = [
293
322
 
294
323
  {
295
324
  name: 'get_syndication_status',
296
- description: 'Check the sync status of your ICP intelligence across connected CRM platforms (HubSpot, Salesforce, Pipedrive). Shows which platforms are up to date, which are stale, and the last sync time for each.',
325
+ description: 'Shows whether your CRM has your current intelligence or is running on stale data. Checks sync status across HubSpot, Salesforce, and Pipedrive.',
297
326
  inputSchema: {
298
327
  type: 'object',
299
328
  properties: {},
@@ -302,14 +331,14 @@ export const tools = [
302
331
 
303
332
  {
304
333
  name: 'trigger_syndication',
305
- description: 'Manually trigger ICP intelligence syndication to your connected CRM platforms (HubSpot, Salesforce, Pipedrive). Detects which platforms are stale and pushes updated ICP data. Use get_syndication_status first to check which platforms need updating.',
334
+ description: 'Pushes your latest intelligence into your CRM detects which platforms are out of date and updates only what\'s stale. Use get_syndication_status first to see what needs updating.',
306
335
  inputSchema: {
307
336
  type: 'object',
308
337
  properties: {
309
338
  platforms: {
310
339
  type: 'array',
311
340
  items: { type: 'string' },
312
- description: 'Optional filter — only sync these platforms (e.g., ["hubspot"]). If omitted, syncs all stale platforms.',
341
+ description: 'Only sync these platforms (e.g., ["hubspot"]). If omitted, syncs all stale platforms.',
313
342
  },
314
343
  },
315
344
  },
@@ -317,7 +346,7 @@ export const tools = [
317
346
 
318
347
  {
319
348
  name: 'batch_fit_score',
320
- description: 'Score multiple companies against ICP criteria in a single batch. Returns individual scores plus aggregate statistics. Max 50 companies per call.',
349
+ description: 'Score up to 50 companies at once gives each a tier and score so you can rank a list in under a second. Returns individual scores plus aggregate statistics.',
321
350
  inputSchema: {
322
351
  type: 'object',
323
352
  properties: {
@@ -351,19 +380,19 @@ export const resources = [
351
380
  {
352
381
  uri: 'andru://icp/profile',
353
382
  name: 'ICP Profile',
354
- description: 'Your canonical Ideal Customer Profile the Pure Signal ICP output including all 5 layers of intelligence, 7 critical answers, and anti-patterns.',
383
+ description: 'The complete profile of the companies you should actually be selling to 5 intelligence layers, 7 critical buyer questions, and the patterns that predict churn.',
355
384
  mimeType: 'application/json',
356
385
  },
357
386
  {
358
387
  uri: 'andru://pipeline/runs',
359
388
  name: 'Pipeline Runs',
360
- description: 'Your GTM pipeline runs lists all completed pipeline runs with their stage outputs (ICP, Lead Gen Strategy, Account Plans, Overview Deck).',
389
+ description: 'All your pipeline runs and what each one produced ICP layers, lead gen strategy, account plans, and deck output.',
361
390
  mimeType: 'application/json',
362
391
  },
363
392
  {
364
393
  uri: 'andru://accounts',
365
394
  name: 'Account Plans',
366
- description: 'Your account planscompany summaries, tiers, pipeline values, stakeholder counts, and generation status.',
395
+ description: 'Your tracked accountstier, pipeline value, stakeholder count, and account plan status.',
367
396
  mimeType: 'application/json',
368
397
  },
369
398
  ];
@@ -1 +0,0 @@
1
- ghu_PPoVMdFJfkpyYgNmsO0D5WrhoIfD4f3z9hpU
@@ -1 +0,0 @@
1
- {"token":"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJtY3AtcmVnaXN0cnkiLCJleHAiOjE3NzEwNTc1NDYsIm5iZiI6MTc3MTA1NzI0NiwiaWF0IjoxNzcxMDU3MjQ2LCJhdXRoX21ldGhvZCI6ImdpdGh1Yi1hdCIsImF1dGhfbWV0aG9kX3N1YiI6ImdldGVyLWFuZHJ1IiwicGVybWlzc2lvbnMiOlt7ImFjdGlvbiI6InB1Ymxpc2giLCJyZXNvdXJjZSI6ImlvLmdpdGh1Yi5nZXRlci1hbmRydS8qIn1dfQ.MjGfwrhMWeXX9hNgh9AlazUi9LqmueKjsYZwlqwxeWLqoyjSTgT-fSAueR-_AnabmIo1mnGOG_k6R1pf4EnzAA","expires_at":1771057546}