@clustr-ai/mcp-server 1.0.10 → 1.0.11
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/client.d.ts +20 -14
- package/dist/client.js +150 -81
- package/dist/client.js.map +1 -1
- package/dist/index.js +85 -34
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/tools/create-icp.d.ts +0 -2
- package/dist/tools/create-icp.js +0 -26
- package/dist/tools/create-icp.js.map +0 -1
- package/dist/tools/create-target-accounts.d.ts +0 -2
- package/dist/tools/create-target-accounts.js +0 -27
- package/dist/tools/create-target-accounts.js.map +0 -1
- package/dist/tools/delete-icp.d.ts +0 -2
- package/dist/tools/delete-icp.js +0 -9
- package/dist/tools/delete-icp.js.map +0 -1
- package/dist/tools/delete-target-account.d.ts +0 -2
- package/dist/tools/delete-target-account.js +0 -12
- package/dist/tools/delete-target-account.js.map +0 -1
- package/dist/tools/get-job-status.d.ts +0 -2
- package/dist/tools/get-job-status.js +0 -10
- package/dist/tools/get-job-status.js.map +0 -1
- package/dist/tools/get-network-stats.d.ts +0 -2
- package/dist/tools/get-network-stats.js +0 -6
- package/dist/tools/get-network-stats.js.map +0 -1
- package/dist/tools/import-connectors.d.ts +0 -2
- package/dist/tools/import-connectors.js +0 -64
- package/dist/tools/import-connectors.js.map +0 -1
- package/dist/tools/list-connectors.d.ts +0 -2
- package/dist/tools/list-connectors.js +0 -14
- package/dist/tools/list-connectors.js.map +0 -1
- package/dist/tools/list-icps.d.ts +0 -2
- package/dist/tools/list-icps.js +0 -6
- package/dist/tools/list-icps.js.map +0 -1
- package/dist/tools/list-jobs.d.ts +0 -2
- package/dist/tools/list-jobs.js +0 -15
- package/dist/tools/list-jobs.js.map +0 -1
- package/dist/tools/list-opportunity-statuses.d.ts +0 -2
- package/dist/tools/list-opportunity-statuses.js +0 -7
- package/dist/tools/list-opportunity-statuses.js.map +0 -1
- package/dist/tools/list-target-accounts.d.ts +0 -2
- package/dist/tools/list-target-accounts.js +0 -12
- package/dist/tools/list-target-accounts.js.map +0 -1
- package/dist/tools/search-by-company.d.ts +0 -2
- package/dist/tools/search-by-company.js +0 -82
- package/dist/tools/search-by-company.js.map +0 -1
- package/dist/tools/search-by-connector.d.ts +0 -2
- package/dist/tools/search-by-connector.js +0 -56
- package/dist/tools/search-by-connector.js.map +0 -1
- package/dist/tools/search-companies.d.ts +0 -2
- package/dist/tools/search-companies.js +0 -13
- package/dist/tools/search-companies.js.map +0 -1
- package/dist/tools/search-opportunities.d.ts +0 -2
- package/dist/tools/search-opportunities.js +0 -70
- package/dist/tools/search-opportunities.js.map +0 -1
- package/dist/tools/start-abm-search.d.ts +0 -2
- package/dist/tools/start-abm-search.js +0 -30
- package/dist/tools/start-abm-search.js.map +0 -1
- package/dist/tools/update-icp.d.ts +0 -2
- package/dist/tools/update-icp.js +0 -29
- package/dist/tools/update-icp.js.map +0 -1
- package/dist/tools/update-opportunity.d.ts +0 -2
- package/dist/tools/update-opportunity.js +0 -19
- package/dist/tools/update-opportunity.js.map +0 -1
- package/dist/tools/whats-new.d.ts +0 -3
- package/dist/tools/whats-new.js +0 -67
- package/dist/tools/whats-new.js.map +0 -1
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
3
|
-
const inputSchema = {
|
|
4
|
-
job_id: z.string().describe("The job ID (UUID) returned from import_connectors"),
|
|
5
|
-
};
|
|
6
|
-
export function registerGetJobStatus(server) {
|
|
7
|
-
server.tool("get_job_status", "Get the status and progress of an import job. " +
|
|
8
|
-
"Use the job_id returned from import_connectors to check if processing is complete.", inputSchema, wrapToolHandler((params) => get(`/jobs/${encodeURIComponent(String(params.job_id))}`)));
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=get-job-status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-job-status.js","sourceRoot":"","sources":["../../src/tools/get-job-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CACjF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,gDAAgD;QAC9C,oFAAoF,EACtF,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CACzB,GAAG,CAAC,SAAS,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAC1D,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
2
|
-
export function registerGetNetworkStats(server) {
|
|
3
|
-
server.tool("get_network_stats", "Get an overview of your Clustr network — total connectors, opportunities, " +
|
|
4
|
-
"target accounts, confidence distribution, top companies, and recent import activity.", {}, wrapToolHandler(() => get("/network/stats")));
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=get-network-stats.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-network-stats.js","sourceRoot":"","sources":["../../src/tools/get-network-stats.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,4EAA4E;QAC1E,sFAAsF,EACxF,EAAE,EACF,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { post, wrapToolHandler } from "../client.js";
|
|
3
|
-
const inputSchema = {
|
|
4
|
-
connectors: z
|
|
5
|
-
.array(z.object({
|
|
6
|
-
linkedin_url: z.string().describe("LinkedIn profile URL"),
|
|
7
|
-
record_id: z.string().optional().describe("Your CRM record ID"),
|
|
8
|
-
owner_email: z.string().optional().describe("CRM owner email"),
|
|
9
|
-
connector_tag: z
|
|
10
|
-
.string()
|
|
11
|
-
.optional()
|
|
12
|
-
.describe('Tag for this connector (e.g. "Employee", "Friend")'),
|
|
13
|
-
}))
|
|
14
|
-
.optional()
|
|
15
|
-
.describe("Connectors with metadata (1-50). Use this OR linkedin_urls."),
|
|
16
|
-
linkedin_urls: z
|
|
17
|
-
.array(z.string())
|
|
18
|
-
.optional()
|
|
19
|
-
.describe("Simple list of LinkedIn URLs (1-50). Use this OR connectors."),
|
|
20
|
-
webhook_url: z.string().describe("URL to receive results when processing completes"),
|
|
21
|
-
completion_email: z
|
|
22
|
-
.string()
|
|
23
|
-
.optional()
|
|
24
|
-
.describe("Email to notify when processing completes"),
|
|
25
|
-
max_opportunities: z
|
|
26
|
-
.number()
|
|
27
|
-
.optional()
|
|
28
|
-
.describe("Max opportunities to return per connector"),
|
|
29
|
-
full_history: z
|
|
30
|
-
.boolean()
|
|
31
|
-
.optional()
|
|
32
|
-
.describe("Include full engagement history in webhook response"),
|
|
33
|
-
custom: z
|
|
34
|
-
.record(z.unknown())
|
|
35
|
-
.optional()
|
|
36
|
-
.describe("Custom data passed through to webhook response"),
|
|
37
|
-
filters: z
|
|
38
|
-
.object({
|
|
39
|
-
confidence_score_ranges: z.array(z.string()).optional(),
|
|
40
|
-
seniority_levels: z.array(z.string()).optional(),
|
|
41
|
-
employee_ranges: z.array(z.string()).optional(),
|
|
42
|
-
revenue_ranges: z.array(z.string()).optional(),
|
|
43
|
-
prospect_job_titles: z.array(z.string()).optional(),
|
|
44
|
-
industries: z.array(z.string()).optional(),
|
|
45
|
-
countries: z.array(z.string()).optional(),
|
|
46
|
-
})
|
|
47
|
-
.optional()
|
|
48
|
-
.describe("Filters to apply to discovered opportunities"),
|
|
49
|
-
};
|
|
50
|
-
const description = "Import LinkedIn connectors for referral opportunity discovery. " +
|
|
51
|
-
"Processing is ASYNCHRONOUS — results are delivered via the webhook_url you provide, not in this response. " +
|
|
52
|
-
"Provide connectors via 'connectors' array (with CRM metadata) or simpler 'linkedin_urls' array. Max 50 per request.";
|
|
53
|
-
export function registerImportConnectors(server) {
|
|
54
|
-
server.tool("import_connectors", description, inputSchema, wrapToolHandler((params) => post("/network/import/connectors", params)));
|
|
55
|
-
}
|
|
56
|
-
// There is deliberately no `import_contacts` alias. MCP callers are models
|
|
57
|
-
// reading tools/list, so they pick up the new name on the next call rather
|
|
58
|
-
// than holding a hardcoded reference — advertising both would just put two
|
|
59
|
-
// tools that do the same thing in front of the model.
|
|
60
|
-
//
|
|
61
|
-
// This is an MCP-only decision. The REST endpoint keeps both its path
|
|
62
|
-
// (/network/import/contacts) and its body field (`contacts`), because those
|
|
63
|
-
// ARE called by pinned integration code.
|
|
64
|
-
//# sourceMappingURL=import-connectors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import-connectors.js","sourceRoot":"","sources":["../../src/tools/import-connectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
3
|
-
const inputSchema = {
|
|
4
|
-
search: z.string().optional().describe("Search by connector name (partial match)"),
|
|
5
|
-
connector_tag: z.string().optional().describe("Filter by connector tag name (e.g. Employee, Friend)"),
|
|
6
|
-
page: z.number().optional().describe("Page number (default: 1)"),
|
|
7
|
-
page_size: z.number().optional().describe("Results per page (default: 25, max: 100)"),
|
|
8
|
-
};
|
|
9
|
-
export function registerListConnectors(server) {
|
|
10
|
-
server.tool("list_connectors", "List connectors (people) in your network with their opportunity counts. " +
|
|
11
|
-
"Connectors are the people you've imported whose LinkedIn connections are analyzed for referral opportunities. " +
|
|
12
|
-
"Call with no parameters to list all connectors.", inputSchema, wrapToolHandler((params) => get("/network/connectors", params)));
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=list-connectors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-connectors.js","sourceRoot":"","sources":["../../src/tools/list-connectors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAClF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IACrG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAChE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACtF,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,0EAA0E;QACxE,gHAAgH;QAChH,iDAAiD,EACnD,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CACzB,GAAG,CAAC,qBAAqB,EAAE,MAA+D,CAAC,CAC5F,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/list-icps.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
2
|
-
export function registerListICPs(server) {
|
|
3
|
-
server.tool("list_icps", "List all Ideal Customer Profiles (ICPs) for your tenant. " +
|
|
4
|
-
"ICPs define target company characteristics — industries, revenue ranges, employee counts, and countries.", {}, wrapToolHandler(() => get("/company-icp")));
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=list-icps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-icps.js","sourceRoot":"","sources":["../../src/tools/list-icps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,IAAI,CACT,WAAW,EACX,2DAA2D;QACzD,0GAA0G,EAC5G,EAAE,EACF,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAC3C,CAAC;AACJ,CAAC"}
|
package/dist/tools/list-jobs.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
3
|
-
const inputSchema = {
|
|
4
|
-
status: z
|
|
5
|
-
.string()
|
|
6
|
-
.optional()
|
|
7
|
-
.describe("Filter by status: PROCESSING, COMPLETED, FAILED (comma-separated for multiple)"),
|
|
8
|
-
limit: z.number().optional().describe("Max results to return (default: 100, max: 1000)"),
|
|
9
|
-
offset: z.number().optional().describe("Offset for pagination (default: 0)"),
|
|
10
|
-
};
|
|
11
|
-
export function registerListJobs(server) {
|
|
12
|
-
server.tool("list_jobs", "List import jobs with optional status filter. " +
|
|
13
|
-
"Returns job IDs, statuses, and progress for all imports.", inputSchema, wrapToolHandler((params) => get("/jobs", params)));
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=list-jobs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-jobs.js","sourceRoot":"","sources":["../../src/tools/list-jobs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IACxF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CAC7E,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,IAAI,CACT,WAAW,EACX,gDAAgD;QAC9C,0DAA0D,EAC5D,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CACzB,GAAG,CAAC,OAAO,EAAE,MAA+D,CAAC,CAC9E,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
2
|
-
export function registerListOpportunityStatuses(server) {
|
|
3
|
-
server.tool("list_opportunity_statuses", "List all available opportunity statuses for your tenant. " +
|
|
4
|
-
"Returns status IDs, names, colors, and whether each status is terminal. " +
|
|
5
|
-
"Use the returned status IDs with update_opportunity.", {}, wrapToolHandler(() => get("/opportunity-statuses")));
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=list-opportunity-statuses.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-opportunity-statuses.js","sourceRoot":"","sources":["../../src/tools/list-opportunity-statuses.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,UAAU,+BAA+B,CAAC,MAAiB;IAC/D,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,2DAA2D;QACzD,0EAA0E;QAC1E,sDAAsD,EACxD,EAAE,EACF,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CACpD,CAAC;AACJ,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
3
|
-
const inputSchema = {
|
|
4
|
-
id: z.string().optional().describe("Target account ID (returns single account)"),
|
|
5
|
-
search: z.string().optional().describe("Search by account name (partial match)"),
|
|
6
|
-
linkedin_url: z.string().optional().describe("Search by LinkedIn URL"),
|
|
7
|
-
};
|
|
8
|
-
export function registerListTargetAccounts(server) {
|
|
9
|
-
server.tool("list_target_accounts", "List all target accounts, or search by ID, name, or LinkedIn URL. " +
|
|
10
|
-
"Call with no parameters to list all accounts.", inputSchema, wrapToolHandler((params) => get("/target-accounts", params)));
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=list-target-accounts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-target-accounts.js","sourceRoot":"","sources":["../../src/tools/list-target-accounts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IAChF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAChF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACvE,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,oEAAoE;QAClE,+CAA+C,EACjD,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CACzB,GAAG,CAAC,kBAAkB,EAAE,MAA4C,CAAC,CACtE,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// LEGACY: Superseded by search-opportunities.ts which consolidates all search functionality.
|
|
2
|
-
// Kept for backwards compatibility — existing tenants may have automations using this tool name.
|
|
3
|
-
// Do not register in index.ts; the API route still works for direct REST callers.
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
6
|
-
const inputSchema = {
|
|
7
|
-
// Company identifiers
|
|
8
|
-
linkedin_urls: z.string().optional().describe("Comma-separated company LinkedIn URLs"),
|
|
9
|
-
numeric_ids: z.string().optional().describe("Comma-separated LinkedIn numeric IDs"),
|
|
10
|
-
domains: z.string().optional().describe("Comma-separated company domains"),
|
|
11
|
-
vanity_names: z.string().optional().describe("Comma-separated LinkedIn vanity names"),
|
|
12
|
-
// Filters
|
|
13
|
-
seniority_levels: z
|
|
14
|
-
.string()
|
|
15
|
-
.optional()
|
|
16
|
-
.describe("Comma-separated seniority levels: high, mid, low"),
|
|
17
|
-
industries: z.string().optional().describe("Comma-separated industries"),
|
|
18
|
-
employee_ranges: z
|
|
19
|
-
.string()
|
|
20
|
-
.optional()
|
|
21
|
-
.describe("Comma-separated employee count ranges (e.g. 51-200,501-1000)"),
|
|
22
|
-
revenue_ranges: z.string().optional().describe("Comma-separated revenue ranges"),
|
|
23
|
-
countries: z.string().optional().describe("Comma-separated countries"),
|
|
24
|
-
confidence_ranges: z
|
|
25
|
-
.string()
|
|
26
|
-
.optional()
|
|
27
|
-
.describe("Comma-separated confidence score ranges (e.g. 80-100,60-79)"),
|
|
28
|
-
// Client/prospect filters
|
|
29
|
-
client_names: z.string().optional().describe("Comma-separated client names"),
|
|
30
|
-
client_linkedin_urls: z.string().optional().describe("Comma-separated client LinkedIn URLs"),
|
|
31
|
-
client_public_identifiers: z
|
|
32
|
-
.string()
|
|
33
|
-
.optional()
|
|
34
|
-
.describe("Comma-separated client LinkedIn public identifiers"),
|
|
35
|
-
client_companies: z.string().optional().describe("Comma-separated client company names"),
|
|
36
|
-
prospect_names: z.string().optional().describe("Comma-separated prospect names"),
|
|
37
|
-
prospect_linkedin_urls: z
|
|
38
|
-
.string()
|
|
39
|
-
.optional()
|
|
40
|
-
.describe("Comma-separated prospect LinkedIn URLs"),
|
|
41
|
-
prospect_positions: z
|
|
42
|
-
.string()
|
|
43
|
-
.optional()
|
|
44
|
-
.describe("Comma-separated prospect job titles"),
|
|
45
|
-
prospect_companies: z
|
|
46
|
-
.string()
|
|
47
|
-
.optional()
|
|
48
|
-
.describe("Comma-separated prospect company names"),
|
|
49
|
-
owners: z.string().optional().describe("Comma-separated owner emails"),
|
|
50
|
-
statuses: z.string().optional().describe("Comma-separated opportunity statuses"),
|
|
51
|
-
engagement_types: z.string().optional().describe("Comma-separated engagement types"),
|
|
52
|
-
crm_statuses: z.string().optional().describe("Comma-separated CRM statuses"),
|
|
53
|
-
// Date filters
|
|
54
|
-
created_after: z.string().optional().describe("Filter opportunities created after this date (YYYY-MM-DD)"),
|
|
55
|
-
created_before: z
|
|
56
|
-
.string()
|
|
57
|
-
.optional()
|
|
58
|
-
.describe("Filter opportunities created before this date (YYYY-MM-DD)"),
|
|
59
|
-
// Boolean filters
|
|
60
|
-
exclude_client_companies: z
|
|
61
|
-
.boolean()
|
|
62
|
-
.optional()
|
|
63
|
-
.describe("Exclude prospects at the same company as the client"),
|
|
64
|
-
include_unengaged: z
|
|
65
|
-
.boolean()
|
|
66
|
-
.optional()
|
|
67
|
-
.describe("Include opportunities with no engagement"),
|
|
68
|
-
full_history: z.boolean().optional().describe("Include full engagement history"),
|
|
69
|
-
force_refresh: z.boolean().optional().describe("Bypass cache and fetch fresh results"),
|
|
70
|
-
// Other
|
|
71
|
-
job_id: z.string().optional().describe("Filter by import job ID"),
|
|
72
|
-
page: z.number().optional().describe("Page number (default: 1)"),
|
|
73
|
-
page_size: z.number().optional().describe("Results per page (default: 25)"),
|
|
74
|
-
sort_field: z.string().optional().describe("Field to sort by"),
|
|
75
|
-
sort_direction: z.enum(["asc", "desc"]).optional().describe("Sort direction"),
|
|
76
|
-
};
|
|
77
|
-
export function registerSearchByCompany(server) {
|
|
78
|
-
server.tool("search_opportunities_by_company", "Search referral opportunities filtered by company identifiers (LinkedIn URL, domain, numeric ID) and other criteria. " +
|
|
79
|
-
"Returns paginated results grouped by client with their opportunities. " +
|
|
80
|
-
"Provide at least one company identifier (linkedin_urls, domains, numeric_ids, or vanity_names).", inputSchema, wrapToolHandler((params) => get("/network/search/opportunities/by-company", params)));
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=search-by-company.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-by-company.js","sourceRoot":"","sources":["../../src/tools/search-by-company.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
// LEGACY: Superseded by search-opportunities.ts which consolidates all search functionality.
|
|
2
|
-
// Kept for backwards compatibility — existing tenants may have automations using this tool name.
|
|
3
|
-
// Do not register in index.ts; the API route still works for direct REST callers.
|
|
4
|
-
//
|
|
5
|
-
// NOTE ON NAMING: this matches the CONNECTOR side of an opportunity — the
|
|
6
|
-
// person in your network — not the prospect. Looking up someone who only
|
|
7
|
-
// appears as a prospect returns 0 results, by design. To find who can
|
|
8
|
-
// introduce you to a given person, filter by prospect_linkedin_urls on
|
|
9
|
-
// search_opportunities instead.
|
|
10
|
-
import { z } from "zod";
|
|
11
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
12
|
-
const inputSchema = {
|
|
13
|
-
linkedin_public_id: z
|
|
14
|
-
.string()
|
|
15
|
-
.optional()
|
|
16
|
-
.describe("LinkedIn public identifier (e.g. john-doe). Provide this OR linkedin_url."),
|
|
17
|
-
linkedin_url: z
|
|
18
|
-
.string()
|
|
19
|
-
.optional()
|
|
20
|
-
.describe("Full LinkedIn URL (e.g. https://www.linkedin.com/in/john-doe). Provide this OR linkedin_public_id."),
|
|
21
|
-
full_history: z.boolean().optional().describe("Include full engagement history"),
|
|
22
|
-
seniority_levels: z
|
|
23
|
-
.string()
|
|
24
|
-
.optional()
|
|
25
|
-
.describe("Comma-separated seniority levels: high, mid, low"),
|
|
26
|
-
industries: z.string().optional().describe("Comma-separated industries"),
|
|
27
|
-
employee_ranges: z
|
|
28
|
-
.string()
|
|
29
|
-
.optional()
|
|
30
|
-
.describe("Comma-separated employee count ranges"),
|
|
31
|
-
revenue_ranges: z.string().optional().describe("Comma-separated revenue ranges"),
|
|
32
|
-
countries: z.string().optional().describe("Comma-separated countries"),
|
|
33
|
-
confidence_ranges: z
|
|
34
|
-
.string()
|
|
35
|
-
.optional()
|
|
36
|
-
.describe("Comma-separated confidence score ranges"),
|
|
37
|
-
page: z.number().optional().describe("Page number (default: 1)"),
|
|
38
|
-
page_size: z.number().optional().describe("Results per page (default: 25)"),
|
|
39
|
-
sort_field: z.string().optional().describe("Field to sort by"),
|
|
40
|
-
sort_direction: z.enum(["asc", "desc"]).optional().describe("Sort direction"),
|
|
41
|
-
};
|
|
42
|
-
const description = "Get referral opportunities for a specific connector — a person in your network. " +
|
|
43
|
-
"Provide exactly one of linkedin_public_id OR linkedin_url to identify the connector. " +
|
|
44
|
-
"This matches the connector side only: a person who appears solely as a prospect returns 0 results.";
|
|
45
|
-
export function registerSearchByConnector(server) {
|
|
46
|
-
server.tool("search_opportunities_by_connector", description, inputSchema, wrapToolHandler((params) => get("/network/search/opportunities/by-connector", params)));
|
|
47
|
-
}
|
|
48
|
-
// There is deliberately no `search_opportunities_by_contact` alias here — the
|
|
49
|
-
// same call made for `import_contacts`. MCP callers are models reading
|
|
50
|
-
// tools/list, so they pick up the new name rather than holding a hardcoded
|
|
51
|
-
// reference, and carrying deprecated duplicates would just put two tools that
|
|
52
|
-
// do the same thing in front of the model.
|
|
53
|
-
//
|
|
54
|
-
// This one is doubly moot: the old name was never registered in index.ts nor
|
|
55
|
-
// dispatched by the gateway's MCP handler, so no caller could exist anyway.
|
|
56
|
-
//# sourceMappingURL=search-by-connector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-by-connector.js","sourceRoot":"","sources":["../../src/tools/search-by-connector.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,iGAAiG;AACjG,kFAAkF;AAClF,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,sEAAsE;AACtE,uEAAuE;AACvE,gCAAgC;AAGhC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,GAAG;IAClB,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2EAA2E,CAAC;IACxF,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,oGAAoG,CACrG;IACH,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAChF,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACxE,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;IACpD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAChF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACtE,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yCAAyC,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAChE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC9D,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;CAC9E,CAAC;AAEF,MAAM,WAAW,GACf,kFAAkF;IAClF,uFAAuF;IACvF,oGAAoG,CAAC;AAEvG,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,IAAI,CACT,mCAAmC,EACnC,WAAW,EACX,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CACzB,GAAG,CACD,4CAA4C,EAC5C,MAA+D,CAChE,CACF,CACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,uEAAuE;AACvE,2EAA2E;AAC3E,8EAA8E;AAC9E,2CAA2C;AAC3C,EAAE;AACF,6EAA6E;AAC7E,4EAA4E"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
3
|
-
const inputSchema = {
|
|
4
|
-
search: z.string().optional().describe("Search by company name (partial match)"),
|
|
5
|
-
domain: z.string().optional().describe("Lookup by company domain (e.g. acme.com)"),
|
|
6
|
-
linkedin_url: z.string().optional().describe("Lookup by company LinkedIn URL"),
|
|
7
|
-
page_size: z.number().optional().describe("Results per page (default: 25, max: 100)"),
|
|
8
|
-
};
|
|
9
|
-
export function registerSearchCompanies(server) {
|
|
10
|
-
server.tool("search_companies", "Search or lookup companies in your network by name, domain, or LinkedIn URL. " +
|
|
11
|
-
"Provide at least one of search, domain, or linkedin_url.", inputSchema, wrapToolHandler((params) => get("/companies", params)));
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=search-companies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-companies.js","sourceRoot":"","sources":["../../src/tools/search-companies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAChF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAClF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC9E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CACtF,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,+EAA+E;QAC7E,0DAA0D,EAC5D,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CACzB,GAAG,CAAC,YAAY,EAAE,MAA+D,CAAC,CACnF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { get, wrapToolHandler } from "../client.js";
|
|
3
|
-
const inputSchema = {
|
|
4
|
-
// Connector lookup — when provided, searches opportunities for a specific
|
|
5
|
-
// connector (uses the /by-connector endpoint under the hood)
|
|
6
|
-
linkedin_public_id: z
|
|
7
|
-
.string()
|
|
8
|
-
.optional()
|
|
9
|
-
.describe("LinkedIn public identifier of a specific CONNECTOR — a person in your network (e.g. john-doe). " +
|
|
10
|
-
"When provided, returns the opportunities that connector can introduce you to. " +
|
|
11
|
-
"This does NOT match prospects: to find who can introduce you to a given person, " +
|
|
12
|
-
"use prospect_linkedin_urls instead."),
|
|
13
|
-
// Company identifiers — filter by company
|
|
14
|
-
linkedin_urls: z.string().optional().describe("Comma-separated company LinkedIn URLs"),
|
|
15
|
-
numeric_ids: z.string().optional().describe("Comma-separated LinkedIn numeric IDs"),
|
|
16
|
-
domains: z.string().optional().describe("Comma-separated company domains (e.g. acme.com,stripe.com)"),
|
|
17
|
-
vanity_names: z.string().optional().describe("Comma-separated LinkedIn vanity names"),
|
|
18
|
-
// Prospect/client filters
|
|
19
|
-
seniority_levels: z.string().optional().describe("Comma-separated seniority levels: high, mid, low"),
|
|
20
|
-
industries: z.string().optional().describe("Comma-separated industries"),
|
|
21
|
-
employee_ranges: z.string().optional().describe("Comma-separated employee count ranges (e.g. 51-200,501-1000)"),
|
|
22
|
-
revenue_ranges: z.string().optional().describe("Comma-separated revenue ranges"),
|
|
23
|
-
countries: z.string().optional().describe("Comma-separated countries"),
|
|
24
|
-
confidence_ranges: z
|
|
25
|
-
.string()
|
|
26
|
-
.optional()
|
|
27
|
-
.describe("Comma-separated confidence score ranges (e.g. 80-100,60-79)"),
|
|
28
|
-
client_names: z.string().optional().describe("Comma-separated client (connector) names"),
|
|
29
|
-
client_linkedin_urls: z.string().optional().describe("Comma-separated client LinkedIn URLs"),
|
|
30
|
-
client_public_identifiers: z.string().optional().describe("Comma-separated client LinkedIn public identifiers"),
|
|
31
|
-
client_companies: z.string().optional().describe("Comma-separated client company names"),
|
|
32
|
-
prospect_names: z.string().optional().describe("Comma-separated prospect names"),
|
|
33
|
-
prospect_linkedin_urls: z.string().optional().describe("Comma-separated prospect LinkedIn URLs"),
|
|
34
|
-
prospect_positions: z.string().optional().describe("Comma-separated prospect job titles"),
|
|
35
|
-
prospect_companies: z.string().optional().describe("Comma-separated prospect company names"),
|
|
36
|
-
owners: z.string().optional().describe("Comma-separated owner emails"),
|
|
37
|
-
statuses: z.string().optional().describe("Comma-separated opportunity statuses"),
|
|
38
|
-
engagement_types: z.string().optional().describe("Comma-separated engagement types"),
|
|
39
|
-
crm_statuses: z.string().optional().describe("Comma-separated CRM statuses"),
|
|
40
|
-
// Date filters
|
|
41
|
-
created_after: z.string().optional().describe("Filter opportunities created after this date (YYYY-MM-DD)"),
|
|
42
|
-
created_before: z.string().optional().describe("Filter opportunities created before this date (YYYY-MM-DD)"),
|
|
43
|
-
// Boolean filters
|
|
44
|
-
exclude_client_companies: z.boolean().optional().describe("Exclude prospects at the same company as the client"),
|
|
45
|
-
include_unengaged: z.boolean().optional().describe("Include opportunities with no engagement"),
|
|
46
|
-
full_history: z.boolean().optional().describe("Include full engagement history"),
|
|
47
|
-
force_refresh: z.boolean().optional().describe("Bypass cache and fetch fresh results"),
|
|
48
|
-
// Other
|
|
49
|
-
job_id: z.string().optional().describe("Filter by import job ID"),
|
|
50
|
-
page: z.number().optional().describe("Page number (default: 1)"),
|
|
51
|
-
page_size: z.number().optional().describe("Results per page (default: 25)"),
|
|
52
|
-
sort_field: z.string().optional().describe("Field to sort by"),
|
|
53
|
-
sort_direction: z.enum(["asc", "desc"]).optional().describe("Sort direction"),
|
|
54
|
-
};
|
|
55
|
-
export function registerSearchOpportunities(server) {
|
|
56
|
-
server.tool("search_opportunities", "Search referral opportunities across your network. All filters are optional. " +
|
|
57
|
-
"Use linkedin_public_id to get opportunities for a specific connector (a person in your network). " +
|
|
58
|
-
"Use prospect_linkedin_urls to find who can introduce you to a specific person. " +
|
|
59
|
-
"Use domains, linkedin_urls, or vanity_names to filter by company. " +
|
|
60
|
-
"Use with no filters to see your full opportunity list.", inputSchema, wrapToolHandler((params) => {
|
|
61
|
-
const p = params;
|
|
62
|
-
// Route to /by-connector when searching for a specific connector
|
|
63
|
-
if (p.linkedin_public_id) {
|
|
64
|
-
return get("/network/search/opportunities/by-connector", p);
|
|
65
|
-
}
|
|
66
|
-
// Otherwise use the general search endpoint
|
|
67
|
-
return get("/network/search/opportunities/by-company", p);
|
|
68
|
-
}));
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=search-opportunities.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-opportunities.js","sourceRoot":"","sources":["../../src/tools/search-opportunities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { get, post, wrapToolHandler } from "../client.js";
|
|
3
|
-
const startSchema = {
|
|
4
|
-
company_name: z.string().describe("Name of the target company"),
|
|
5
|
-
company_linkedin_url: z
|
|
6
|
-
.string()
|
|
7
|
-
.describe("LinkedIn company page URL (must contain /company/)"),
|
|
8
|
-
countries: z
|
|
9
|
-
.array(z.string())
|
|
10
|
-
.optional()
|
|
11
|
-
.describe('Filter buyers by country (e.g. ["United States", "United Kingdom"])'),
|
|
12
|
-
completion_email: z
|
|
13
|
-
.string()
|
|
14
|
-
.optional()
|
|
15
|
-
.describe("Email to notify when the report is ready"),
|
|
16
|
-
};
|
|
17
|
-
const getLinkSchema = {
|
|
18
|
-
company_linkedin_url: z
|
|
19
|
-
.string()
|
|
20
|
-
.describe("LinkedIn company page URL of the existing ABM search"),
|
|
21
|
-
};
|
|
22
|
-
export function registerStartABMSearch(server) {
|
|
23
|
-
server.tool("start_abm_search", "Start an Account-Based Marketing (ABM) search for a target company. " +
|
|
24
|
-
"Returns a magic_link immediately — the link shows a processing page while the pipeline runs " +
|
|
25
|
-
"(typically 2-5 minutes) and auto-resolves to the full report when done. " +
|
|
26
|
-
"The magic link is deterministic: repeated calls for the same company return the same URL.", startSchema, wrapToolHandler((params) => post("/abm-search", params)));
|
|
27
|
-
server.tool("get_abm_search_link", "Retrieve the magic link for an existing ABM search without starting a new job. " +
|
|
28
|
-
"Use this when you want to share or re-fetch the link for a search that was already run.", getLinkSchema, wrapToolHandler(({ company_linkedin_url }) => get(`/abm-search?company_linkedin_url=${encodeURIComponent(company_linkedin_url)}`)));
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=start-abm-search.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"start-abm-search.js","sourceRoot":"","sources":["../../src/tools/start-abm-search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,WAAW,GAAG;IAClB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC/D,oBAAoB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,QAAQ,CAAC,oDAAoD,CAAC;IACjE,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;IAClF,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;CACxD,CAAC;AAEF,MAAM,aAAa,GAAG;IACpB,oBAAoB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,QAAQ,CAAC,sDAAsD,CAAC;CACpE,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,sEAAsE;QACpE,8FAA8F;QAC9F,0EAA0E;QAC1E,2FAA2F,EAC7F,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CACzD,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,iFAAiF;QAC/E,yFAAyF,EAC3F,aAAa,EACb,eAAe,CAAC,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAC3C,GAAG,CAAC,oCAAoC,kBAAkB,CAAC,oBAA8B,CAAC,EAAE,CAAC,CAC9F,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/update-icp.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { put, wrapToolHandler } from "../client.js";
|
|
3
|
-
const inputSchema = {
|
|
4
|
-
id: z.string().describe("ICP ID to update"),
|
|
5
|
-
title: z.string().optional().describe("Updated ICP name"),
|
|
6
|
-
linkedin_industries: z
|
|
7
|
-
.array(z.string())
|
|
8
|
-
.optional()
|
|
9
|
-
.describe("Updated target industries"),
|
|
10
|
-
revenue: z
|
|
11
|
-
.array(z.string())
|
|
12
|
-
.optional()
|
|
13
|
-
.describe("Updated target revenue ranges"),
|
|
14
|
-
employees: z
|
|
15
|
-
.array(z.string())
|
|
16
|
-
.optional()
|
|
17
|
-
.describe("Updated target employee count ranges"),
|
|
18
|
-
countries: z
|
|
19
|
-
.array(z.string())
|
|
20
|
-
.optional()
|
|
21
|
-
.describe("Updated target countries"),
|
|
22
|
-
};
|
|
23
|
-
export function registerUpdateICP(server) {
|
|
24
|
-
server.tool("update_icp", "Update an existing Ideal Customer Profile (ICP).", inputSchema, wrapToolHandler((params) => {
|
|
25
|
-
const { id, ...body } = params;
|
|
26
|
-
return put(`/company-icp/${encodeURIComponent(String(id))}`, body);
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=update-icp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-icp.js","sourceRoot":"","sources":["../../src/tools/update-icp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACzD,mBAAmB,EAAE,CAAC;SACnB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,2BAA2B,CAAC;IACxC,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;IACnD,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,0BAA0B,CAAC;CACxC,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,kDAAkD,EAClD,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAC/B,OAAO,GAAG,CAAC,gBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { put, wrapToolHandler } from "../client.js";
|
|
3
|
-
const inputSchema = {
|
|
4
|
-
opportunity_id: z.string().describe("The opportunity ID (from search results)"),
|
|
5
|
-
status_id: z
|
|
6
|
-
.string()
|
|
7
|
-
.optional()
|
|
8
|
-
.describe("New status UUID — use list_opportunity_statuses to get available status IDs"),
|
|
9
|
-
notes: z.string().optional().describe("Notes about the opportunity"),
|
|
10
|
-
};
|
|
11
|
-
export function registerUpdateOpportunity(server) {
|
|
12
|
-
server.tool("update_opportunity", "Update an opportunity's status or notes. " +
|
|
13
|
-
"Use the opportunity_id from search results. " +
|
|
14
|
-
"Use list_opportunity_statuses to see available statuses for your tenant.", inputSchema, wrapToolHandler((params) => {
|
|
15
|
-
const { opportunity_id, ...body } = params;
|
|
16
|
-
return put(`/opportunities/${encodeURIComponent(String(opportunity_id))}`, body);
|
|
17
|
-
}));
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=update-opportunity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-opportunity.js","sourceRoot":"","sources":["../../src/tools/update-opportunity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,GAAG;IAClB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC/E,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;IAC1F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CACrE,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,2CAA2C;QACzC,8CAA8C;QAC9C,0EAA0E,EAC5E,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAC3C,OAAO,GAAG,CAAC,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|