@loopops/mcp-server 3.53.0 → 3.54.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/dist/index.js +2 -0
- package/dist/tools/prospecting.d.ts +19 -0
- package/dist/tools/prospecting.js +52 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -21,6 +21,7 @@ import { registerAccountCurateTools } from "./tools/account-curate.js";
|
|
|
21
21
|
import { registerCpqTools } from "./tools/cpq.js";
|
|
22
22
|
import { registerDealPrepTools } from "./tools/deal-prep.js";
|
|
23
23
|
import { registerPlanTools } from "./tools/plan.js";
|
|
24
|
+
import { registerProspectingTools } from "./tools/prospecting.js";
|
|
24
25
|
import { registerSfdcSyncTools } from "./tools/sfdc-sync.js";
|
|
25
26
|
import { registerTalTools } from "./tools/tal.js";
|
|
26
27
|
import { parseSkillModesResponse } from "./skills/loader.js";
|
|
@@ -77,6 +78,7 @@ registerCpqTools(server, allowedSkills);
|
|
|
77
78
|
registerDealPrepTools(server, allowedSkills);
|
|
78
79
|
registerPlanTools(server, allowedSkills);
|
|
79
80
|
registerAccountCurateTools(server, allowedSkills);
|
|
81
|
+
registerProspectingTools(server, allowedSkills);
|
|
80
82
|
// Skills framework — fetch role-visible skills from the Loop API and
|
|
81
83
|
// register each as a server-provided MCP prompt. Surfaces in the
|
|
82
84
|
// client's `/` menu and bundles (system prompt + tool emphasis +
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
/**
|
|
3
|
+
* Prospecting tools — surface for the `/prospecting` skill.
|
|
4
|
+
*
|
|
5
|
+
* The skill bundles two new context/read tools with existing Engage
|
|
6
|
+
* review tools (my_sequences, review_sequence, approve_sequence,
|
|
7
|
+
* reject_sequence) + AM context tools (account_show,
|
|
8
|
+
* walk_account_hierarchy, score_explain).
|
|
9
|
+
*
|
|
10
|
+
* NOT YET BUILT: generate_sequence_for_account — manual sequence
|
|
11
|
+
* generation. The skill's playbook describes how to handle the gap
|
|
12
|
+
* (defer to Signal Scanner, or ask ops to add account to the
|
|
13
|
+
* signal_scanner_targets TAL). Lands in a follow-on PR.
|
|
14
|
+
*
|
|
15
|
+
* NOT YET BUILT: Gong Engage activation. approve_sequence today
|
|
16
|
+
* writes to Postgres only; Gong push lands in a separate infra PR
|
|
17
|
+
* with no UX change required.
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerProspectingTools(server: McpServer, allowed: Set<string>): void;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { trpcQuery } from "../api-client.js";
|
|
3
|
+
import { safeTool } from "./_helpers.js";
|
|
4
|
+
/**
|
|
5
|
+
* Prospecting tools — surface for the `/prospecting` skill.
|
|
6
|
+
*
|
|
7
|
+
* The skill bundles two new context/read tools with existing Engage
|
|
8
|
+
* review tools (my_sequences, review_sequence, approve_sequence,
|
|
9
|
+
* reject_sequence) + AM context tools (account_show,
|
|
10
|
+
* walk_account_hierarchy, score_explain).
|
|
11
|
+
*
|
|
12
|
+
* NOT YET BUILT: generate_sequence_for_account — manual sequence
|
|
13
|
+
* generation. The skill's playbook describes how to handle the gap
|
|
14
|
+
* (defer to Signal Scanner, or ask ops to add account to the
|
|
15
|
+
* signal_scanner_targets TAL). Lands in a follow-on PR.
|
|
16
|
+
*
|
|
17
|
+
* NOT YET BUILT: Gong Engage activation. approve_sequence today
|
|
18
|
+
* writes to Postgres only; Gong push lands in a separate infra PR
|
|
19
|
+
* with no UX change required.
|
|
20
|
+
*/
|
|
21
|
+
export function registerProspectingTools(server, allowed) {
|
|
22
|
+
if (allowed.has("prospecting_context")) {
|
|
23
|
+
server.tool("prospecting_context", "Loads Loop's prospecting playbook: four-phase workflow (prioritize → understand → generate → review → activate), prioritization heuristics (ICP weight 0.7 + freshness 0.3 − open-opp/open-sequence penalties), generation guardrails, approval voice, conversation patterns, handoffs to /deal_prep + /cpq_coach + /account_curate. Call ONCE per prospecting conversation. The /prospecting skill auto-loads this on entry.", {}, safeTool(async () => trpcQuery("mcp.prospectingContext")));
|
|
24
|
+
}
|
|
25
|
+
if (allowed.has("prospecting_priorities")) {
|
|
26
|
+
server.tool("prospecting_priorities", "Rank target accounts in caller's territory for outbound prospecting. Hybrid CH query joining am.account_profile + salesforce.opportunity (excludes open opps) + engage_sequences (flags pending). Scope defaults to caller's own territory; managers can pass 'subtree' or {repId}. Returns top-N markdown table with ICP score + band, owner, why (reason line), and suggested action (Generate or Review existing sequence).", {
|
|
27
|
+
scope: z
|
|
28
|
+
.union([
|
|
29
|
+
z.literal("me"),
|
|
30
|
+
z.literal("my_team"),
|
|
31
|
+
z.literal("subtree"),
|
|
32
|
+
z.object({ repId: z.string().min(1) }),
|
|
33
|
+
z.object({ managerId: z.string().min(1) }),
|
|
34
|
+
])
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("Scope: 'me' (default for rep), 'my_team' / 'subtree' (manager+), or explicit {repId}/{managerId}."),
|
|
37
|
+
limit: z
|
|
38
|
+
.number()
|
|
39
|
+
.int()
|
|
40
|
+
.min(1)
|
|
41
|
+
.max(50)
|
|
42
|
+
.optional()
|
|
43
|
+
.describe("Top-N to return. Default 10."),
|
|
44
|
+
min_icp_score: z
|
|
45
|
+
.number()
|
|
46
|
+
.min(0)
|
|
47
|
+
.max(100)
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("Minimum ICP score (0-100). Default 0."),
|
|
50
|
+
}, safeTool(async (args) => trpcQuery("mcp.prospectingPriorities", args)));
|
|
51
|
+
}
|
|
52
|
+
}
|