Joinly

v1.0.0β€’Communicationβ€’stable

🐍☁️ - MCP server to interact with browser-based meeting platforms (Zoom, Teams, Google Meet). Enables AI agents to send bots to online meetings, gather live transcripts, speak text, and send messages in the meeting chat.

agentic-aiai-agentai-toolconversational-aillm
Share:
518
Stars
0
Downloads
0
Weekly
0/5

What is Joinly?

Joinly is a Model Context Protocol (MCP) server that allows AI assistants like Claude, Cursor, and VS Code to 🐍☁️ - mcp server to interact with browser-based meeting platforms (zoom, teams, google meet). enables ai agents to send bots to online meetings, gather live transcripts, speak text, and send messages...

🐍☁️ - MCP server to interact with browser-based meeting platforms (Zoom, Teams, Google Meet). Enables AI agents to send bots to online meetings, gather live transcripts, speak text, and send messages in the meeting chat.

This server falls under the Communication category on MCPgee, the world's largest MCP server directory with 33,000+ servers.

Features

  • 🐍☁️ - MCP server to interact with browser-based meeting plat

Use Cases

Zoom, Teams, Google Meet bot automation
Live meeting transcription
Meeting chat message control
joinly-ai

Maintainer

LicenseMIT
Languagepython
Versionv1.0.0
UpdatedMay 20, 2026
Statushealthy
Maintenanceactive

Works with

ClaudeOpenAIwindowsmacoslinux

Installation

Manual Installation

npx joinly

Configuration

Configuration Details

Config File

claude_desktop_config.json

Performance

Response Metrics

Response Time< 200ms
ThroughputMedium

Resource Usage

Memory UsageLow
CPU UsageLow

How to Set Up and Use Joinly

Joinly is an open-source connector middleware that lets AI agents join and actively participate in Zoom, Google Meet, and Microsoft Teams calls via a Docker-based bot that can speak, listen, and send chat messages in real time. It exposes a set of MCP tools and resources so that any MCP-compatible agent can send a bot to a meeting URL, receive live transcripts, speak synthesized responses through text-to-speech, and send text to the meeting chat. The architecture supports bring-your-own-LLM (including local Ollama models), pluggable TTS/STT providers (Kokoro, ElevenLabs, Deepgram, Whisper), and composable MCP server chaining for adding tools like web search or Notion access during live calls.

Prerequisites

  • Docker installed (required β€” the bot bundles a Chromium browser and local models, approximately 2.3 GB image)
  • A meeting URL for Zoom, Google Meet, or Microsoft Teams
  • An LLM provider API key: OPENAI_API_KEY for OpenAI GPT models, ANTHROPIC_API_KEY for Claude, or a local Ollama setup (no key required)
  • Optional: ELEVENLABS_API_KEY or DEEPGRAM_API_KEY for cloud TTS/STT providers (Kokoro and Whisper are included locally)
  • An MCP-compatible client to connect external MCP servers to the joinly agent
1

Pull the Joinly Docker image

Pull the latest Joinly image (~2.3 GB) from the GitHub Container Registry. The image bundles Chromium, Kokoro TTS, Whisper STT, and all dependencies so no additional install is needed.

docker pull ghcr.io/joinly-ai/joinly:latest
2

Create a .env file with your LLM provider credentials

Create a .env file in your working directory with at minimum JOINLY_LLM_PROVIDER, JOINLY_LLM_MODEL, and the matching provider API key. The example uses OpenAI, but Anthropic Claude and Ollama are also supported.

# .env
JOINLY_LLM_PROVIDER=openai
JOINLY_LLM_MODEL=gpt-4o
OPENAI_API_KEY=your-openai-api-key

# For Claude:
# JOINLY_LLM_PROVIDER=anthropic
# JOINLY_LLM_MODEL=claude-opus-4-5
# ANTHROPIC_API_KEY=your-anthropic-api-key
3

Send the bot to a meeting (quickstart mode)

Run the container with --client and the meeting URL to immediately join as a conversational agent. The bot will appear as a participant named 'joinly' and can respond to voice and chat in real time.

docker run --env-file .env ghcr.io/joinly-ai/joinly:latest --client https://meet.google.com/xxx-yyyy-zzz
4

