mcp-server-andru-intelligence 0.1.3 → 1.0.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 +74 -26
- package/package.json +15 -3
- package/src/catalog.js +70 -41
- package/src/client.js +1 -1
- package/src/index.js +2 -2
- package/src/server.js +1 -1
- package/glama.json +0 -4
- package/server.json +0 -36
package/README.md
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
# Andru Revenue Intelligence MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
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
|
|
|
7
9
|
```bash
|
|
8
|
-
npm install -g
|
|
10
|
+
npm install -g mcp-server-andru-intelligence
|
|
9
11
|
```
|
|
10
12
|
|
|
11
13
|
Or run directly:
|
|
12
14
|
|
|
13
15
|
```bash
|
|
14
|
-
ANDRU_API_KEY=sk_live_... npx
|
|
16
|
+
ANDRU_API_KEY=sk_live_... npx mcp-server-andru-intelligence
|
|
15
17
|
```
|
|
16
18
|
|
|
17
19
|
## Configuration
|
|
@@ -23,7 +25,7 @@ ANDRU_API_KEY=sk_live_... npx @andru/mcp-server-intelligence
|
|
|
23
25
|
| `ANDRU_API_KEY` | Yes | — | Your Andru Platform API key |
|
|
24
26
|
| `ANDRU_API_URL` | No | `https://api.andru.ai` | API base URL |
|
|
25
27
|
|
|
26
|
-
Get your API key at [
|
|
28
|
+
Get your API key at [platform.andru-ai.com/settings/api-keys](https://platform.andru-ai.com/settings/api-keys).
|
|
27
29
|
|
|
28
30
|
### Claude Desktop
|
|
29
31
|
|
|
@@ -34,7 +36,7 @@ Add to your `claude_desktop_config.json`:
|
|
|
34
36
|
"mcpServers": {
|
|
35
37
|
"andru-intelligence": {
|
|
36
38
|
"command": "npx",
|
|
37
|
-
"args": ["
|
|
39
|
+
"args": ["mcp-server-andru-intelligence"],
|
|
38
40
|
"env": {
|
|
39
41
|
"ANDRU_API_KEY": "sk_live_your_key_here"
|
|
40
42
|
}
|
|
@@ -46,37 +48,69 @@ Add to your `claude_desktop_config.json`:
|
|
|
46
48
|
### Claude Code
|
|
47
49
|
|
|
48
50
|
```bash
|
|
49
|
-
claude mcp add andru-intelligence npx
|
|
51
|
+
claude mcp add andru-intelligence npx mcp-server-andru-intelligence \
|
|
50
52
|
--env ANDRU_API_KEY=sk_live_your_key_here
|
|
51
53
|
```
|
|
52
54
|
|
|
53
55
|
## Available Tools
|
|
54
56
|
|
|
55
|
-
|
|
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 |
|
|
69
|
+
|------|-------------|---------|
|
|
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 |
|
|
56
93
|
|------|-------------|---------|
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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 |
|
|
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 [platform.andru-ai.com](https://platform.andru-ai.com) 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` |
|
|
78
|
-
| `andru://pipeline/runs` |
|
|
79
|
-
| `andru://accounts` |
|
|
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
|
|
|
@@ -91,9 +125,23 @@ Claude Desktop/Code → MCP Server (stdio) → Andru API (HTTPS)
|
|
|
91
125
|
Andru also supports the Agent-to-Agent (A2A) protocol for direct agent-to-agent communication. The AgentCard is available at:
|
|
92
126
|
|
|
93
127
|
```
|
|
94
|
-
https://
|
|
128
|
+
https://platform.andru-ai.com/.well-known/agent.json
|
|
95
129
|
```
|
|
96
130
|
|
|
131
|
+
## Also Available As
|
|
132
|
+
|
|
133
|
+
**Chrome Extension** — Sales intelligence on LinkedIn profiles, Gmail compose, and any company page. [Install from Chrome Web Store](https://platform.andru-ai.com/tools/chrome-extension).
|
|
134
|
+
|
|
135
|
+
## Intelligence Briefs
|
|
136
|
+
|
|
137
|
+
Free signal reads for the questions technical founders ask at 11 PM:
|
|
138
|
+
|
|
139
|
+
- [I've Done 30 Customer Interviews and Still Can't Define My ICP](https://platform.andru-ai.com/intelligence/customer-interviews-icp)
|
|
140
|
+
- [I Know My ICP But My Outreach Still Isn't Working](https://platform.andru-ai.com/intelligence/icp-outreach-not-working)
|
|
141
|
+
- [My Pipeline Is Full of Companies That Like Us But Nobody's Buying Urgently](https://platform.andru-ai.com/intelligence/pipeline-no-urgency)
|
|
142
|
+
- [As a Technical Founder, What Am I Getting Wrong About Sales?](https://platform.andru-ai.com/intelligence/technical-founder-sales-mistakes)
|
|
143
|
+
- [Why Does My Messaging Fall Flat Even When I'm Talking to the Right Companies?](https://platform.andru-ai.com/intelligence/messaging-falls-flat)
|
|
144
|
+
|
|
97
145
|
## License
|
|
98
146
|
|
|
99
147
|
MIT
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-server-andru-intelligence",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"mcpName": "io.github.geter-andru/andru-intelligence",
|
|
5
|
-
"description": "
|
|
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"
|
|
@@ -36,5 +36,17 @@
|
|
|
36
36
|
"homepage": "https://andru.ai",
|
|
37
37
|
"bugs": {
|
|
38
38
|
"url": "https://github.com/geter-andru/mcp-server-andru-intelligence/issues"
|
|
39
|
-
}
|
|
39
|
+
},
|
|
40
|
+
"publishConfig": {
|
|
41
|
+
"access": "public"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"start": "node src/index.js",
|
|
45
|
+
"prepublishOnly": "node --input-type=module -e \"import {tools} from './src/catalog.js'; if(!tools?.length) {console.error('No tools in catalog'); process.exit(1)} console.log('Catalog OK:', tools.length, 'tools')\""
|
|
46
|
+
},
|
|
47
|
+
"files": [
|
|
48
|
+
"src/",
|
|
49
|
+
"README.md",
|
|
50
|
+
"LICENSE"
|
|
51
|
+
]
|
|
40
52
|
}
|
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: '
|
|
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
|
|
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: '
|
|
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: '
|
|
53
|
-
companySize: { type: 'string', description: '
|
|
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: '
|
|
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
|
|
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
|
|
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: '
|
|
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
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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:
|
|
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:
|
|
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:
|
|
238
|
+
description: 'Pain points the buyer has expressed or you expect them to have',
|
|
211
239
|
},
|
|
212
|
-
buyerIndustry: { type: 'string', description:
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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
|
|
289
|
+
description: 'Target industry to search within',
|
|
261
290
|
},
|
|
262
291
|
targetMarket: {
|
|
263
292
|
type: 'string',
|
|
264
|
-
description: 'Target market segment (
|
|
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: '
|
|
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).
|
|
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
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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
|
|
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: '
|
|
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: '
|
|
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
|
|
395
|
+
description: 'Your tracked accounts — tier, pipeline value, stakeholder count, and account plan status.',
|
|
367
396
|
mimeType: 'application/json',
|
|
368
397
|
},
|
|
369
398
|
];
|
package/src/client.js
CHANGED
package/src/index.js
CHANGED
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
* ANDRU_API_URL (optional) — API base URL (default: https://api.andru.ai)
|
|
12
12
|
*
|
|
13
13
|
* Usage:
|
|
14
|
-
* ANDRU_API_KEY=sk_live_... npx
|
|
14
|
+
* ANDRU_API_KEY=sk_live_... npx mcp-server-andru-intelligence
|
|
15
15
|
*
|
|
16
16
|
* Claude Desktop config (claude_desktop_config.json):
|
|
17
17
|
* {
|
|
18
18
|
* "mcpServers": {
|
|
19
19
|
* "andru-intelligence": {
|
|
20
20
|
* "command": "npx",
|
|
21
|
-
* "args": ["
|
|
21
|
+
* "args": ["mcp-server-andru-intelligence"],
|
|
22
22
|
* "env": {
|
|
23
23
|
* "ANDRU_API_KEY": "sk_live_your_key_here"
|
|
24
24
|
* }
|
package/src/server.js
CHANGED
package/glama.json
DELETED
package/server.json
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
-
"name": "io.github.geter-andru/andru-intelligence",
|
|
4
|
-
"title": "Andru Revenue Intelligence",
|
|
5
|
-
"description": "Revenue intelligence for SaaS founders: ICP scoring, persona profiling, competitive positioning.",
|
|
6
|
-
"version": "0.1.1",
|
|
7
|
-
"websiteUrl": "https://andru.ai",
|
|
8
|
-
"repository": {
|
|
9
|
-
"url": "https://github.com/geter-andru/mcp-server-andru-intelligence.git",
|
|
10
|
-
"source": "github"
|
|
11
|
-
},
|
|
12
|
-
"packages": [
|
|
13
|
-
{
|
|
14
|
-
"registryType": "npm",
|
|
15
|
-
"identifier": "mcp-server-andru-intelligence",
|
|
16
|
-
"version": "0.1.1",
|
|
17
|
-
"transport": {
|
|
18
|
-
"type": "stdio"
|
|
19
|
-
},
|
|
20
|
-
"environmentVariables": [
|
|
21
|
-
{
|
|
22
|
-
"name": "ANDRU_API_KEY",
|
|
23
|
-
"description": "Your Andru Platform API key. Get one at https://app.andru.ai/settings/api-keys",
|
|
24
|
-
"isRequired": true,
|
|
25
|
-
"isSecret": true
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"name": "ANDRU_API_URL",
|
|
29
|
-
"description": "Andru API base URL (default: https://api.andru.ai)",
|
|
30
|
-
"isRequired": false,
|
|
31
|
-
"default": "https://api.andru.ai"
|
|
32
|
-
}
|
|
33
|
-
]
|
|
34
|
-
}
|
|
35
|
-
]
|
|
36
|
-
}
|