@besales/mcp 0.1.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.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +127 -0
  3. package/bin/besales-mcp.js +10 -0
  4. package/dist/auth/oauth-client.d.ts +32 -0
  5. package/dist/auth/oauth-client.js +180 -0
  6. package/dist/auth/oauth-client.js.map +1 -0
  7. package/dist/auth/token-storage.d.ts +7 -0
  8. package/dist/auth/token-storage.js +17 -0
  9. package/dist/auth/token-storage.js.map +1 -0
  10. package/dist/cli.d.ts +22 -0
  11. package/dist/cli.js +70 -0
  12. package/dist/cli.js.map +1 -0
  13. package/dist/http/api-client.d.ts +51 -0
  14. package/dist/http/api-client.js +115 -0
  15. package/dist/http/api-client.js.map +1 -0
  16. package/dist/index.d.ts +16 -0
  17. package/dist/index.js +10 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/package-metadata.d.ts +1 -0
  20. package/dist/package-metadata.js +6 -0
  21. package/dist/package-metadata.js.map +1 -0
  22. package/dist/resources/concepts/external-execution.md +22 -0
  23. package/dist/resources/concepts/handoff.md +16 -0
  24. package/dist/resources/concepts/icp.md +16 -0
  25. package/dist/resources/concepts/sandbox.md +17 -0
  26. package/dist/resources/concepts/triggers.md +16 -0
  27. package/dist/resources/registry.d.ts +5 -0
  28. package/dist/resources/registry.js +33 -0
  29. package/dist/resources/registry.js.map +1 -0
  30. package/dist/schemas/mcp-tools.json +1192 -0
  31. package/dist/server.d.ts +20 -0
  32. package/dist/server.js +74 -0
  33. package/dist/server.js.map +1 -0
  34. package/dist/tools/contracts.d.ts +22 -0
  35. package/dist/tools/contracts.js +24 -0
  36. package/dist/tools/contracts.js.map +1 -0
  37. package/dist/tools/definitions.d.ts +307 -0
  38. package/dist/tools/definitions.js +859 -0
  39. package/dist/tools/definitions.js.map +1 -0
  40. package/dist/tools/registry.d.ts +11 -0
  41. package/dist/tools/registry.js +52 -0
  42. package/dist/tools/registry.js.map +1 -0
  43. package/dist/tools/result.d.ts +4 -0
  44. package/dist/tools/result.js +78 -0
  45. package/dist/tools/result.js.map +1 -0
  46. package/dist/types/api-contract.gen.d.ts +6975 -0
  47. package/dist/types/api-contract.gen.js +6 -0
  48. package/dist/types/api-contract.gen.js.map +1 -0
  49. package/dist/utils/logger.d.ts +2 -0
  50. package/dist/utils/logger.js +13 -0
  51. package/dist/utils/logger.js.map +1 -0
  52. package/dist/utils/mask.d.ts +1 -0
  53. package/dist/utils/mask.js +7 -0
  54. package/dist/utils/mask.js.map +1 -0
  55. package/docs/host-setup.md +256 -0
  56. package/package.json +81 -0
  57. package/scripts/install-claude-desktop.js +77 -0
  58. package/scripts/mock-api-server.js +56 -0
  59. package/scripts/mock-credentials.js +34 -0
