tl;dv MCP for Zoom, Google Meet and MS Teams
OfficialEnables integration with Google services (specifically Google Meet) for accessing and analyzing meeting data through the tl;dv API
Enables access to Google Meet meeting data through the tl;dv API, including listing meetings, retrieving meeting metadata, transcripts, and AI-generated highlights
Provides access to Zoom meeting data through the tl;dv API, allowing retrieval of meeting lists, detailed metadata, transcripts, and meeting highlights
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., "@tl;dv MCP for Zoom, Google Meet and MS Teamssummarize my last team meeting"
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.
Official MCP Server for tl;dv API
🚀 The First and Only MCP Server for Google Meet, Zoom, and Microsoft Teams Integration
This project provides a Model Context Protocol (MCP) server enabling seamless interaction with the tl;dv API. As the pioneering MCP solution for video conferencing platforms, it unlocks the power of tl;dv's meeting intelligence across Google Meet, Zoom, and Microsoft Teams through a standardized interface. This integration allows AI models and MCP clients to access, analyze, and derive insights from your meetings across all major platforms in one unified way.
Features
List Meetings: Retrieve meetings based on filters (query, date range, participation status, type) across all supported platforms.
Get Meeting Metadata: Fetch detailed information for a specific meeting by ID, regardless of the platform it was hosted on.
Get Transcript: Obtain the transcript for any meeting ID, with consistent formatting across all platforms.
Get Highlights: Retrieve AI-generated highlights for meetings from any supported platform.
Import Meeting (Coming Soon): Functionality to import meetings via URL from any supported platform.
Related MCP server: Granola MCP Server
Prerequisites
tl;dv Account: A Business or Enterprise tl;dv account is required.
tl;dv API Key: You need an API key, which can be requested from your tl;dv settings: https://tldv.io/app/settings/personal-settings/api-keys.
Node.js & npm (for Node installation): If installing via Node.js, ensure Node.js and npm are installed.
Docker (for Docker installation): If installing via Docker, ensure Docker is installed and running.
Installation and Configuration
You can run this MCP server using either Docker or Node.js. Configure your MCP client (e.g., Claude Desktop, Cursor) to connect to the server.
Using Docker
Go in the repo.
Build the Docker image:
docker build -t tldv-mcp-server .Configure your MCP Client: Update your MCP client's configuration file (e.g.,
claude_desktop_config.json). The exact location and format may vary depending on the client.{ "mcpServers": { "tldv": { "command": "docker", "args": [ "run", "-i", "--init", "--rm", "-e", "TLDV_API_KEY=<your-tldv-api-key>", "tldv-mcp-server" ] } } }Replace
<your-tldv-api-key>with your actual tl;dv API key.
Using Node.js
Install dependencies:
npm installBuild the server:
npm run buildThis command creates a
distfolder containing the compiled server code (index.js).Configure your MCP Client: Update your MCP client's configuration file.
{ "mcpServers": { "tldv": { "command": "node", "args": ["/absolute/path/to/tldv-mcp-server/dist/index.js"], "env": { "TLDV_API_KEY": "your_tldv_api_key" } } } }Replace
/absolute/path/to/tldv-mcp-server/dist/index.jswith the correct absolute path to the built server file andyour_tldv_api_keywith your tl;dv API key.
Refer to your specific MCP client's documentation for detailed setup instructions (e.g., Claude Tools).
Disclaimer Once you are updating this config file, you will need to kill your MCP client and restart it for the changes to be effective.
Development
Install dependencies:
npm installSet up Environment Variables: Copy the example environment file:
cp .env.example .envEdit the
.envfile and add yourTLDV_API_KEY. Other variables can be configured as needed.Run in development mode: This command starts the server with auto-reloading on file changes:
npm run watchUpdate client for local development: Configure your MCP client to use the local development server path (typically
/path/to/your/project/dist/index.js). Ensure theTLDV_API_KEYis accessible, either through the client'senvconfiguration or loaded via the.envfile by the server process.Reload your MCP Client Since you are running the watch command, it will recompiled a new version. Reloading your Client (e.g Claud Desktop App), your changes will be effective.
Debugging
Console Logs: Check the console output when running
npm run devfor detailed logs. The server uses thedebuglibrary; you can control log levels via environment variables (e.g.,DEBUG=tldv-mcp:*).Node.js Debugger: Utilize standard Node.js debugging tools (e.g., Chrome DevTools Inspector, VS Code debugger) by launching the server process with the appropriate flags (e.g.,
node --inspect dist/index.js).MCP Client Logs: Check the logs provided by your MCP client, which might show the requests sent and responses received from this server.
Learn More
Available Tools
4 toolsget-highlightsC
Allows you to get highlights from a meeting by providing a meeting ID.
| Name | Required | Description | Default |
|---|---|---|---|
| meetingId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'get highlights' but doesn't specify what 'highlights' entail (e.g., key points, summaries, timestamps), whether this is a read-only operation, or any constraints like rate limits or authentication needs. The description is too vague to adequately inform behavior.
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?
The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a simple tool, though it could be more informative.
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?
Given the tool's complexity (simple retrieval), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'highlights' are, how they're formatted, or any behavioral aspects, leaving significant gaps for an AI agent to understand the tool fully.
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 description mentions the parameter 'meetingId' implicitly ('by providing a meeting ID'), but with 0% schema description coverage, it doesn't add meaningful semantics beyond what the schema already indicates (a required string). Since there's only one parameter, the baseline is 4, but the description fails to explain what a 'meeting ID' is or where to find it, so it's scored lower.
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?
The description states the tool's purpose ('get highlights from a meeting') with a specific verb and resource, but it doesn't distinguish it from sibling tools like 'get-meeting-metadata' or 'get-transcript' which also retrieve meeting-related data. The purpose is clear but lacks 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?
The description provides no guidance on when to use this tool versus alternatives like 'get-transcript' or 'get-meeting-metadata'. It only states what the tool does without indicating context, exclusions, or prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-meeting-metadataC
Get a meeting by its ID. The meeting ID is a unique identifier for a meeting. It will return the meeting metadata, including the name, the date, the organizer, participants and more.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it indicates this is a read operation ('Get'), it doesn't disclose important behavioral traits like authentication requirements, rate limits, error conditions, or whether the meeting ID must be in a specific format. The description provides basic functional information but lacks operational context.
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?
The description is appropriately concise with three sentences that each serve a purpose: stating the action, explaining the parameter, and describing the return value. It's front-loaded with the core functionality and avoids unnecessary elaboration while covering essential information.
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 single-parameter read tool with no annotations and no output schema, the description provides basic functional coverage but lacks important contextual details. It explains what the tool does and what it returns at a high level, but doesn't address authentication, error handling, or provide examples of the metadata structure that will be returned.
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 schema has 0% description coverage for its single parameter 'id'. The description adds some semantic context by stating 'The meeting ID is a unique identifier for a meeting', which provides meaning beyond the bare schema. However, it doesn't specify format requirements, examples, or constraints, leaving significant gaps in parameter understanding.
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?
The description clearly states the tool's purpose: 'Get a meeting by its ID' and specifies it returns meeting metadata including name, date, organizer, and participants. It uses specific verbs ('Get', 'return') and identifies the resource ('meeting'), but doesn't explicitly differentiate from sibling tools like 'list-meetings' or 'get-transcript'.
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?
The description provides no guidance on when to use this tool versus alternatives like 'list-meetings' or 'get-transcript'. It mentions the meeting ID is required but doesn't explain when this tool is appropriate compared to other meeting-related tools available on the server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-transcriptC
Get transcript by meeting ID. The transcript is a list of messages exchanged between the participants in the meeting. It's time-stamped and contains the speaker and the message
| Name | Required | Description | Default |
|---|---|---|---|
| meetingId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the output format (list of time-stamped messages with speaker info) but lacks critical details: it doesn't mention whether this is a read-only operation, potential errors (e.g., invalid meeting ID), authentication needs, rate limits, or data freshness. For a tool with no annotations, this is a significant gap in transparency.
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?
The description is appropriately sized with two sentences: the first states the core purpose, and the second elaborates on the transcript content. It's front-loaded with the key action ('Get transcript by meeting ID') and avoids unnecessary details. However, it could be slightly more structured by explicitly separating purpose from output details.
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?
Given the tool's complexity (retrieving structured data), lack of annotations, and no output schema, the description is incomplete. It covers the output format but misses behavioral aspects like error handling, permissions, and usage context. Without annotations or output schema, the description should provide more comprehensive guidance to aid the agent.
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 input schema has 1 parameter with 0% description coverage, so the description must compensate. It adds meaning by explaining that 'meetingId' is used to retrieve a transcript, but it doesn't provide format examples (e.g., UUID), validation rules, or where to obtain the ID. This gives basic context but falls short of fully compensating for the schema's lack of descriptions.
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?
The description clearly states the tool's purpose: 'Get transcript by meeting ID' specifies the verb (get) and resource (transcript). It further elaborates that the transcript contains time-stamped messages with speaker information, which helps distinguish it from sibling tools like 'get-highlights' or 'get-meeting-metadata'. However, it doesn't explicitly differentiate from 'list-meetings', which is a minor gap.
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?
The description provides no guidance on when to use this tool versus alternatives like 'get-highlights' or 'get-meeting-metadata'. It mentions the transcript content but doesn't specify use cases, prerequisites, or exclusions. This leaves the agent with insufficient context to choose between sibling tools effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-meetingsC
List all meetings based on the filters provided. You can filter by date, status, and more. Those meetings are the sames you have access to in the TLDV app.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| page | No | ||
| limit | No | ||
| from | No | ||
| to | No | ||
| onlyParticipated | No | ||
| meetingType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions filtering capability and TLDV app access, but fails to describe pagination behavior (implied by 'page' and 'limit' parameters), rate limits, authentication requirements, or what 'status' filtering entails. For a 7-parameter tool with zero annotation coverage, this leaves significant behavioral gaps.
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?
The description is appropriately concise with two sentences. The first sentence front-loads the core functionality (listing with filters), and the second adds context about access. No wasted words, though the TLDV app reference could be more informative.
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 7-parameter tool with no annotations and no output schema, the description is incomplete. It doesn't explain return values, pagination behavior, error conditions, or detailed parameter usage. The TLDV app reference is insufficient context. Given the complexity and lack of structured data, the description should provide more operational guidance.
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 0%, so the description must compensate. It mentions filtering by 'date, status, and more' which partially maps to 'from', 'to', and possibly 'meetingType' parameters, but doesn't explain the 'query' parameter, 'onlyParticipated', pagination parameters, or the meaning of 'status' versus 'meetingType'. With 7 undocumented parameters, the description adds minimal semantic value.
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?
The description clearly states the verb ('List') and resource ('meetings'), and specifies filtering capability. It distinguishes from siblings like 'get-highlights' or 'get-transcript' by focusing on listing meetings rather than retrieving specific content. However, it doesn't explicitly differentiate from 'get-meeting-metadata' which might have overlapping functionality.
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?
The description mentions filtering by date, status, and more, but provides no guidance on when to use this tool versus sibling tools like 'get-meeting-metadata'. It doesn't specify prerequisites, alternatives, or exclusions. The TLDV app reference is vague and doesn't help the agent understand usage context.
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.
4 tool updates
v1.0.0- First observed
get-highlights - First observed
get-meeting-metadata - First observed
get-transcript - First observed
list-meetings
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: get-highlights retrieves highlights, get-meeting-metadata provides metadata, get-transcript fetches the transcript, and list-meetings lists meetings with filters. There is no overlap in functionality, making it easy for an agent to select the correct tool.
All tool names follow a consistent verb_noun pattern (e.g., get-highlights, get-meeting-metadata, get-transcript, list-meetings). The naming is uniform and predictable, using snake_case throughout with clear action prefixes.
With 4 tools, the count is reasonable for a meeting-focused server, covering key operations like listing, retrieving metadata, transcripts, and highlights. It is slightly lean but well-scoped, as each tool serves a distinct purpose without being overwhelming.
The tool set covers essential read operations for meetings (list, metadata, transcript, highlights), which aligns well with the server's purpose of accessing meeting data. A minor gap exists in write operations (e.g., creating or updating meetings), but agents can still perform core workflows effectively.
Maintenance
Related MCP Connectors
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.
AI-native scheduler that lives in Claude. Describe meetings in plain English; Heldly does the rest.
Search and read your Laxis meeting transcripts, AI summaries, and participants from Claude.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceIntegrates with Claude to enable intelligent querying of documentation data, transforming crawled technical documentation into an actionable resource that LLMs can directly interact with.2,104Apache 2.0
- AlicenseAqualityCmaintenanceIntegrates local Granola.ai meeting intelligence with Claude Desktop to enable searching and analyzing meeting transcripts, notes, and summaries. Users can perform natural language queries to retrieve meeting details, analyze participant patterns, and access full speaker-identified conversations.5MIT
- AlicenseNot gradedqualityDmaintenanceBring your Plaud Note recordings into Claude Desktop. Search meetings, pull transcripts, and ask Claude about your notes — directly from chat.1MIT
- AlicenseNot gradedqualityCmaintenanceBridges Granola.ai meeting intelligence with Claude Desktop, enabling natural language access to meeting transcripts, notes, and insights.95MIT