Run as an MCP server and connect an external client

Run the container as an MCP server (without --client) and connect to it using the joinly-client Python package. This mode allows you to add external MCP servers (Tavily, Notion, GitHub, etc.) that the agent can use during the meeting.

# Terminal 1 β€” start the joinly MCP server:
docker run -p 8000:8000 --env-file .env ghcr.io/joinly-ai/joinly:latest

# Terminal 2 β€” connect a client and join the meeting:
uvx joinly-client --env-file .env https://meet.google.com/xxx-yyyy-zzz

# With additional MCP servers (config.json):
uvx joinly-client --env-file .env --mcp-config config.json https://meet.google.com/xxx-yyyy-zzz
5

Customize TTS, STT, and participant name

Pass command-line arguments to change the bot's display name, language, TTS provider, or STT provider. ElevenLabs and Deepgram require their API keys in .env.

docker run --env-file .env ghcr.io/joinly-ai/joinly:latest \
  --client https://zoom.us/j/1234567890 \
  --name "AI Assistant" \
  --lang en \
  --tts elevenlabs \
  --stt deepgram

Joinly Examples

Client configuration

MCP configuration for chaining an additional Tavily web-search MCP server to the joinly agent, giving it live web search during meetings.

{
  "mcpServers": {
    "tavily": {
      "command": "npx",
      "args": ["-y", "@tavily/mcp"],
      "env": {
        "TAVILY_API_KEY": "your-tavily-api-key"
      }
    }
  }
}

Prompts to try

During a live meeting, participants can speak or type these prompts to the joinly agent to trigger in-meeting actions.

- "Joinly, what is the agenda for today's meeting?"
- "Joinly, search the web for the latest news on [topic] and summarize it for us."
- "Joinly, create a Notion page with the action items we just discussed."
- "Joinly, read back the last five minutes of the transcript."
- "Joinly, send a message in the chat with a summary of what was just decided."

Troubleshooting Joinly

The bot joins the meeting but cannot hear participants or transcription is empty

Whisper STT is the default and runs locally inside the container. If transcription is empty, check that the container has enough RAM (Whisper base requires ~1 GB). Try --stt-arg model_name=tiny for lower resource usage, or switch to Deepgram STT with --stt deepgram and DEEPGRAM_API_KEY in .env.

Meeting platform blocks the bot or it cannot join the call

Enable the VNC debug view to see what the browser is doing: docker run --env-file .env -p 5900:5900 ghcr.io/joinly-ai/joinly:latest --vnc-server --client <URL>. Connect with a VNC client to port 5900 to watch the browser session and diagnose the login or join flow.

Container exits immediately with a platform or architecture error

The Docker image is built for linux/amd64. On Apple Silicon Macs, Docker Desktop runs it under Rosetta 2. Ensure you are using Docker Desktop 4.x+ with the Rosetta 2 emulation option enabled in Settings β†’ General.

Frequently Asked Questions about Joinly

What is Joinly?

Joinly is a Model Context Protocol (MCP) server that 🐍☁️ - mcp server to interact with browser-based meeting platforms (zoom, teams, google meet). enables ai agents to send bots to online meetings, gather live transcripts, speak text, and send messages in the meeting chat. It connects AI assistants to external tools and data sources through a standardized interface.

How do I install Joinly?

Follow the installation instructions on the Joinly GitHub repository. Clone the repo, install dependencies, and add the server config to your AI client.

Which AI clients work with Joinly?

Joinly works with all major MCP-compatible AI clients including Claude Desktop, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, and Cline.

Is Joinly free to use?

Yes, Joinly is open source and available under the MIT license. You can use it freely in both personal and commercial projects.

Browse More Communication MCP Servers

Explore all communication servers available in the MCPgee directory. Each server includes setup guides for Claude, Cursor, and VS Code.

Quick Config Preview

{ "mcpServers": { "joinly": { "command": "npx", "args": ["-y", "joinly"] } } }

Add this to your claude_desktop_config.json or .cursor/mcp.json

Read the full setup guide β†’

Ready to use Joinly?

Browse our complete directory of 33,000+ MCP servers, read setup guides for your editor, and start building with the Model Context Protocol.

33,000+ ServersFree & Open SourceStep-by-Step Guides