@shawnfroos/gong-lite 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Anthropic
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,73 @@
1
+ # Gong MCP Server
2
+
3
+ MCP server for accessing Gong meeting data through Claude Desktop.
4
+
5
+ ## Features
6
+
7
+ 10 tools for comprehensive Gong access:
8
+
9
+ | Tool | Description |
10
+ |------|-------------|
11
+ | `list_calls` | List calls with date/participant filters |
12
+ | `get_call` | Get call details |
13
+ | `get_transcript` | Full transcript with speaker attribution |
14
+ | `list_users` | List Gong users |
15
+ | `search_calls` | Search transcripts for keywords |
16
+ | `search_summaries` | Fast topic search via AI summaries |
17
+ | `get_call_summary` | AI summary, highlights, next steps |
18
+ | `get_call_analytics` | Call metrics and talk times |
19
+ | `export_call_markdown` | Export as markdown (summary or full) |
20
+ | `export_summaries_csv` | Batch export for spreadsheets |
21
+
22
+ ## Installation
23
+
24
+ ### Option 1: Desktop Extension (Recommended for Organizations)
25
+
26
+ 1. Download `gong-lite.mcpb`
27
+ 2. Double-click to install, or go to Claude Desktop → Settings → Extensions → Install
28
+ 3. Enter your Gong API credentials when prompted
29
+
30
+ ### Option 2: Manual Configuration
31
+
32
+ Add to Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
33
+
34
+ ```json
35
+ {
36
+ "mcpServers": {
37
+ "gong": {
38
+ "command": "node",
39
+ "args": ["/path/to/gong-lite/dist/index.js"],
40
+ "env": {
41
+ "GONG_ACCESS_KEY": "your-access-key",
42
+ "GONG_SECRET_KEY": "your-secret-key"
43
+ }
44
+ }
45
+ }
46
+ }
47
+ ```
48
+
49
+ ## Getting Gong API Credentials
50
+
51
+ 1. Log into Gong as an admin
52
+ 2. Go to **Company Settings** → **Ecosystem** → **API**
53
+ 3. Create a new API key
54
+ 4. Copy the Access Key and Secret Key
55
+
56
+ ## Usage Examples
57
+
58
+ - "Show me calls from last week"
59
+ - "Find calls where we discussed pricing"
60
+ - "Get the summary of my call with Acme Corp"
61
+ - "Export last month's call summaries as CSV"
62
+
63
+ ## Development
64
+
65
+ ```bash
66
+ npm install
67
+ npm run build
68
+ npm test
69
+ ```
70
+
71
+ ## License
72
+
73
+ MIT
@@ -0,0 +1,37 @@
1
+ /**
2
+ * CSV utilities for batch export
3
+ */
4
+ import type { GongCall, GongCallSummary, GongCallDetails } from './gong-client.js';
5
+ export interface CallSummaryRow {
6
+ call_id: string;
7
+ title: string;
8
+ date: string;
9
+ duration_minutes: number;
10
+ internal_participants: string;
11
+ external_participants: string;
12
+ ai_summary: string;
13
+ call_outcome: string;
14
+ topics: string;
15
+ key_points: string;
16
+ next_steps: string;
17
+ gong_url: string;
18
+ }
19
+ /**
20
+ * Escape a CSV field value
21
+ * - Wraps in quotes if contains comma, quote, or newline
22
+ * - Doubles any internal quotes
23
+ */
24
+ export declare function escapeCsvField(value: string | number | null | undefined): string;
25
+ /**
26
+ * Convert an array of objects to CSV string
27
+ */
28
+ export declare function toCsv<T>(rows: T[], columns: (keyof T)[]): string;
29
+ /**
30
+ * Build a summary row from call details and summary
31
+ */
32
+ export declare function buildSummaryRow(call: GongCall, details: GongCallDetails | null, summary: GongCallSummary | null): CallSummaryRow;
33
+ /**
34
+ * Generate CSV from call summary rows
35
+ */
36
+ export declare function generateSummariesCsv(rows: CallSummaryRow[]): string;
37
+ //# sourceMappingURL=csv-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-utils.d.ts","sourceRoot":"","sources":["../src/csv-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAa,MAAM,kBAAkB,CAAC;AAE9F,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAgBhF;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,CAUhE;AAyCD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,eAAe,GAAG,IAAI,EAC/B,OAAO,EAAE,eAAe,GAAG,IAAI,GAC9B,cAAc,CA0BhB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,CAiBnE"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * CSV utilities for batch export
3
+ */
4
+ /**
5
+ * Escape a CSV field value
6
+ * - Wraps in quotes if contains comma, quote, or newline
7
+ * - Doubles any internal quotes
8
+ */
9
+ export function escapeCsvField(value) {
10
+ if (value === null || value === undefined) {
11
+ return '';
12
+ }
13
+ const str = String(value);
14
+ // Check if escaping is needed
15
+ const needsEscaping = str.includes(',') || str.includes('"') || str.includes('\n') || str.includes('\r');
16
+ if (needsEscaping) {
17
+ // Double any quotes and wrap in quotes
18
+ return `"${str.replace(/"/g, '""')}"`;
19
+ }
20
+ return str;
21
+ }
22
+ /**
23
+ * Convert an array of objects to CSV string
24
+ */
25
+ export function toCsv(rows, columns) {
26
+ // Header row
27
+ const header = columns.map(col => escapeCsvField(String(col))).join(',');
28
+ // Data rows
29
+ const dataRows = rows.map(row => {
30
+ return columns.map(col => escapeCsvField(row[col])).join(',');
31
+ });
32
+ return [header, ...dataRows].join('\n');
33
+ }
34
+ /**
35
+ * Extract participants by affiliation from call details
36
+ */
37
+ function extractParticipants(parties, affiliation) {
38
+ if (!parties)
39
+ return [];
40
+ return parties
41
+ .filter(p => p.affiliation === affiliation && p.name)
42
+ .map(p => p.name);
43
+ }
44
+ /**
45
+ * Extract next steps from outline sections
46
+ */
47
+ function extractNextSteps(outline) {
48
+ if (!outline)
49
+ return [];
50
+ const nextSteps = [];
51
+ for (const section of outline) {
52
+ const sectionLower = section.section.toLowerCase();
53
+ if (sectionLower.includes('next step') ||
54
+ sectionLower.includes('action item') ||
55
+ sectionLower.includes('follow up') ||
56
+ sectionLower.includes('follow-up') ||
57
+ sectionLower.includes('to do') ||
58
+ sectionLower.includes('todo')) {
59
+ if (section.items) {
60
+ nextSteps.push(...section.items);
61
+ }
62
+ }
63
+ }
64
+ return nextSteps;
65
+ }
66
+ /**
67
+ * Build a summary row from call details and summary
68
+ */
69
+ export function buildSummaryRow(call, details, summary) {
70
+ const parties = details?.parties;
71
+ const internalParticipants = extractParticipants(parties, 'Internal');
72
+ const externalParticipants = extractParticipants(parties, 'External');
73
+ const topics = summary?.topics?.map(t => t.name) ?? [];
74
+ const keyPoints = summary?.keyPoints?.map(kp => kp.text) ?? [];
75
+ const nextSteps = extractNextSteps(summary?.outline);
76
+ const date = call.started ?? call.scheduled ?? '';
77
+ const durationMinutes = call.duration ? Math.round(call.duration / 60) : 0;
78
+ return {
79
+ call_id: call.id,
80
+ title: call.title ?? '',
81
+ date,
82
+ duration_minutes: durationMinutes,
83
+ internal_participants: internalParticipants.join(', '),
84
+ external_participants: externalParticipants.join(', '),
85
+ ai_summary: summary?.brief ?? '',
86
+ call_outcome: summary?.callOutcome ?? '',
87
+ topics: topics.join(', '),
88
+ key_points: keyPoints.join('; '),
89
+ next_steps: nextSteps.join('; '),
90
+ gong_url: call.url ?? `https://app.gong.io/call?id=${call.id}`,
91
+ };
92
+ }
93
+ /**
94
+ * Generate CSV from call summary rows
95
+ */
96
+ export function generateSummariesCsv(rows) {
97
+ const columns = [
98
+ 'call_id',
99
+ 'title',
100
+ 'date',
101
+ 'duration_minutes',
102
+ 'internal_participants',
103
+ 'external_participants',
104
+ 'ai_summary',
105
+ 'call_outcome',
106
+ 'topics',
107
+ 'key_points',
108
+ 'next_steps',
109
+ 'gong_url',
110
+ ];
111
+ return toCsv(rows, columns);
112
+ }
113
+ //# sourceMappingURL=csv-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-utils.js","sourceRoot":"","sources":["../src/csv-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,309 @@
1
+ export interface GongUser {
2
+ id: string;
3
+ emailAddress: string;
4
+ firstName: string;
5
+ lastName: string;
6
+ title?: string;
7
+ phoneNumber?: string;
8
+ extension?: string;
9
+ personalMeetingUrls?: string[];
10
+ settings?: {
11
+ webConferencesRecorded: boolean;
12
+ preventWebConferenceRecording: boolean;
13
+ telephonyCallsImported: boolean;
14
+ };
15
+ managerId?: string;
16
+ active: boolean;
17
+ created: string;
18
+ }
19
+ export interface GongCall {
20
+ id: string;
21
+ url: string;
22
+ title?: string;
23
+ scheduled?: string;
24
+ started?: string;
25
+ duration?: number;
26
+ primaryUserId?: string;
27
+ direction?: 'Inbound' | 'Outbound' | 'Conference' | 'Unknown';
28
+ system?: string;
29
+ scope?: 'Internal' | 'External' | 'Unknown';
30
+ media?: 'Video' | 'Audio';
31
+ language?: string;
32
+ workspaceId?: string;
33
+ sdrDisposition?: string;
34
+ clientUniqueId?: string;
35
+ customData?: string;
36
+ purpose?: string;
37
+ meetingUrl?: string;
38
+ isPrivate?: boolean;
39
+ calendarEventId?: string;
40
+ }
41
+ export interface GongCallDetails extends Omit<GongCall, 'media'> {
42
+ media?: 'Video' | 'Audio';
43
+ parties?: GongParty[];
44
+ content?: {
45
+ topics?: GongTopic[];
46
+ trackers?: GongTracker[];
47
+ pointsOfInterest?: GongPointOfInterest[];
48
+ brief?: string;
49
+ outline?: GongOutlineItem[];
50
+ highlights?: GongHighlight[];
51
+ callOutcome?: string;
52
+ keyPoints?: GongKeyPoint[];
53
+ };
54
+ interaction?: {
55
+ speakers?: GongSpeaker[];
56
+ interactionStats?: GongInteractionStats[];
57
+ video?: GongVideoInteraction[];
58
+ };
59
+ collaboration?: {
60
+ publicComments?: GongComment[];
61
+ };
62
+ context?: GongContext[];
63
+ mediaUrls?: {
64
+ audioUrl?: string;
65
+ videoUrl?: string;
66
+ };
67
+ }
68
+ export interface GongParty {
69
+ id: string;
70
+ emailAddress?: string;
71
+ name?: string;
72
+ title?: string;
73
+ userId?: string;
74
+ speakerId?: string;
75
+ context?: GongPartyContext[];
76
+ affiliation?: 'Internal' | 'External' | 'Unknown';
77
+ phoneNumber?: string;
78
+ methods?: string[];
79
+ }
80
+ export interface GongPartyContext {
81
+ system: string;
82
+ objects: GongContextObject[];
83
+ }
84
+ export interface GongContextObject {
85
+ objectType: string;
86
+ objectId: string;
87
+ fields: GongContextField[];
88
+ timing?: 'Now' | 'AtConversationTime';
89
+ }
90
+ export interface GongContextField {
91
+ name: string;
92
+ value: string;
93
+ }
94
+ export interface GongTopic {
95
+ name: string;
96
+ duration?: number;
97
+ }
98
+ export interface GongTracker {
99
+ id?: string;
100
+ name: string;
101
+ count?: number;
102
+ type?: string;
103
+ phrases?: GongTrackerPhrase[];
104
+ }
105
+ export interface GongTrackerPhrase {
106
+ count: number;
107
+ phrase: string;
108
+ occurrences?: GongPhraseOccurrence[];
109
+ }
110
+ export interface GongPhraseOccurrence {
111
+ startTime: number;
112
+ speakerId: string;
113
+ }
114
+ export interface GongPointOfInterest {
115
+ snippetStartTime?: number;
116
+ snippetEndTime?: number;
117
+ speakerId?: string;
118
+ type?: string;
119
+ }
120
+ export interface GongOutlineItem {
121
+ section: string;
122
+ startTime: number;
123
+ duration?: number;
124
+ items?: string[];
125
+ }
126
+ export interface GongHighlight {
127
+ text: string;
128
+ startTime: number;
129
+ speakerId?: string;
130
+ }
131
+ export interface GongKeyPoint {
132
+ text: string;
133
+ }
134
+ export interface GongCallSummary {
135
+ callId: string;
136
+ title?: string;
137
+ brief?: string;
138
+ keyPoints?: GongKeyPoint[];
139
+ highlights?: GongHighlight[];
140
+ outline?: GongOutlineItem[];
141
+ callOutcome?: string;
142
+ topics?: GongTopic[];
143
+ }
144
+ export interface GongSpeaker {
145
+ id: string;
146
+ userId?: string;
147
+ talkTime?: number;
148
+ }
149
+ export interface GongInteractionStats {
150
+ name: string;
151
+ value: number;
152
+ }
153
+ export interface GongVideoInteraction {
154
+ name: string;
155
+ duration?: number;
156
+ }
157
+ export interface GongComment {
158
+ id: string;
159
+ audioStartTime: number;
160
+ audioEndTime?: number;
161
+ commenterUserId: string;
162
+ comment: string;
163
+ posted: string;
164
+ inReplyTo?: string;
165
+ duringCall?: boolean;
166
+ }
167
+ export interface GongContext {
168
+ system: string;
169
+ objects: GongContextObject[];
170
+ }
171
+ export interface GongTranscript {
172
+ callId: string;
173
+ transcript: GongTranscriptEntry[];
174
+ }
175
+ export interface GongTranscriptEntry {
176
+ speakerId: string;
177
+ topic?: string;
178
+ sentences: GongSentence[];
179
+ }
180
+ export interface GongSentence {
181
+ start: number;
182
+ end: number;
183
+ text: string;
184
+ }
185
+ export interface GongCallsResponse {
186
+ requestId: string;
187
+ records: {
188
+ totalRecords: number;
189
+ currentPageSize: number;
190
+ currentPageNumber: number;
191
+ cursor?: string;
192
+ };
193
+ calls: GongCall[];
194
+ }
195
+ export interface GongCallDetailsResponse {
196
+ requestId: string;
197
+ records: {
198
+ totalRecords: number;
199
+ currentPageSize: number;
200
+ currentPageNumber: number;
201
+ };
202
+ calls: GongCallDetails[];
203
+ }
204
+ export interface GongTranscriptsResponse {
205
+ requestId: string;
206
+ records: {
207
+ totalRecords: number;
208
+ currentPageSize: number;
209
+ currentPageNumber: number;
210
+ cursor?: string;
211
+ };
212
+ callTranscripts: GongTranscript[];
213
+ }
214
+ export interface GongUsersResponse {
215
+ requestId: string;
216
+ records: {
217
+ totalRecords: number;
218
+ currentPageSize: number;
219
+ currentPageNumber: number;
220
+ cursor?: string;
221
+ };
222
+ users: GongUser[];
223
+ }
224
+ export interface GongClientConfig {
225
+ accessKey: string;
226
+ secretKey: string;
227
+ baseUrl?: string;
228
+ }
229
+ export interface ListCallsOptions {
230
+ fromDateTime?: string;
231
+ toDateTime?: string;
232
+ workspaceId?: string;
233
+ participantEmails?: string[];
234
+ cursor?: string;
235
+ maxRecords?: number;
236
+ }
237
+ export interface ListUsersOptions {
238
+ cursor?: string;
239
+ maxRecords?: number;
240
+ }
241
+ export interface SearchCallsOptions {
242
+ query: string;
243
+ fromDateTime?: string;
244
+ toDateTime?: string;
245
+ maxRecords?: number;
246
+ }
247
+ export interface SearchSummariesOptions {
248
+ query: string;
249
+ fromDateTime?: string;
250
+ toDateTime?: string;
251
+ maxRecords?: number;
252
+ }
253
+ export interface SearchSummaryResult {
254
+ call: GongCall;
255
+ summary: GongCallSummary;
256
+ matchedIn: string[];
257
+ }
258
+ export interface SearchCallResult {
259
+ call: GongCall;
260
+ matches: Array<{
261
+ speakerId: string;
262
+ text: string;
263
+ startTime: number;
264
+ }>;
265
+ }
266
+ export interface CallAnalytics {
267
+ callId: string;
268
+ duration?: number;
269
+ speakers: Array<{
270
+ id: string;
271
+ name?: string;
272
+ talkTime?: number;
273
+ talkRatio?: number;
274
+ }>;
275
+ interactionStats: Array<{
276
+ name: string;
277
+ value: number;
278
+ }>;
279
+ topics?: Array<{
280
+ name: string;
281
+ duration?: number;
282
+ }>;
283
+ }
284
+ export interface PaginatedResult<T> {
285
+ records: T[];
286
+ truncated: boolean;
287
+ totalFetched: number;
288
+ }
289
+ export declare class GongApiError extends Error {
290
+ statusCode: number;
291
+ requestId?: string | undefined;
292
+ constructor(message: string, statusCode: number, requestId?: string | undefined);
293
+ }
294
+ export declare class GongRateLimitError extends GongApiError {
295
+ retryAfter?: number | undefined;
296
+ constructor(message: string, retryAfter?: number | undefined, requestId?: string);
297
+ }
298
+ export declare function createGongClient(config: GongClientConfig): {
299
+ listCalls: (options?: ListCallsOptions) => Promise<PaginatedResult<GongCall>>;
300
+ getCall: (callId: string) => Promise<GongCallDetails | null>;
301
+ getCallSummary: (callId: string) => Promise<GongCallSummary | null>;
302
+ getCallAnalytics: (callId: string) => Promise<CallAnalytics | null>;
303
+ getTranscripts: (callIds: string[]) => Promise<GongTranscript[]>;
304
+ listUsers: (options?: ListUsersOptions) => Promise<PaginatedResult<GongUser>>;
305
+ searchCalls: (options: SearchCallsOptions) => Promise<PaginatedResult<SearchCallResult>>;
306
+ searchSummaries: (options: SearchSummariesOptions) => Promise<PaginatedResult<SearchSummaryResult>>;
307
+ };
308
+ export type GongClient = ReturnType<typeof createGongClient>;
309
+ //# sourceMappingURL=gong-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gong-client.d.ts","sourceRoot":"","sources":["../src/gong-client.ts"],"names":[],"mappings":"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"}