@clustr-ai/mcp-server 1.0.9 → 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.
Files changed (66) hide show
  1. package/dist/client.d.ts +20 -14
  2. package/dist/client.js +150 -81
  3. package/dist/client.js.map +1 -1
  4. package/dist/index.js +85 -34
  5. package/dist/index.js.map +1 -1
  6. package/package.json +4 -4
  7. package/dist/tools/create-icp.d.ts +0 -2
  8. package/dist/tools/create-icp.js +0 -26
  9. package/dist/tools/create-icp.js.map +0 -1
  10. package/dist/tools/create-target-accounts.d.ts +0 -2
  11. package/dist/tools/create-target-accounts.js +0 -27
  12. package/dist/tools/create-target-accounts.js.map +0 -1
  13. package/dist/tools/delete-icp.d.ts +0 -2
  14. package/dist/tools/delete-icp.js +0 -9
  15. package/dist/tools/delete-icp.js.map +0 -1
  16. package/dist/tools/delete-target-account.d.ts +0 -2
  17. package/dist/tools/delete-target-account.js +0 -12
  18. package/dist/tools/delete-target-account.js.map +0 -1
  19. package/dist/tools/get-job-status.d.ts +0 -2
  20. package/dist/tools/get-job-status.js +0 -10
  21. package/dist/tools/get-job-status.js.map +0 -1
  22. package/dist/tools/get-network-stats.d.ts +0 -2
  23. package/dist/tools/get-network-stats.js +0 -6
  24. package/dist/tools/get-network-stats.js.map +0 -1
  25. package/dist/tools/import-contacts.d.ts +0 -2
  26. package/dist/tools/import-contacts.js +0 -55
  27. package/dist/tools/import-contacts.js.map +0 -1
  28. package/dist/tools/list-connectors.d.ts +0 -2
  29. package/dist/tools/list-connectors.js +0 -14
  30. package/dist/tools/list-connectors.js.map +0 -1
  31. package/dist/tools/list-icps.d.ts +0 -2
  32. package/dist/tools/list-icps.js +0 -6
  33. package/dist/tools/list-icps.js.map +0 -1
  34. package/dist/tools/list-jobs.d.ts +0 -2
  35. package/dist/tools/list-jobs.js +0 -15
  36. package/dist/tools/list-jobs.js.map +0 -1
  37. package/dist/tools/list-opportunity-statuses.d.ts +0 -2
  38. package/dist/tools/list-opportunity-statuses.js +0 -7
  39. package/dist/tools/list-opportunity-statuses.js.map +0 -1
  40. package/dist/tools/list-target-accounts.d.ts +0 -2
  41. package/dist/tools/list-target-accounts.js +0 -12
  42. package/dist/tools/list-target-accounts.js.map +0 -1
  43. package/dist/tools/search-by-company.d.ts +0 -2
  44. package/dist/tools/search-by-company.js +0 -82
  45. package/dist/tools/search-by-company.js.map +0 -1
  46. package/dist/tools/search-by-contact.d.ts +0 -2
  47. package/dist/tools/search-by-contact.js +0 -40
  48. package/dist/tools/search-by-contact.js.map +0 -1
  49. package/dist/tools/search-companies.d.ts +0 -2
  50. package/dist/tools/search-companies.js +0 -13
  51. package/dist/tools/search-companies.js.map +0 -1
  52. package/dist/tools/search-opportunities.d.ts +0 -2
  53. package/dist/tools/search-opportunities.js +0 -67
  54. package/dist/tools/search-opportunities.js.map +0 -1
  55. package/dist/tools/start-abm-search.d.ts +0 -2
  56. package/dist/tools/start-abm-search.js +0 -30
  57. package/dist/tools/start-abm-search.js.map +0 -1
  58. package/dist/tools/update-icp.d.ts +0 -2
  59. package/dist/tools/update-icp.js +0 -29
  60. package/dist/tools/update-icp.js.map +0 -1
  61. package/dist/tools/update-opportunity.d.ts +0 -2
  62. package/dist/tools/update-opportunity.js +0 -19
  63. package/dist/tools/update-opportunity.js.map +0 -1
  64. package/dist/tools/whats-new.d.ts +0 -2
  65. package/dist/tools/whats-new.js +0 -55
  66. 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_contacts"),
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_contacts 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,iDAAiD,CAAC;CAC/E,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,gDAAgD;QAC9C,kFAAkF,EACpF,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,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerGetNetworkStats(server: McpServer): void;
@@ -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,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerImportContacts(server: McpServer): void;
@@ -1,55 +0,0 @@
1
- import { z } from "zod";
2
- import { post, wrapToolHandler } from "../client.js";
3
- const inputSchema = {
4
- contacts: 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("Contacts 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 contacts."),
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 contact"),
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
- export function registerImportContacts(server) {
51
- server.tool("import_contacts", "Import LinkedIn contacts for referral opportunity discovery. " +
52
- "Processing is ASYNCHRONOUS — results are delivered via the webhook_url you provide, not in this response. " +
53
- "Provide contacts via 'contacts' array (with CRM metadata) or simpler 'linkedin_urls' array. Max 50 per request.", inputSchema, wrapToolHandler((params) => post("/network/import/contacts", params)));
54
- }
55
- //# sourceMappingURL=import-contacts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-contacts.js","sourceRoot":"","sources":["../../src/tools/import-contacts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,WAAW,GAAG;IAClB,QAAQ,EAAE,CAAC;SACR,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACzD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC/D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC9D,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,oDAAoD,CAAC;KAClE,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC;IACxE,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,4DAA4D,CAAC;IACzE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACpF,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2CAA2C,CAAC;IACxD,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yCAAyC,CAAC;IACtD,YAAY,EAAE,CAAC;SACZ,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;IAClE,MAAM,EAAE,CAAC;SACN,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACnB,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,uBAAuB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACvD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAChD,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC/C,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC9C,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC1C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC1C,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;CAC5D,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,+DAA+D;QAC7D,4GAA4G;QAC5G,iHAAiH,EACnH,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerListConnectors(server: McpServer): void;
@@ -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"}
@@ -1,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerListICPs(server: McpServer): void;
@@ -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"}
@@ -1,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerListJobs(server: McpServer): void;
@@ -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,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerListOpportunityStatuses(server: McpServer): void;
@@ -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,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerListTargetAccounts(server: McpServer): void;
@@ -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,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerSearchByCompany(server: McpServer): void;
@@ -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,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerSearchByContact(server: McpServer): void;
@@ -1,40 +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
- linkedin_public_id: z
8
- .string()
9
- .optional()
10
- .describe("LinkedIn public identifier (e.g. john-doe). Provide this OR linkedin_url."),
11
- linkedin_url: z
12
- .string()
13
- .optional()
14
- .describe("Full LinkedIn URL (e.g. https://www.linkedin.com/in/john-doe). Provide this OR linkedin_public_id."),
15
- full_history: z.boolean().optional().describe("Include full engagement history"),
16
- seniority_levels: z
17
- .string()
18
- .optional()
19
- .describe("Comma-separated seniority levels: high, mid, low"),
20
- industries: z.string().optional().describe("Comma-separated industries"),
21
- employee_ranges: z
22
- .string()
23
- .optional()
24
- .describe("Comma-separated employee count ranges"),
25
- revenue_ranges: z.string().optional().describe("Comma-separated revenue ranges"),
26
- countries: z.string().optional().describe("Comma-separated countries"),
27
- confidence_ranges: z
28
- .string()
29
- .optional()
30
- .describe("Comma-separated confidence score ranges"),
31
- page: z.number().optional().describe("Page number (default: 1)"),
32
- page_size: z.number().optional().describe("Results per page (default: 25)"),
33
- sort_field: z.string().optional().describe("Field to sort by"),
34
- sort_direction: z.enum(["asc", "desc"]).optional().describe("Sort direction"),
35
- };
36
- export function registerSearchByContact(server) {
37
- server.tool("search_opportunities_by_contact", "Get referral opportunities for a specific contact. " +
38
- "Provide exactly one of linkedin_public_id OR linkedin_url to identify the contact.", inputSchema, wrapToolHandler((params) => get("/network/search/opportunities/by-contact", params)));
39
- }
40
- //# sourceMappingURL=search-by-contact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-by-contact.js","sourceRoot":"","sources":["../../src/tools/search-by-contact.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,iGAAiG;AACjG,kFAAkF;AAGlF,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,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,IAAI,CACT,iCAAiC,EACjC,qDAAqD;QACnD,oFAAoF,EACtF,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CACzB,GAAG,CAAC,0CAA0C,EAAE,MAA+D,CAAC,CACjH,CACF,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerSearchCompanies(server: McpServer): void;
@@ -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,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerSearchOpportunities(server: McpServer): void;
@@ -1,67 +0,0 @@
1
- import { z } from "zod";
2
- import { get, wrapToolHandler } from "../client.js";
3
- const inputSchema = {
4
- // Contact lookup — when provided, searches opportunities for a specific contact
5
- // (uses the /by-contact endpoint under the hood)
6
- linkedin_public_id: z
7
- .string()
8
- .optional()
9
- .describe("LinkedIn public identifier of a specific contact (e.g. john-doe). " +
10
- "When provided, returns opportunities for that contact."),
11
- // Company identifiers — filter by company
12
- linkedin_urls: z.string().optional().describe("Comma-separated company LinkedIn URLs"),
13
- numeric_ids: z.string().optional().describe("Comma-separated LinkedIn numeric IDs"),
14
- domains: z.string().optional().describe("Comma-separated company domains (e.g. acme.com,stripe.com)"),
15
- vanity_names: z.string().optional().describe("Comma-separated LinkedIn vanity names"),
16
- // Prospect/client filters
17
- seniority_levels: z.string().optional().describe("Comma-separated seniority levels: high, mid, low"),
18
- industries: z.string().optional().describe("Comma-separated industries"),
19
- employee_ranges: z.string().optional().describe("Comma-separated employee count ranges (e.g. 51-200,501-1000)"),
20
- revenue_ranges: z.string().optional().describe("Comma-separated revenue ranges"),
21
- countries: z.string().optional().describe("Comma-separated countries"),
22
- confidence_ranges: z
23
- .string()
24
- .optional()
25
- .describe("Comma-separated confidence score ranges (e.g. 80-100,60-79)"),
26
- client_names: z.string().optional().describe("Comma-separated client (connector) names"),
27
- client_linkedin_urls: z.string().optional().describe("Comma-separated client LinkedIn URLs"),
28
- client_public_identifiers: z.string().optional().describe("Comma-separated client LinkedIn public identifiers"),
29
- client_companies: z.string().optional().describe("Comma-separated client company names"),
30
- prospect_names: z.string().optional().describe("Comma-separated prospect names"),
31
- prospect_linkedin_urls: z.string().optional().describe("Comma-separated prospect LinkedIn URLs"),
32
- prospect_positions: z.string().optional().describe("Comma-separated prospect job titles"),
33
- prospect_companies: z.string().optional().describe("Comma-separated prospect company names"),
34
- owners: z.string().optional().describe("Comma-separated owner emails"),
35
- statuses: z.string().optional().describe("Comma-separated opportunity statuses"),
36
- engagement_types: z.string().optional().describe("Comma-separated engagement types"),
37
- crm_statuses: z.string().optional().describe("Comma-separated CRM statuses"),
38
- // Date filters
39
- created_after: z.string().optional().describe("Filter opportunities created after this date (YYYY-MM-DD)"),
40
- created_before: z.string().optional().describe("Filter opportunities created before this date (YYYY-MM-DD)"),
41
- // Boolean filters
42
- exclude_client_companies: z.boolean().optional().describe("Exclude prospects at the same company as the client"),
43
- include_unengaged: z.boolean().optional().describe("Include opportunities with no engagement"),
44
- full_history: z.boolean().optional().describe("Include full engagement history"),
45
- force_refresh: z.boolean().optional().describe("Bypass cache and fetch fresh results"),
46
- // Other
47
- job_id: z.string().optional().describe("Filter by import job ID"),
48
- page: z.number().optional().describe("Page number (default: 1)"),
49
- page_size: z.number().optional().describe("Results per page (default: 25)"),
50
- sort_field: z.string().optional().describe("Field to sort by"),
51
- sort_direction: z.enum(["asc", "desc"]).optional().describe("Sort direction"),
52
- };
53
- export function registerSearchOpportunities(server) {
54
- server.tool("search_opportunities", "Search referral opportunities across your network. All filters are optional. " +
55
- "Use linkedin_public_id to get opportunities for a specific contact. " +
56
- "Use domains, linkedin_urls, or vanity_names to filter by company. " +
57
- "Use with no filters to see your full opportunity list.", inputSchema, wrapToolHandler((params) => {
58
- const p = params;
59
- // Route to /by-contact when searching for a specific contact
60
- if (p.linkedin_public_id) {
61
- return get("/network/search/opportunities/by-contact", p);
62
- }
63
- // Otherwise use the general search endpoint
64
- return get("/network/search/opportunities/by-company", p);
65
- }));
66
- }
67
- //# sourceMappingURL=search-opportunities.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-opportunities.js","sourceRoot":"","sources":["../../src/tools/search-opportunities.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,gFAAgF;IAChF,iDAAiD;IACjD,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,oEAAoE;QAClE,wDAAwD,CAC3D;IAEH,0CAA0C;IAC1C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACtF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACnF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACrG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAErF,0BAA0B;IAC1B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACpG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACxE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC/G,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,6DAA6D,CAAC;IAC1E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACxF,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC5F,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC/G,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACxF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAChF,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAChG,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACzF,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC5F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACtE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAChF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACpF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAE5E,eAAe;IACf,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAC1G,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAE5G,kBAAkB;IAClB,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IAChH,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC9F,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAChF,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAEtF,QAAQ;IACR,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACjE,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,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,+EAA+E;QAC7E,sEAAsE;QACtE,oEAAoE;QACpE,wDAAwD,EAC1D,WAAW,EACX,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,MAAM,CAAC,GAAG,MAA+D,CAAC;QAE1E,6DAA6D;QAC7D,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,4CAA4C;QAC5C,OAAO,GAAG,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerStartABMSearch(server: McpServer): void;
@@ -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"}
@@ -1,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerUpdateICP(server: McpServer): void;
@@ -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,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerUpdateOpportunity(server: McpServer): void;
@@ -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"}
@@ -1,2 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerWhatsNew(server: McpServer): void;