ai.mainroom/meeting-agents
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
AI agents that join live Google Meet, Teams, and Zoom calls as speaking participants.
| Author | ai.mainroom |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 76 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"meeting-agents": {
"url": "https://mcp.mainroom.ai/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (8)
about_mainroomWhat Mainroom is: AI agents that join live Google Meet / Teams / Zoom calls as real participants (voice, slides, live demos, research, memory, follow-up emails). Explains how humans invite agents, and how AI assistants can dispatch the demo agent, join a meeting themselves, or send the user's delegate and follow the call.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_agent_templatesList Mainroom's built-in agent types (facilitator, timekeeper, sales support, mock interviewer, ...).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
send_demo_agentSend Mainroom's open demo agent into a live meeting RIGHT NOW. Give it a Google Meet, Microsoft Teams, Zoom, or Webex meeting URL; the agent appears in the meeting lobby within about a minute and a human in the meeting must admit it. It introduces itself, answers questions by voice, presents slides, and can run a live browser demo. Use when your user wants an AI participant in a meeting that is happening now. No account needed.
Parameters:
meeting_url(required) — string — Full join URL of the live meeting (https://meet.google.com/..., https://...zoom.us/j/..., https://teams.microsoft.com/l/meetup-join/...).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
join_meeting_asEMBODIMENT: join a live meeting AS YOURSELF (or as a persona you define). This gives an AI agent a meeting body — a named participant with a camera tile and a voice that joins the call, speaks when addressed, presents slides, shows images, and reads/posts meeting chat. You supply the name and the persona instructions (who you are, what you're there to do, what you know); Mainroom supplies the body. The participant appears in the meeting lobby within ~a minute and a human must admit it. Ephemeral: no account, no memory, nothing emailed afterwards. Use when your user says 'join my call', 'be in the meeting', or you need to talk to people in a live meeting to complete a task.
Parameters:
meeting_url(required) — string — Full join URL of the live meeting (Google Meet, Zoom, Microsoft Teams, or Webex).agent_name(required) — string — The display name for your meeting body (e.g. 'Claude', 'Atlas — Research Agent'). Shown on the tile and the roster.instructions(required) — string — Persona + mission, second person ('You are... You're joining this call to...'). Include what you know and how to behave. Up to 2000 chars.intro— string — Optional one-paragraph welcome posted into the meeting chat when you join (say who you are and why you're there).voice— string — TTS voice (default alloy).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
delegate_to_meetingDELEGATE: send the user's own stand-in into a live meeting they can't attend. The delegate joins as a named participant, introduces itself as standing in for them, listens, relays their positions from the brief, asks the questions they need answered at natural moments, and hands every decision back to them. Afterwards a report of what they missed lands in their inbox. Needs the user's Mainroom API key (History page at https://app.mainroom.ai). Returns a session id: poll meeting_status with it to follow the call live (transcript, running summary, answers so far) and to get the final summary once it ends. Use when your user says 'cover this meeting for me', 'I can't make the 3pm', 'send someone in my place'.
Parameters:
api_key(required) — string — The user's Mainroom API key (mr_...).meeting_url(required) — string — Full join URL of the live meeting (Google Meet, Zoom, Microsoft Teams, or Webex).principal_name(required) — string — The user's name as the room knows them (e.g. 'Taylor'). The delegate speaks of them by this name.brief— string — What the user wants the room to know: their positions, context, what they'd say if asked. The delegate relays this and nothing beyond it. Up to 4000 chars.voice— string — TTS voice (default sage).rehearse— boolean — Set up the delegate and a session WITHOUT joining any meeting — to check the brief and the setup. Nothing is dispatched.questions— array — Up to 10 questions the user needs answered on this call. The delegate asks each at a natural moment and records the answer.persona_name— string — The delegate's own first name (default Reese).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
meeting_statusFOLLOW A MEETING: what the user's agent (a delegate, or any of their agents) is seeing in a meeting right now, or what it recorded once the call ended — the last lines of transcript, the running summary, answers to the user's questions so far, decisions and commitments, and whether the bot is still waiting in the lobby. Call without a session id to list the user's recent and live sessions. Needs the user's Mainroom API key.
Parameters:
api_key(required) — string — The user's Mainroom API key (mr_...).lines— integer — How many recent transcript lines to include (default 40).session— string — Session id from delegate_to_meeting (or from this tool's list). Omit to list recent sessions.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_relationshipsHISTORY: list the customer accounts, recurring team meetings, and people that the user's own Mainroom agents have sat in meetings with — with session counts, when they last met, and how many commitments / open questions / risks are still open. Needs the user's Mainroom API key (shown on the History page at https://app.mainroom.ai — they paste it once). Follow with get_relationship_history for the detail.
Parameters:
api_key(required) — string — The user's Mainroom API key (mr_...), from the History page in the app.query— string — Optional name filter (account, team, or person).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_relationship_historyHISTORY: everything the user's Mainroom agents recorded with one account, team, or person: what is still open (commitments with owners and due dates, unanswered questions, risks), the proposed / approved follow-up actions, and a session-by-session timeline with summaries, decisions, and pre-call briefs. Use it to answer 'where are we with Acme', 'what did we promise them', 'what did the team decide last week', or to prep for the next call. Needs the user's Mainroom API key.
Parameters:
api_key(required) — string — The user's Mainroom API key (mr_...).relationship(required) — string — Account / team / person name, or a key from list_relationships.sessions— integer — How many recent sessions to include in the timeline (default 6).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.