Skip to main content
Glama
alroy

Gong-MCP

by alroy

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:

  1. list_calls — List calls by date range (auto-paginates across Gong's cursor). Returns call IDs, titles, dates, durations.

  2. get_call_details — Get participants with names, titles, emails, and internal/external classification, plus topics and trackers.

  3. get_transcripts — Get full transcripts segmented by speaker with timestamps. Match speakerId against participants from get_call_details.

  4. 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.

  5. 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 install

2. Build

npm run build

3. Test locally (optional)

GONG_ACCESS_KEY=your-access-key GONG_SECRET_KEY=your-secret-key npm start

The 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 ID

API 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 participants

  • POST /v2/calls/transcript — get call transcripts

  • GET /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 node is 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_calls tool has a maxCalls parameter (default 50).

  • Narrow the date range so fewer calls are paginated.

Available Tools

5 tools
get_call_detailsGet Call DetailsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
callIdsYesArray of Gong call IDs (max 20)

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 TranscriptsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
callIdsYesArray of Gong call IDs (max 10)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 UsersA
Read-only

List Gong users (company team members). Returns id, name, email, title. Use to map speaker IDs in transcripts to people.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 CallsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toDateTimeYesEnd of date range in ISO-8601 format (e.g., '2026-03-28T23:59:59Z')
fromDateTimeYesStart of date range in ISO-8601 format (e.g., '2026-03-01T00:00:00Z')

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 TranscriptsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsYesKeywords to search for in transcripts
maxCallsNoMax calls to scan (default 50, hard cap 200)
toDateTimeYesEnd of date range (ISO-8601)
fromDateTimeYesStart of date range (ISO-8601)

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 5 tool updatesv1.0.0
    • First observedget_call_details
    • First observedget_transcripts
    • First observedget_users
    • First observedlist_calls
    • First observedsearch_calls

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

Five well-scoped tools that each cover a distinct aspect of Gong call data retrieval and user mapping. No redundancy or missing obvious operations.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for interacting with Gong's sales engagement platform, enabling access to call recordings, analytics, and CRM data.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for the Gong API, enabling search and retrieval of calls, transcripts, attendees, next steps, and more.
    7
    535 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying Gong calls and transcripts through natural language, allowing users to list calls with date filtering and retrieve detailed transcripts with participant context.
    MIT