@@ -0,0 +1,20 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { type CallToolResult, type ListResourcesResult, type ListToolsResult, type ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
4
+ import { type RegisteredResource } from './resources/registry.js';
5
+ import { type RegisteredTool } from './tools/registry.js';
6
+ export interface StartMcpServerOptions {
7
+ readonly stdio?: boolean;
8
+ readonly tools?: readonly RegisteredTool[];
9
+ readonly resources?: readonly RegisteredResource[];
10
+ }
11
+ export interface StartedMcpServer {
12
+ readonly server: Server;
13
+ readonly transport?: StdioServerTransport;
14
+ }
15
+ export declare function listRegisteredTools(registeredTools?: readonly RegisteredTool[]): ListToolsResult;
16
+ export declare function callRegisteredTool(name: string, args: Record<string, unknown>, registeredTools?: readonly RegisteredTool[]): Promise<CallToolResult>;
17
+ export declare function listRegisteredResources(registeredResources?: readonly RegisteredResource[]): ListResourcesResult;
18
+ export declare function readRegisteredResource(uri: string, registeredResources?: readonly RegisteredResource[]): Promise<ReadResourceResult>;
19
+ export declare function createMcpServer(options?: StartMcpServerOptions): Server;
20
+ export declare function startMcpServer(options?: StartMcpServerOptions): Promise<StartedMcpServer>;
package/dist/server.js ADDED
@@ -0,0 +1,74 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { CallToolRequestSchema, ErrorCode, ListResourcesRequestSchema, ListToolsRequestSchema, McpError, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
+ import { readPackageVersion } from './package-metadata.js';
5
+ import { resources } from './resources/registry.js';
6
+ import { tools } from './tools/registry.js';
7
+ export function listRegisteredTools(registeredTools = tools) {
8
+ return {
9
+ tools: registeredTools.map(({ name, description, inputSchema, outputSchema, annotations }) => ({
10
+ name,
11
+ description,
12
+ inputSchema,
13
+ outputSchema,
14
+ annotations,
15
+ })),
16
+ };
17
+ }
18
+ export async function callRegisteredTool(name, args, registeredTools = tools) {
19
+ const tool = registeredTools.find((candidate) => candidate.name === name);
20
+ if (!tool) {
21
+ throw new McpError(ErrorCode.InvalidParams, `Tool not found: ${name}`);
22
+ }
23
+ return tool.handler(args);
24
+ }
25
+ export function listRegisteredResources(registeredResources = resources) {
26
+ return {
27
+ resources: registeredResources.map(({ uri, name, description, mimeType, size, annotations, title }) => ({
28
+ uri,
29
+ name,
30
+ description,
31
+ mimeType,
32
+ size,
33
+ annotations,
34
+ title,
35
+ })),
36
+ };
37
+ }
38
+ export async function readRegisteredResource(uri, registeredResources = resources) {
39
+ const resource = registeredResources.find((candidate) => candidate.uri === uri);
40
+ if (!resource) {
41
+ throw new McpError(ErrorCode.InvalidParams, `Resource not found: ${uri}`);
42
+ }
43
+ return {
44
+ contents: [await resource.read()],
45
+ };
46
+ }
47
+ export function createMcpServer(options = {}) {
48
+ const registeredTools = options.tools ?? tools;
49
+ const registeredResources = options.resources ?? resources;
50
+ const server = new Server({
51
+ name: '@besales/mcp',
52
+ version: readPackageVersion(),
53
+ }, {
54
+ capabilities: {
55
+ tools: {},
56
+ resources: {},
57
+ },
58
+ });
59
+ server.setRequestHandler(ListToolsRequestSchema, async () => listRegisteredTools(registeredTools));
60
+ server.setRequestHandler(CallToolRequestSchema, async (request) => callRegisteredTool(request.params.name, request.params.arguments ?? {}, registeredTools));
61
+ server.setRequestHandler(ListResourcesRequestSchema, async () => listRegisteredResources(registeredResources));
62
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => readRegisteredResource(request.params.uri, registeredResources));
63
+ return server;
64
+ }
65
+ export async function startMcpServer(options = {}) {
66
+ const server = createMcpServer(options);
67
+ if (options.stdio === false) {
68
+ return { server };
69
+ }
70
+ const transport = new StdioServerTransport();
71
+ await server.connect(transport);
72
+ return { server, transport };
73
+ }
74
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Resource, Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ export interface ToolContract {
3
+ readonly name: string;
4
+ readonly description: string;
5
+ readonly inputSchema: Tool['inputSchema'];
6
+ }
7
+ export interface ResourceContract {
8
+ readonly uri: string;
9
+ readonly name: string;
10
+ readonly description: string;
11
+ readonly mimeType: NonNullable<Resource['mimeType']>;
12
+ }
13
+ interface McpToolsContract {
14
+ readonly tools: ToolContract[];
15
+ readonly resources: ResourceContract[];
16
+ readonly deferred_phase4_setup_tools?: readonly ToolContract[];
17
+ }
18
+ export declare function getMcpToolsContract(): McpToolsContract;
19
+ export declare function getActiveToolContracts(): readonly ToolContract[];
20
+ export declare function getResourceContracts(): readonly ResourceContract[];
21
+ export declare function getToolContract(name: string): ToolContract;
22
+ export {};
@@ -0,0 +1,24 @@
1
+ import { readFileSync } from 'node:fs';
2
+ let cachedContract = null;
3
+ export function getMcpToolsContract() {
4
+ if (cachedContract) {
5
+ return cachedContract;
6
+ }
7
+ const contractUrl = new URL('../schemas/mcp-tools.json', import.meta.url);
8
+ cachedContract = JSON.parse(readFileSync(contractUrl, 'utf-8'));
9
+ return cachedContract;
10
+ }
11
+ export function getActiveToolContracts() {
12
+ return getMcpToolsContract().tools;
13
+ }
14
+ export function getResourceContracts() {
15
+ return getMcpToolsContract().resources;
16
+ }
17
+ export function getToolContract(name) {
18
+ const contract = getActiveToolContracts().find((tool) => tool.name === name);
19
+ if (!contract) {
20
+ throw new Error(`MCP tool contract not found: ${name}`);
21
+ }
22
+ return contract;
23
+ }
24
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/tools/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAuBvC,IAAI,cAAc,GAA4B,IAAI,CAAC;AAEnD,MAAM,UAAU,mBAAmB;IACjC,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAqB,CAAC;IACpF,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,mBAAmB,EAAE,CAAC,KAAK,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,mBAAmB,EAAE,CAAC,SAAS,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAE7E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,307 @@
1
+ import { type ZodType } from 'zod';
2
+ import type { ApiMethod, ToolApiClient } from '../http/api-client.js';
3
+ export interface ApiToolRequest {
4
+ readonly method?: ApiMethod;
5
+ readonly path: string;
6
+ readonly body?: unknown;
7
+ }
8
+ export interface ToolDefinition<Input> {
9
+ readonly name: string;
10
+ readonly requiredFields: readonly string[];
11
+ readonly schema: ZodType<Input>;
12
+ readonly defaultWorkspaceId?: boolean;
13
+ readonly createRequest: (input: Input) => ApiToolRequest;
14
+ readonly enhanceResponse?: (response: unknown, input: Input) => unknown;
15
+ readonly restartToolName?: string;
16
+ }
17
+ export interface CreateToolsOptions {
18
+ readonly apiClient?: ToolApiClient;
19
+ }
20
+ export declare const toolDefinitions: readonly [ToolDefinition<{
21
+ name: string;
22
+ source: "from_dialogues" | "from_files" | "from_scratch" | "ai_generated";
23
+ workspace_id?: string | undefined;
24
+ description?: string | undefined;
25
+ }>, ToolDefinition<{
26
+ icp_id: string;
27
+ crm_connection_id: string;
28
+ outcome_filter: ("won" | "lost" | "in_progress")[];
29
+ days_ago: number;
30
+ anonymize: boolean;
31
+ gdpr_confirmed: boolean;
32
+ }>, ToolDefinition<{
33
+ icp_profile_id: string;
34
+ workspace_id?: string | undefined;
35
+ business_context?: {
36
+ [x: string]: unknown;
37
+ } | undefined;
38
+ }>, ToolDefinition<{
39
+ operation_id: string;
40
+ icp_profile_id: string;
41
+ segments: {
42
+ name: string;
43
+ id?: string | undefined;
44
+ description?: string | undefined;
45
+ demographics?: {
46
+ [x: string]: unknown;
47
+ } | undefined;
48
+ pains?: unknown[] | undefined;
49
+ motivations?: unknown[] | undefined;
50
+ language_style?: {
51
+ [x: string]: unknown;
52
+ } | undefined;
53
+ }[];
54
+ personas: {
55
+ name: string;
56
+ segment_id: string;
57
+ description?: string | undefined;
58
+ pain_points?: unknown[] | undefined;
59
+ goals?: unknown[] | undefined;
60
+ objections?: {
61
+ [x: string]: unknown;
62
+ } | undefined;
63
+ messaging_hints?: {
64
+ [x: string]: unknown;
65
+ } | undefined;
66
+ }[];
67
+ workspace_id?: string | undefined;
68
+ }>, ToolDefinition<{
69
+ agent_id: string;
70
+ icp_profile_id?: string | undefined;
71
+ business_context?: {
72
+ [x: string]: unknown;
73
+ } | undefined;
74
+ style_hints?: {
75
+ language: string;
76
+ formality?: "formal" | "casual" | "friendly" | undefined;
77
+ verbosity?: "concise" | "balanced" | "detailed" | undefined;
78
+ } | undefined;
79
+ }>, ToolDefinition<{
80
+ agent_id: string;
81
+ operation_id: string;
82
+ stages: {
83
+ name: "structure_builder" | "industry_validator" | "prompt_tester" | "finalizer";
84
+ output: {
85
+ [x: string]: unknown;
86
+ };
87
+ }[];
88
+ final_content: string;
89
+ metadata?: {
90
+ total_tokens?: number | undefined;
91
+ models?: Record<string, string> | undefined;
92
+ } | undefined;
93
+ }>, ToolDefinition<{
94
+ agent_id: string;
95
+ base_version_id: string;
96
+ feedback: {
97
+ general_comments?: string | undefined;
98
+ selections?: {
99
+ [x: string]: unknown;
100
+ }[] | undefined;
101
+ };
102
+ }>, ToolDefinition<{
103
+ agent_id: string;
104
+ operation_id: string;
105
+ stages: {
106
+ name: "iteration_analysis" | "iteration_recommendation";
107
+ output: {
108
+ [x: string]: unknown;
109
+ };
110
+ }[];
111
+ proposed_changes: {
112
+ [x: string]: unknown;
113
+ }[];
114
+ preview_content: string;
115
+ }>, ToolDefinition<{
116
+ agent_id: string;
117
+ version_id: string;
118
+ modes: ("grammar" | "structure" | "industry" | "contradictions" | "completeness")[];
119
+ }>, ToolDefinition<{
120
+ agent_id: string;
121
+ operation_id: string;
122
+ stages: {
123
+ name: "grammar" | "structure" | "industry" | "aggregation";
124
+ output: {
125
+ [x: string]: unknown;
126
+ };
127
+ }[];
128
+ aggregated_issues: {
129
+ [x: string]: unknown;
130
+ }[];
131
+ }>, ToolDefinition<{
132
+ agent_id: string;
133
+ draft_version_id: string;
134
+ changelog_note?: string | undefined;
135
+ }>, ToolDefinition<{
136
+ agent_id: string;
137
+ scenario_ids?: string[] | undefined;
138
+ options?: {
139
+ check_routing: boolean;
140
+ check_pipeline_transitions: boolean;
141
+ check_agent_actions: boolean;
142
+ run_rag_golden_tests: boolean;
143
+ turns_per_scenario: number;
144
+ } | undefined;
145
+ }>, ToolDefinition<{
146
+ agent_id: string;
147
+ run_id: string;
148
+ }>, ToolDefinition<{
149
+ agent_id: string;
150
+ run_id: string;
151
+ operation_id: string;
152
+ findings: {
153
+ category: "hallucination" | "wrong_action" | "missed_trigger" | "wrong_pipeline_transition" | "rag_miss" | "bad_tone" | "other";
154
+ severity: "low" | "medium" | "critical";
155
+ message: string;
156
+ scenario_id?: string | undefined;
157
+ suggestion?: string | undefined;
158
+ turn_index?: number | undefined;
159
+ }[];
160
+ }>, ToolDefinition<{
161
+ agent_id: string;
162
+ simulation_id: string;
163
+ }>, ToolDefinition<{
164
+ agent_id: string;
165
+ simulation_id: string;
166
+ operation_id: string;
167
+ findings: {
168
+ category: "hallucination" | "wrong_action" | "bad_tone" | "other" | "missed_context" | "contradiction" | "off_topic";
169
+ severity: "low" | "medium" | "critical";
170
+ message: string;
171
+ dialogue_id?: string | undefined;
172
+ suggestion?: string | undefined;
173
+ reference_message_index?: number | undefined;
174
+ }[];
175
+ }>, ToolDefinition<{
176
+ agent_id: string;
177
+ target_count: number;
178
+ namespace_context?: string | undefined;
179
+ company_context?: string | undefined;
180
+ icp_profile_id?: string | undefined;
181
+ }>, ToolDefinition<{
182
+ agent_id: string;
183
+ operation_id: string;
184
+ qa_pairs: {
185
+ question: string;
186
+ answer: string;
187
+ tags?: string[] | undefined;
188
+ }[];
189
+ knowledge_space_id?: string | undefined;
190
+ }>, ToolDefinition<{
191
+ platform_id: string;
192
+ }>, ToolDefinition<{
193
+ platform_id: string;
194
+ }>, ToolDefinition<{
195
+ platform_id: string;
196
+ name: string;
197
+ model_lane: "CHEAP" | "STANDARD" | "DEEP";
198
+ description?: string | null | undefined;
199
+ default_icp_profile_id?: string | undefined;
200
+ }>, ToolDefinition<{
201
+ platform_id: string;
202
+ agent_id: string;
203
+ name?: string | undefined;
204
+ description?: string | null | undefined;
205
+ model_lane?: "CHEAP" | "STANDARD" | "DEEP" | undefined;
206
+ default_icp_profile_id?: string | null | undefined;
207
+ use_global_history?: boolean | undefined;
208
+ adapt_to_user_language?: boolean | undefined;
209
+ }>, ToolDefinition<{
210
+ platform_id: string;
211
+ agent_id: string;
212
+ tools: {
213
+ tool_id: string;
214
+ priority?: number | undefined;
215
+ is_enabled?: boolean | undefined;
216
+ agent_specific_conditions?: {
217
+ [x: string]: unknown;
218
+ } | null | undefined;
219
+ }[];
220
+ }>, ToolDefinition<{
221
+ platform_id: string;
222
+ explicit_confirmation?: boolean | undefined;
223
+ confirmation_reason?: string | undefined;
224
+ name?: string | undefined;
225
+ model?: string | undefined;
226
+ temperature?: number | undefined;
227
+ max_tokens?: number | null | undefined;
228
+ additional_prompt?: string | null | undefined;
229
+ adapt_to_user_language?: boolean | undefined;
230
+ skip_llm_routing?: boolean | undefined;
231
+ direct_routing_agent_id?: string | null | undefined;
232
+ }>, ToolDefinition<{
233
+ platform_id: string;
234
+ routing_strategy: "LEAD_STATUS" | "CUSTOM_VARIABLE";
235
+ custom_router_prompt: string;
236
+ explicit_confirmation?: boolean | undefined;
237
+ confirmation_reason?: string | undefined;
238
+ routing_rule_id?: string | undefined;
239
+ deal_mode?: string | null | undefined;
240
+ custom_variable_id?: string | null | undefined;
241
+ variable_value?: string | null | undefined;
242
+ is_enabled?: boolean | undefined;
243
+ priority?: number | undefined;
244
+ skip_llm?: boolean | undefined;
245
+ direct_agent_id?: string | null | undefined;
246
+ lead_statuses?: {
247
+ lead_status_name?: string | null | undefined;
248
+ lead_status_pipeline_crm_id?: string | null | undefined;
249
+ lead_status_pipeline_id?: number | null | undefined;
250
+ lead_status_id?: number | null | undefined;
251
+ }[] | undefined;
252
+ }>, ToolDefinition<{
253
+ platform_id: string;
254
+ agent_id: string;
255
+ explicit_confirmation?: boolean | undefined;
256
+ confirmation_reason?: string | undefined;
257
+ trigger_id?: string | undefined;
258
+ name?: string | undefined;
259
+ condition?: string | undefined;
260
+ is_enabled?: boolean | undefined;
261
+ priority?: number | undefined;
262
+ stop_propagation?: boolean | undefined;
263
+ scope?: "ON_USER_MESSAGE" | undefined;
264
+ metadata?: {
265
+ [x: string]: unknown;
266
+ } | undefined;
267
+ actions?: {
268
+ [x: string]: unknown;
269
+ }[] | undefined;
270
+ }>, ToolDefinition<{
271
+ platform_id: string;
272
+ updates: {
273
+ [x: string]: unknown;
274
+ };
275
+ explicit_confirmation?: boolean | undefined;
276
+ confirmation_reason?: string | undefined;
277
+ }>, ToolDefinition<{
278
+ platform_id: string;
279
+ name: string;
280
+ type: "MEETING_REMINDER" | "INACTIVE_USER_REACTIVATION" | "LOST_CLIENTS";
281
+ trigger: "LOST_CLIENTS" | "USER_INACTIVITY" | "DEAL_CLOSED" | "BIRTHDAY_DATE" | "MEETING_TIME" | "CUSTOM_SCHEDULE";
282
+ config: {
283
+ [x: string]: unknown;
284
+ };
285
+ explicit_confirmation?: boolean | undefined;
286
+ confirmation_reason?: string | undefined;
287
+ sequence_id?: string | undefined;
288
+ description?: string | null | undefined;
289
+ enabled?: boolean | undefined;
290
+ }>, ToolDefinition<{
291
+ platform_id: string;
292
+ updates: {
293
+ [x: string]: unknown;
294
+ };
295
+ explicit_confirmation?: boolean | undefined;
296
+ confirmation_reason?: string | undefined;
297
+ }>, ToolDefinition<{
298
+ platform_id: string;
299
+ settings: {
300
+ [x: string]: unknown;
301
+ };
302
+ explicit_confirmation?: boolean | undefined;
303
+ confirmation_reason?: string | undefined;
304
+ }>, ToolDefinition<{
305
+ platform_id: string;
306
+ audit_log_id: string;
307
+ }>];