Gong-MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Gong-MCPSearch for 'product launch' in transcripts this month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Gong MCP
An MCP that exposes Gong call data to Claude Desktop. Part of the PM Signal Intelligence system.
What it does
Exposes five tools to Claude:
list_calls — List calls by date range (auto-paginates across Gong's cursor). Returns call IDs, titles, dates, durations.
get_call_details — Get participants with names, titles, emails, and internal/external classification, plus topics and trackers.
get_transcripts — Get full transcripts segmented by speaker with timestamps. Match
speakerIdagainst participants fromget_call_details.search_calls — Search for keywords across transcripts in a date range. Returns matching segments with speaker and timestamp context. Optional
maxCalls(default 50, max 200) bounds how many calls are scanned.get_users — List Gong users (id, name, email, title). Use to map speaker IDs to people.
Related MCP server: gong-mcp
Prerequisites
Node.js 18+
A Gong API key (access key + secret key). Get this from your Gong admin: Gong > Settings > Technical > API.
Setup
1. Install dependencies
npm install2. Build
npm run build3. Test locally (optional)
GONG_ACCESS_KEY=your-access-key GONG_SECRET_KEY=your-secret-key npm startThe server communicates over stdio (stdin/stdout), so you won't see output in the terminal. It's designed to be spawned by Claude Desktop.
4. Add to Claude Desktop
Open Claude Desktop > Settings > Developer > App Config File.
Add the following to the mcpServers section (create the section if it doesn't exist):
{
"mcpServers": {
"gong": {
"command": "node",
"args": ["/absolute/path/to/gong-mcp-server/build/index.js"],
"env": {
"GONG_ACCESS_KEY": "your-access-key",
"GONG_SECRET_KEY": "your-secret-key"
}
}
}
}Replace /absolute/path/to/gong-mcp-server with the actual path on your machine.
5. Restart Claude Desktop
After saving the config, restart Claude Desktop. The Gong connector should appear in Settings > Connectors.
6. Set permissions
In Settings > Connectors > gong, set tool permissions:
list_calls: Allow
get_call_details: Allow
get_transcripts: Allow
search_calls: Allow
get_users: Allow
Usage in Claude
Once connected, Claude can use the Gong tools directly:
"List all Gong calls from last week"
→ Claude calls list_calls with the date range
"Show me the transcript for call 1234567890"
→ Claude calls get_transcripts with the call ID
"Search for mentions of 'city manager' in Gong calls this month"
→ Claude calls search_calls with the query and date range
"Who was on the call with City of Durham on March 15?"
→ Claude calls get_call_details with the call IDAPI rate limits
Gong's API has rate limits. The server retries 429 responses up to 3 times with exponential backoff, honoring Retry-After when present. If you still see rate-limit errors during large backfills, reduce maxCalls on search_calls or narrow the date range.
Gong API reference
The server uses these Gong v2 endpoints:
GET /v2/calls— list calls by date range (cursor-paginated)POST /v2/calls/extensive— get detailed call data with participantsPOST /v2/calls/transcript— get call transcriptsGET /v2/users— list users (cursor-paginated)
Full API documentation: https://gong.app.gong.io/settings/api/documentation
Troubleshooting
Server not appearing in Claude Desktop connectors:
Check that the path in the config is absolute and correct.
Verify that
nodeis accessible from the system PATH.Restart Claude Desktop after config changes.
Authentication errors:
Verify GONG_ACCESS_KEY and GONG_SECRET_KEY are correct.
Gong API keys use Basic auth (access_key:secret_key). The server handles encoding automatically.
Empty results:
Check the date range format (ISO 8601 with timezone).
Verify that calls exist in the specified range in Gong's UI.
Some Gong plans restrict API access. Confirm your plan includes API access.
Rate limit errors:
Reduce batch sizes. The
search_callstool has amaxCallsparameter (default 50).Narrow the date range so fewer calls are paginated.
Available Tools
5 toolsget_call_detailsGet Call DetailsARead-only
Get detailed info about specific Gong calls including participants (name, email, title, internal vs external), topics, and trackers. Provide call IDs from list_calls.
| Name | Required | Description | Default |
|---|---|---|---|
| callIds | Yes | Array of Gong call IDs (max 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe, non-mutating read, so the description carries a lighter burden. It adds nothing about batching limits, partial failure behavior, or auth requirements beyond what annotations and the schema already convey, making 3 the appropriate baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the capability and the returned content come first, and the input instruction follows. No filler, though the parenthetical participant enumeration is slightly dense at the cost of skim-ability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates what comes back (participants with name/email/title/internal-vs-external, topics, trackers), which is exactly what the agent needs to know for a detail-fetch tool. The remaining gap is that the 20-ID batch limit and any partial-result behavior are left to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, so the schema fully documents the type and the max-20 constraint. The description only adds provenance ('from list_calls'), which is a small but real supplement over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get detailed info') and resource ('specific Gong calls') and even enumerates the returned sub-fields (participants, topics, trackers). It is clearly distinguishable from list_calls, but it does not explicitly differentiate itself from get_transcripts, which covers a similar call-scoped area.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Provide call IDs from list_calls" gives workflow guidance on where the required input originates, which is genuinely useful. However, it offers no exclusions or routing guidance versus siblings like get_transcripts or search_calls, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcriptsGet Call TranscriptsARead-only
Retrieve full transcripts for Gong calls segmented by speaker with timestamps. Match speakerId against parties from get_call_details to identify who said what.
| Name | Required | Description | Default |
|---|---|---|---|
| callIds | Yes | Array of Gong call IDs (max 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the description need not restate it. It does add genuine behavioral detail — output is speaker-segmented with timestamps, and speakerId must be joined against parties — but says nothing about transcript availability limits, payload size, or pagination for up to 10 calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The retrieval capability is front-loaded and the speakerId join is a compact, high-value second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully sketches the return shape (per-speaker segments with timestamps) and explains how to interpret speakerId, which is exactly what the schema cannot convey. It stops short of noting volume/availability caveats for a multi-call batch of transcripts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one parameter, so the schema already documents callIds and its max-10 constraint. The description adds no syntax, ordering, or ID-format guidance beyond that, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource (retrieve full transcripts for Gong calls) plus an explicit output shape (segmented by speaker with timestamps). It names get_call_details as the companion tool that supplies speaker identity, which separates it from list_calls, search_calls, and get_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives implied usage context by pointing at get_call_details for speakerId resolution, which is a useful workflow hint. However, it never states when to use this tool versus search_calls or list_calls, nor any exclusions (e.g. calls without recordings).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usersList Gong UsersARead-only
List Gong users (company team members). Returns id, name, email, title. Use to map speaker IDs in transcripts to people.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already covers the safety profile, so the remaining burden is low. The description adds that the call returns id, name, email, and title, which is genuinely useful for a no-output-schema tool; it does not mention pagination or result limits, so it falls short of 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, front-loaded with the identity of the resource and followed immediately by return shape and purpose. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only list tool with no output schema, the description supplies everything needed: what it lists, the fields returned, and why an agent would call it. Nothing required for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify and the baseline of 4 applies. The description correctly says nothing extraneous about arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("List Gong users") and disambiguates the resource with the parenthetical "company team members." Although the siblings (list_calls, get_call_details, get_transcripts, search_calls) share a call/transcript theme, the user-centric resource is unambiguous, so an agent can route here without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use to map speaker IDs in transcripts to people" gives a concrete trigger and even points at the related transcript tools, which is clear usage context. It stops short of any exclusion or explicit when-not guidance, so it doesn't reach the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_callsList Gong CallsARead-only
List calls recorded in Gong within a date range. Auto-paginates across Gong's cursor. Returns call ID, title, start time, duration, direction, and URL. Use this to find calls before retrieving transcripts.
| Name | Required | Description | Default |
|---|---|---|---|
| toDateTime | Yes | End of date range in ISO-8601 format (e.g., '2026-03-28T23:59:59Z') | |
| fromDateTime | Yes | Start of date range in ISO-8601 format (e.g., '2026-03-01T00:00:00Z') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, but the description adds real behavioral context beyond that: auto-pagination across Gong's cursor and the shape of the returned data. It stops short of disclosing pagination limits, rate limits, or date-range boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, no redundancy, with the core purpose and date-range scope front-loaded. Every sentence carries distinct information: purpose, pagination behavior, return fields, and usage routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields (ID, title, start time, duration, direction, URL) and explains pagination, which is exactly what an agent needs. Nothing essential for calling a two-parameter read tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters documented including ISO-8601 format examples, so the schema already does the heavy lifting. The description only restates the date-range framing and adds no new meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (calls recorded in Gong) scoped to a date range, which is clear. It does not explicitly distinguish itself from the sibling search_calls, so an agent must infer the boundary between listing and searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage context: 'Use this to find calls before retrieving transcripts,' routing the agent toward get_transcripts as a follow-up. It does not state when to prefer this over search_calls or when not to use it, so it lacks explicit alternative/exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_callsSearch Call TranscriptsARead-only
Search Gong call transcripts for keywords within a date range. Returns matching sentences with call context (case-insensitive substring match). Caps the number of calls scanned per invocation; narrow the date range if there are more.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Keywords to search for in transcripts | |
| maxCalls | No | Max calls to scan (default 50, hard cap 200) | |
| toDateTime | Yes | End of date range (ISO-8601) | |
| fromDateTime | Yes | Start of date range (ISO-8601) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description adds real behavioral value: case-insensitive substring matching, the return shape (matching sentences with call context), and the call-scan cap per invocation with remediation advice. It does not mention pagination handling or permission requirements, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, then behavior, then the operational caveat. No filler and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although no output schema exists, the description covers the return value (matching sentences with call context) and the scan-cap constraint, which are the main things an agent needs. Minor gaps remain around pagination or result limits, but the definition is substantially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter documented (keywords, ISO-8601 dates, maxCalls default 50 / hard cap 200). The description adds no syntax or format detail beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (Gong call transcripts) with scope (keywords, date range). It is clearly distinguishable from list_calls/get_transcripts in practice, but it never names a sibling or explicitly contrasts its purpose, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one operational guideline - narrow the date range if more calls exist than the scan cap - which implies usage context but does not state when to choose this over get_transcripts or list_calls. Usage is inferred rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
get_call_details - First observed
get_transcripts - First observed
get_users - First observed
list_calls - First observed
search_calls
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: listing calls, getting call details, retrieving transcripts, searching transcripts, and listing users. Descriptions explicitly clarify boundaries, such as get_call_details vs get_transcripts vs search_calls.
Mostly consistent verb_noun pattern (list_calls, get_call_details, get_transcripts, search_calls, get_users), but 'get_call_details' adds '_details' while others are simple. Minor deviation but still predictable.
Five well-scoped tools that each cover a distinct aspect of Gong call data retrieval and user mapping. No redundancy or missing obvious operations.
Covers core read-only workflows: listing calls, getting details, transcripts, searching, and user listing. Missing write operations (e.g., create/update call notes) but likely out of scope for an MCP server focused on data access.
Maintenance
Related MCP Connectors
Gong MCP — wraps the Gong API v2 (OAuth)
Read calls, contacts, users, teams and numbers; tag calls and create or update contacts.
Manage Speko voice-AI agents, sessions, calls, phone numbers, knowledge bases, evals, and docs.
Search meetings, export summaries and transcripts, and manage recordings from any AI tool.
Related MCP Servers
- AlicenseAqualityAmaintenanceProvides access to Gong.io sales conversation data, enabling users to query calls, retrieve transcripts, list users, and search calls with date filtering and pagination.15372 npm21MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for interacting with Gong's sales engagement platform, enabling access to call recordings, analytics, and CRM data.MIT
- AlicenseAqualityDmaintenanceMCP server for the Gong API, enabling search and retrieval of calls, transcripts, attendees, next steps, and more.7535 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Gong calls and transcripts through natural language, allowing users to list calls with date filtering and retrieve detailed transcripts with participant context.MIT