Joinly logo

Joinly

by joinly-ai

Join browser-based meetings, interact by voice or chat, and retrieve participants, transcripts, chat history, and video snapshots.

Install Joinly

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "joinly-ai-joinly": {
      "command": "uvx",
      "args": [
        "joinly-client"
      ],
      "env": {
        "JOINLY_LLM_MODEL": "YOUR_VALUE_HERE",
        "JOINLY_LLM_PROVIDER": "YOUR_VALUE_HERE",
        "OPENAI_API_KEY": "YOUR_VALUE_HERE",
        "ELEVENLABS_API_KEY": "YOUR_VALUE_HERE",
        "DEEPGRAM_API_KEY": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

We couldn’t confirm it starts correctly

The install command didn't complete successfully in our automated test.

uvx joinly-client

Downloading cpython-3.12.15-linux-x86_64-gnu (download) (32.7MiB) Downloaded cpython-3.12.15-linux-x86_64-gnu (download) Downloading google-genai (1.1MiB) Downloading pydantic-core (2.0MiB) Downloading cryptography (4.5MiB) Downloading pygments (1.2MiB) Downloading anthropic (1.6MiB) Downloading beartype (1.3MiB) Downloaded google-genai Downloaded pygments Downloaded beartype Downloaded pydantic-core Downloaded anthropic Downloaded cryptography Installed 94 packages in 89ms Traceback (mos

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 1mo ago.

Overview

joinly-ai/joinly MCP server connects AI agents to browser-based meetings on Zoom, Google Meet, and Microsoft Teams. It lets an agent join or leave calls, speak text, send chat messages, inspect participants and transcripts, and capture video snapshots. Run it in Docker as a direct client or as a local MCP server for a custom client. Reach for it when an agent needs to participate in or observe an online meeting in real time.

Use cases

  • Join a scheduled video meeting as an AI participant
  • Read live transcripts and identify meeting participants
  • Speak responses and send messages in meeting chat
  • Collect chat history and video snapshots during a call

Key features

  • Join and leave browser-based meetings
  • Speak text and send meeting chat messages
  • Retrieve transcripts, participants, and chat history
  • Mute or unmute the meeting agent
  • Capture video snapshots
  • Configure LLM, speech, and transcription providers

Tools12

What Joinly lets your agent do. Expand a tool for its parameters.

Self-reported~39 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

26/26 checks healthy over the last 91d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 4d ago via OSV.dev · joinly-client (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars569Stargazers on the source repository.
Last commit2mo agoMost recent push to the default branch.
Install checkInconclusiveInstall command did not finish in our automated test.
Tools exposed12Callable tools this server registers over MCP.
Directory activity4 viewsConfig copies, upvotes, and views on AllMCPs.

How Joinly works

What joinly-ai/joinly does

The joinly-ai/joinly MCP server gives an AI agent access to browser-based video meetings. It supports Zoom, Google Meet, Microsoft Teams, and other meeting platforms available through a browser. An agent can enter a meeting, communicate through speech or chat, and inspect meeting state while the call is in progress.

The project is designed for live participation rather than post-meeting processing. It can support an agent that answers questions aloud, responds to messages in meeting chat, gathers a transcript, or checks who is present. The repository also describes conversational handling for interruptions and multiple speakers.

How it works

The published Docker image packages the browser and models needed to run the application. In the simplest mode, the container starts a client directly with a meeting URL. In server mode, the container exposes an MCP endpoint, and a separate client can connect to it and provide the meeting URL.

A custom client can add other MCP servers through a JSON configuration. Their tools then become available to the agent during the meeting. The documented example uses joinly-client, installed and run with uvx, but the server is intended to work with an MCP client that can connect to its endpoint.

Speech and transcription use selectable providers. Local Whisper is the default speech-to-text option, while local Kokoro is the default text-to-speech option. The configuration also documents Deepgram for both functions and ElevenLabs for text-to-speech. The language can be changed when the client or container starts.

Setup and configuration

The documented quickstart requires Docker. Create an environment file with an LLM provider, model, and the provider’s API key. The example uses OpenAI with JOINLY_LLM_MODEL, JOINLY_LLM_PROVIDER, and OPENAI_API_KEY; the repository also references Anthropic and Ollama configurations in its example environment file.

Pull ghcr.io/joinly-ai/joinly:latest, then run the image with --client and a Zoom, Google Meet, or Teams URL. For server mode, publish port 8000 only on localhost and connect with uvx joinly-client. Command-line options can set the participant name, language, host, port, speech providers, and provider-specific arguments.

Tools and capabilities

The joinly-ai/joinly MCP server exposes tools for:

  • Joining and leaving meetings.
  • Speaking text aloud and sending meeting chat messages.
  • Reading chat history, participants, and the live transcript.
  • Muting and unmuting the agent.
  • Capturing a video snapshot.

The listed tool names include join_meeting, leave_meeting, speak_text, text, send_chat_message, message, mute_yourself, unmute_yourself, get_chat_history, get_participants, get_transcript, and get_video_snapshot.

Limitations and notes

The MCP server has no authentication and accepts configuration supplied by its client. The documentation therefore recommends running it locally for one trusted client, binding it to localhost, and not exposing port 8000 to a network.

The Docker image is approximately 2.3 GB because it includes a browser and models. Provider availability depends on the selected speech and transcription service, and some providers require their own API keys. The direct --client mode does not start a server for other clients to use.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Joinly

joinly-ai/joinly is an MCP server that connects AI agents to browser-based Zoom, Google Meet, and Microsoft Teams meetings. Its main tools join or leave calls, speak text, send chat messages, mute or unmute, and retrieve participants, transcripts, chat history, and video snapshots while a meeting is active.

Install it by pulling the published Docker image and running it with an environment file. The documented image is `ghcr.io/joinly-ai/joinly:latest`; Docker is required. Use `--client <MeetingURL>` for direct operation, or start server mode on localhost and connect with `uvx joinly-client`.

It supports browser-based Zoom, Google Meet, and Microsoft Teams meetings. The quickstart specifically instructs users to provide a meeting URL from one of those platforms. The project also describes support for other meeting platforms when they are available through a browser.

No; the documentation says not to expose it to a network. The MCP server has no authentication and accepts client-supplied configuration, so it is intended for local use with one trusted client. Bind port 8000 to localhost rather than a public or network interface.

Yes, it documents local Whisper for speech-to-text, local Kokoro for text-to-speech, and Ollama as an LLM setup option. Other documented choices include OpenAI, Deepgram, and ElevenLabs, with provider selection and related settings supplied through environment variables or command-line options.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewJoinly AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/joinly-ai-joinly?style=directory)](https://allmcps.com/mcp/joinly-ai-joinly)
HTML Embed
<a href="https://allmcps.com/mcp/joinly-ai-joinly"><img src="https://allmcps.com/api/badge/joinly-ai-joinly?style=directory" alt="Joinly on AllMCPs" /></a>