# join.me MCP

> join.me MCP Server. Manage all your video meetings—scheduling, invites, recording, and history—directly from your AI client. Start instant calls, book recurring standups, or retrieve specific meeting recordings without touching the web interface. It handles participant lists, updates schedules, and lets you delete meetings instantly.

## Overview
- **Category:** communication-messaging
- **Price:** Free
- **Tags:** screen-sharing, meeting-scheduling, recording, virtual-meetings, participant-management

## Description

Connect your **join.me** account to your AI client and handle all your video calls right here. You'll never have to jump out of your chat to book a room or grab a recording again. You can use your AI agent to set up meetings, manage invites, and pull up old recordings.

**Scheduling and Modifying Meetings**

To book a new meeting, you'll use `schedule_meeting` and you can specify the date, time, and participants. If you need to change something about a booked call, just run `update_meeting` to adjust the details. You can also totally ditch a meeting—run `delete_meeting` to cancel it.

**Starting Calls**

Need to jump on a video chat right now? Just call `start_adhoc_meeting`. If you booked a meeting earlier, use `start_scheduled_meeting` to kick it off. When you're done, you can check out `get_user_info` to see your own profile details.

**Managing Meeting Records**

To see what's been going down, you can run `list_meetings` to get a rundown of every meeting. For the full details on a specific session, use `get_meeting`. To grab a recording or check out past attendance, you'll use `list_webhooks` and `create_webhook` to manage your connections. You can also get specific data on user profiles using `get_user_info`.

**Account Management**

You can see all the webhooks you've set up with `list_webhooks`. Remember, your AI client's job is to handle all the heavy lifting. It'll take your instructions and use these tools to do the job, so you don't have to touch the actual website.

## Tools

### create_webhook
Registers a new webhook URL for your join.me account.

### delete_meeting
Cancels or deletes a scheduled or ad-hoc meeting.

### get_meeting
Retrieves the full details for a specific meeting ID.

### get_user_info
Fetches your personal join.me account profile information.

### list_meetings
Lists all meetings associated with your join.me account.

### list_webhooks
Lists all webhooks currently registered to your account.

### schedule_meeting
Books a new meeting for a specific date and time.

### start_adhoc_meeting
Initiates an immediate, on-demand video meeting.

### start_scheduled_meeting
Starts a meeting that was previously booked.

### update_meeting
Modifies the details of an existing scheduled meeting.

## Prompt Examples

**Prompt:** 
```
Schedule a team standup for tomorrow at 9 AM and invite the engineering team.
```

**Response:** 
```
Meeting scheduled! 'Engineering Standup'. Date: Apr 27, 9:00 AM (30 min). Participants: 6 invited (sarah@co.com, mike@co.com, lisa@co.com, james@co.com, chen@co.com, david@co.com). Join link: https://join.me/mtg-4521. Status: Confirmed. Invites sent. Would you like to add a recurring schedule or view today's meetings?
```

**Prompt:** 
```
Show this week's meeting history and list available recordings.
```

**Response:** 
```
This week: 12 meetings. Total time: 8h 45m. Average duration: 44 min. Largest: 'Quarterly Review' (90 min, 15 participants). Recordings: 4 available. 1) 'Quarterly Review' (90 min, 245 MB). 2) 'Client Demo' (45 min, 120 MB). 3) 'Design Review' (60 min, 180 MB). 4) 'Sprint Retro' (30 min, 80 MB).
```

**Prompt:** 
```
Cancel tomorrow's 3 PM meeting and update the standup to 9:30 AM.
```

**Response:** 
```
Cancelled: 'Budget Review' (Apr 27, 3:00 PM). All 4 participants notified. Updated: 'Engineering Standup' moved to 9:30 AM. All 6 participants notified of time change. Tomorrow's schedule: 9:30 AM Standup (30 min), 11:00 AM Client Call (60 min), 2:00 PM Design Review (45 min).
```

## Capabilities

### Schedule and Modify Meetings
You can create new meetings, update existing ones, or cancel them entirely using natural language commands.

### Start Instant or Scheduled Calls
Initiate a video call immediately, or start a meeting that was previously booked for a specific time.

### Manage Participants and Invites
Invite specific users to a meeting, track attendance, and view the list of expected participants.

### Retrieve Meeting Records
List past meetings and download recordings for specific sessions, knowing the duration and size of the files.

### View Account Details
Get your personal user profile or list all your existing webhooks and meetings managed by the account.

## Use Cases

### Need to reschedule a client demo.
The Sales Manager needs to move a demo scheduled for Friday. They prompt their agent: 'Change the client demo to Monday at 2 PM.' The agent uses `update_meeting`, confirms the change, and sends updated invites. Problem solved in three lines of chat.

### Quick check-in with the team.
The Project Manager needs an unplanned 15-minute sync. They prompt: 'Start an ad-hoc call with the core team.' The agent uses `start_adhoc_meeting`, giving them the instant link and letting them jump right in.

### Reviewing last month's decisions.
The team needs to review the Q3 planning session. They prompt: 'Show me the meeting history from last month and retrieve the recording for the 'Q3 Planning' session.' The agent runs `list_meetings` and then `get_meeting` to get the file details.

### Automating external notifications.
The Ops Engineer wants the CRM to know when a meeting starts. They use the agent to call `create_webhook`, pointing the webhook to the CRM URL. Now, the CRM automatically tracks meeting status changes.

## Benefits

- Manage entire meeting lifecycles through your AI client. Instead of navigating the join.me website, you simply tell your agent to 'Update the client demo time' using the `update_meeting` tool.
- Audit your team's activity instantly. Use `list_meetings` to get a full rundown of past calls, and then use `get_meeting` to pull specifics, like the total participants or join link.
- Handle last-minute changes without logging in. Need to cancel a call? Use `delete_meeting` to clear it, or use `start_adhoc_meeting` if you need to jump on a quick, unplanned discussion.
- Never lose a recording. The server lets you list recordings and retrieve them, meaning you can immediately pull the meeting file and link it to a project doc.
- Set up complex flows with webhooks. You can use `create_webhook` to ensure that when a meeting state changes, an external system (like your CRM) gets notified immediately.
- Control your account data. Use `get_user_info` to verify your own profile details, or `list_webhooks` to see which external systems are connected.

## How It Works

The bottom line is that your AI agent handles all the back-and-forth API calls; you just talk to it.

1. Subscribe to the join.me server and enter your Access Token.
2. Tell your AI client what you need (e.g., 'Schedule a follow-up with Mike for next Tuesday').
3. The agent executes the necessary tools and returns the meeting link, status, and participant list.

## Frequently Asked Questions

**How do I schedule a meeting using the `schedule_meeting` tool?**
Use the tool by specifying the required date, time, and participants. The agent will confirm the booking and provide the join link immediately. It handles the underlying API calls for you.

**What is the difference between `start_adhoc_meeting` and `start_scheduled_meeting`?**
Start ad-hoc is for immediate calls—you'll get a link and join right now. Start scheduled is for calls booked for a future time; it initiates the connection for a pre-booked slot.

**Can I change a meeting's time using the `update_meeting` tool?**
Yes. Just tell your agent to update the meeting, providing the old details and the new time. The tool handles notifying all registered participants of the change.

**How do I find recordings from past calls using the `list_meetings` tool?**
The `list_meetings` tool provides a list of past meetings. From that list, you can then use `get_meeting` to retrieve the specific recording details and download links.

**What is `get_user_info` used for?**
This tool fetches your personal join.me profile data. You use it when you need to verify your own account details or check your basic user status.

**How do I use `list_webhooks` to manage external integrations?**
The `list_webhooks` tool shows all webhooks registered to your join.me account. You can use this to verify which external services are receiving meeting data or updates after an event occurs.

**What happens if I try to delete a meeting that is already in progress using `delete_meeting`?**
The `delete_meeting` tool handles the cancellation of scheduled or past meetings. If a meeting is currently active, the tool will return an error indicating the meeting status, preventing deletion.

**How do I check my account details and permissions using `get_user_info`?**
The `get_user_info` tool retrieves basic account information for the associated join.me user. This includes verifying your current status and general account parameters.

**Can I schedule meetings and invite participants?**
Yes. Create meetings with date, time, duration, and participant list. Update existing meetings and cancel when needed. Each meeting generates a join link for easy sharing.

**Can I access meeting recordings?**
Yes. List all available recordings and retrieve download links. Recordings include meeting metadata, duration, and participant information.

**Can I view past meeting history and attendance?**
Yes. Browse meeting history with details including duration, participant count, attendees, and whether the meeting was recorded.