Skip to main content
Glama

Attendee MCP Server

This is an MCP for sending and managing meeting bots with Attendee, an open-source meeting bot for recording and transcription. You can run Attendee locally or deploy it to the cloud.

Questions? Join the Attendee Slack.

Quick Start: What can you do with this MCP?

Using Claude as an example: You can type the following and start working with an AI meeting bot.

  1. "Send a bot to this meeting: "

  2. "Have the bot speak 'Hello'", and the bot would say 'Hello' it in the meeting.

  3. "Have the bot send a chat message: 'Glad to be here'", and the bot would write 'Glad to be here' in the chat.

  4. "Have the bot leave the meeting"

Claude Bot

Related MCP server: VoIPBin MCP Server

Combining MCPs

Combining MCPs leads to powerful workflows. For example, I use the Brave Search MCP alongside the Attendee MCP. When I ask Claude, “Who won the last Roland Garros tournament?”, it:

  1. Uses the web MCP to find the answer online.

  2. Pipes the result to the Attendee bot, which speaks the answer back to me

🚀 Installation

We will use Claude as an example, but you can use any tool that works with MCPs.

Clone the repository

# Clone your fork or the main repo
git clone https://github.com/rexposadas/attendee-mcp.git
cd attendee-mcp

# Install dependencies
npm install

# Build the TypeScript
npm run build

# Link for global use
npm link

⚙️ Configuration

Environment Variables

Set these environment variables for your Attendee server:

export MEETING_BOT_API_URL="http://localhost:8000"  # Your Attendee server URL
export MEETING_BOT_API_KEY="your-api-key-here"     # Your Attendee API key

Add these to your shell profile (~/.zshrc, ~/.bashrc, etc.) to make them permanent.

Claude Desktop Configuration

Update your Claude Desktop configuration file at: ~/Library/Application Support/Claude/claude_desktop_config.json. after you make the changes, restart Claude

Adjust the mcpServers section to include the Attendee MCP server. Use the direct path for now since that's proving to be the most reliable.

{
  "mcpServers": {
    "attendee": {
      "command": "node",
      "args": [
        "<path>/attendee-mcp/dist/index.js"
      ],
      "env": {
        "MEETING_BOT_API_URL": "<attendee-url-here>",
        "MEETING_BOT_API_KEY": "your-api-key-here"
      }
    }
  }
}

Replace /path/to/attendee-mcp with the actual path where you cloned the repository.

🏃‍♂️ Quick Start if you want to run Attendee Locally.

  1. Start your Attendee server:

    make build
    make up
  2. Test in Claude Desktop:

    • Ask Claude: "What MCP tools are available?"

🎯 Usage Examples

Once configured, you can use natural language commands in Claude Desktop:

Creating Meeting Bots

Managing Bots

  • "What's the status of bot bot_abc123?"

  • "Remove bot bot_abc123 from the meeting"

🔧 Available MCP Tools

This server provides the following tools:

Core Bot Management

  • create_meeting_bot - Create a bot to join and record a meeting

  • get_bot_status - Check the current status of a meeting bot

  • remove_meeting_bot - Remove a bot from a meeting

Communication & Media

  • make_bot_speak - Make the bot speak using text-to-speech

  • send_chat_message - Send chat messages from the bot

  • send_image_to_meeting - Display images through the bot (Google Meet only)

  • send_video_to_meeting - Play videos through the bot (Google Meet only)

Data Retrieval

  • get_meeting_transcript - Retrieve the meeting transcript

  • get_chat_messages - Get chat messages from the meeting

  • get_recording - Get the recording download URL

  • delete_bot_data - Permanently delete all bot data

🐛 Troubleshooting

Common Issues

  1. "Network error" or API connection issues:

    • Ensure your Attendee server is running on the configured URL

    • Check that your API key is correct

    • Verify the MEETING_BOT_API_URL and MEETING_BOT_API_KEY environment variables

  2. MCP server not appearing in Claude Desktop:

    • Restart Claude Desktop completely after config changes

    • Check the Claude Desktop config file syntax is valid JSON

    • Look at Claude Desktop logs for error messages

  3. "Method not allowed" errors:

    • Some API endpoints might not be fully implemented in your Attendee server

    • Check your Attendee server logs for more details

📄 License

MIT License - see LICENSE file for details.

🤝 Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature-name

  3. Make your changes and test them

  4. Commit your changes: git commit -m 'Add feature'

  5. Push to the branch: git push origin feature-name

  6. Submit a pull request


Note: This MCP server requires a running Attendee backend service. Make sure you have the Attendee server set up and running before using this MCP server.

Available Tools

11 tools
create_meeting_botC

Create a bot to join a meeting and record/transcribe it

ParametersJSON Schema
NameRequiredDescriptionDefault
meeting_urlYesURL of the meeting (Zoom, Google Meet, or Teams)
bot_nameNoName for the bot (optional, defaults to 'Go Bot')Go Bot

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but provides minimal behavioral context. It states the bot will 'join a meeting and record/transcribe it', implying mutation (creation) and data capture, but lacks details on permissions, rate limits, what happens if the bot fails, or whether recording is automatic. This is inadequate for a tool with potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action. It avoids redundancy and wastes no words, though it could be slightly more structured (e.g., separating creation from functionality).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (creating a bot with recording/transcribing capabilities), no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., bot ID, status), error conditions, or behavioral nuances, leaving significant gaps for an agent to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters ('meeting_url' and 'bot_name') with descriptions. The description adds no additional meaning beyond implying the meeting_url must be for Zoom, Google Meet, or Teams (hinted in schema), resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('create a bot') and its purpose ('to join a meeting and record/transcribe it'), specifying the resource (bot) and its function. It distinguishes from siblings like 'remove_meeting_bot' or 'get_meeting_transcript' by focusing on creation, but doesn't explicitly differentiate from other creation-related tools (none listed).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., meeting access), exclusions, or compare to siblings like 'send_chat_message' for interaction. The description implies usage for recording/transcribing meetings but offers no contextual boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_bot_dataC

Delete all data associated with a bot (recordings, transcripts, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot to delete data for

TDQS

C2.9/5.0
Behavior2/5

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 states the destructive action ('Delete') but lacks critical details: whether deletion is permanent, requires specific permissions, has rate limits, or what happens on success/failure. For a destructive tool with zero annotation coverage, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action ('Delete all data') and includes helpful examples ('recordings, transcripts, etc.'). There is zero wasted verbiage, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a destructive tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like irreversibility, permissions, or response format, leaving the agent under-informed for a high-stakes operation. The description should compensate more for the lack of structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'bot_id' fully documented in the schema. The description adds no additional parameter semantics beyond implying the bot_id identifies the target for deletion. This meets the baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete') and target ('all data associated with a bot'), including examples of what data is deleted ('recordings, transcripts, etc.'). It distinguishes from siblings like 'remove_meeting_bot' (which likely removes the bot itself) by focusing on data deletion. However, it doesn't explicitly contrast with siblings, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites (e.g., bot existence), exclusions (e.g., irreversible action), or comparisons to siblings like 'remove_meeting_bot'. This leaves the agent without context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_bot_statusC

Get the current status of a meeting bot

ParametersJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot to check

TDQS

C2.9/5.0
Behavior2/5

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 states it 'Get[s] the current status' but doesn't specify what 'status' entails (e.g., online/offline, active/inactive, error states), whether it's a read-only operation, any rate limits, or authentication needs. This leaves significant gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool that retrieves status information. It doesn't explain what 'status' means, potential return values, or behavioral traits like safety or performance. For a read operation with undefined output, this lacks necessary context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'bot_id' clearly documented in the schema as 'ID of the bot to check'. The description adds no additional meaning beyond this, such as format examples or context about bot IDs. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'current status of a meeting bot', making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_chat_messages' or 'get_meeting_transcript' that also retrieve information about bots/meetings, so it misses full sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like 'get_chat_messages' and 'get_meeting_transcript' that might retrieve related data, there's no indication of context, prerequisites, or exclusions for choosing this specific status-checking tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_chat_messagesC

Get chat messages from the meeting

ParametersJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot to get chat messages for

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden but only states the basic action. It doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires specific permissions, how messages are returned (e.g., format, pagination), or any rate limits, leaving significant gaps in understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., message list format, timestamps), behavioral constraints, or how it integrates with sibling tools, making it inadequate for a tool that likely involves data retrieval.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'bot_id' well-documented in the schema. The description adds no additional meaning beyond implying the bot is associated with the meeting, so it meets the baseline for high schema coverage without extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'chat messages from the meeting', making the purpose understandable. It doesn't explicitly differentiate from siblings like 'get_meeting_transcript' or 'send_chat_message', but the core action is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify if this retrieves all messages, recent ones, or how it differs from 'get_meeting_transcript' or other chat-related tools, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_meeting_transcriptC

Get the transcript from a meeting bot

ParametersJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot whose transcript to retrieve

TDQS

C2.6/5.0
Behavior2/5

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 states 'Get' implies a read operation, but doesn't cover aspects like authentication needs, rate limits, error conditions, or what happens if the bot_id is invalid. For a tool with zero annotation coverage, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource. However, it could be slightly more structured by including key details, but it earns high marks for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a read operation with no annotations and no output schema), the description is incomplete. It doesn't explain the return format (e.g., text, JSON), potential errors, or how it integrates with sibling tools. For a tool that likely returns data, more context is needed to guide the agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'bot_id' clearly documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain where to find the bot_id or its format). Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action ('Get') and resource ('transcript from a meeting bot'), making the basic purpose clear. However, it's vague about what 'transcript' entails (e.g., full text, formatted, with timestamps) and doesn't distinguish it from siblings like 'get_chat_messages' or 'get_recording', which might overlap in function. This meets the minimum viable threshold but lacks specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify if this is for post-meeting retrieval only, or how it differs from 'get_chat_messages' (which might handle real-time chat). The description offers no context on prerequisites or exclusions, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recordingC

Get the recording URL for a bot

ParametersJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot to get recording for

TDQS

C2.9/5.0
Behavior2/5

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. It states the tool retrieves a URL but doesn't explain what the URL provides (e.g., audio/video format, accessibility), whether it requires specific permissions, or any rate limits. This leaves significant gaps for a tool that likely involves media access.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with zero waste, front-loading the key action and resource. It's appropriately sized for a simple tool, making it easy to scan and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication needs or what the returned URL entails, which are crucial for a media retrieval tool. This leaves the agent with insufficient context to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, fully documenting the 'bot_id' parameter. The description adds no additional meaning beyond the schema, such as format examples or constraints, so it meets the baseline for high schema coverage without enhancing parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('recording URL for a bot'), making the purpose understandable. It doesn't explicitly differentiate from siblings like 'get_bot_status' or 'get_meeting_transcript', which might also retrieve bot-related information, so it lacks sibling distinction for a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites (e.g., needing a bot with a recording available) or compare to siblings like 'get_meeting_transcript' for related data, leaving usage context implied at best.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

make_bot_speakC

Make a bot speak text during a meeting using text-to-speech

ParametersJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot that should speak
textYesText for the bot to speak
voice_language_codeNoVoice language code (optional, defaults to 'en-US')en-US
voice_nameNoVoice name (optional, defaults to 'en-US-Casual-K')en-US-Casual-K

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose permissions needed, rate limits, whether speech interrupts other audio, or what happens if the bot isn't in a meeting. 'Make a bot speak' implies a mutation, but no further context is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without redundancy. It's front-loaded with the core purpose and uses minimal words to convey the essential action, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutating bot behavior in meetings) and lack of annotations or output schema, the description is incomplete. It doesn't cover error conditions, response format, or integration with meeting context, leaving significant gaps for an AI agent to understand full usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning beyond implying text-to-speech conversion, which is already clear from the tool name and schema. Baseline 3 is appropriate as the schema handles parameter semantics adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('make a bot speak') and the mechanism ('using text-to-speech'), specifying both verb and resource. It distinguishes from siblings like send_chat_message or send_image_to_meeting by focusing on speech output, though it doesn't explicitly contrast with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., bot must be in a meeting), exclusions, or comparisons to siblings like send_chat_message for text-based communication, leaving usage context implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_meeting_botC

Remove a bot from a meeting

ParametersJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot to remove

TDQS

C2.9/5.0
Behavior2/5

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 states the action ('Remove') but doesn't clarify if this is destructive, reversible, requires specific permissions, affects meeting functionality, or has side effects. For a mutation tool with zero annotation coverage, this is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and target, making it immediately understandable without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks behavioral context (e.g., permanence, permissions), doesn't explain what happens after removal, and offers no guidance on usage relative to siblings. Given the complexity of modifying meeting state, this leaves significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'bot_id' fully documented in the schema. The description doesn't add any parameter details beyond what the schema provides, such as format examples or contextual meaning. Baseline 3 is appropriate when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove') and target ('a bot from a meeting'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling tools like 'delete_bot_data' or explain how removal differs from deletion, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'delete_bot_data' or 'create_meeting_bot'. It doesn't mention prerequisites (e.g., bot must be in a meeting), exclusions, or contextual triggers, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_chat_messageC

Send a chat message from the bot to the meeting

ParametersJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot that should send the message
messageYesMessage text to send

TDQS

C2.9/5.0
Behavior2/5

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 sending a message but does not cover critical aspects like required permissions, potential side effects (e.g., if it triggers notifications), rate limits, or response format. This leaves significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits, usage context, and what to expect upon invocation, which is insufficient for effective agent use despite the concise structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with clear documentation for both parameters ('bot_id' and 'message'). The description does not add any additional meaning beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Send a chat message') and the resource ('from the bot to the meeting'), making the purpose understandable. However, it does not explicitly differentiate from sibling tools like 'make_bot_speak' or 'send_image_to_meeting', which might have overlapping contexts, so it lacks full sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as 'make_bot_speak' or 'send_image_to_meeting', nor does it mention prerequisites like needing an active meeting or bot. It only states what the tool does without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_image_to_meetingC

Send an image to the meeting through the bot (Google Meet only)

ParametersJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot that should display the image
image_urlYesHTTPS URL of the image to display

TDQS

C2.9/5.0
Behavior2/5

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. While it indicates this is a sending/display operation, it doesn't describe what happens to the image (is it displayed temporarily/permanently?), whether it requires specific bot permissions, what happens if the meeting isn't active, or any rate limits. For a tool that presumably interacts with live meetings, this leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single sentence that communicates the core functionality and key constraint. Every word earns its place with no redundant information or unnecessary elaboration. The structure is front-loaded with the main action and target.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a meeting interaction tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after sending (success/failure indicators), whether the image persists, how users see it, or any error conditions. For a tool that modifies meeting state, more behavioral context is needed despite the concise description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters (bot_id and image_url). The description doesn't add any additional parameter context beyond what's in the schema - it doesn't explain where to get bot_id values, what image formats are supported, or any constraints on image_url beyond HTTPS. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Send an image') and target ('to the meeting through the bot'), with the specific platform constraint 'Google Meet only' providing useful context. However, it doesn't explicitly differentiate from sibling tools like 'send_video_to_meeting' or 'send_chat_message', which would require mentioning it's specifically for visual media display rather than text or video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance - it mentions 'Google Meet only' which sets a platform constraint, but offers no advice on when to use this tool versus alternatives like 'send_video_to_meeting' or 'send_chat_message', nor does it mention prerequisites (like needing a bot created first) or appropriate use cases for image sharing versus other communication methods.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_video_to_meetingC

Send a video to the meeting through the bot (Google Meet only)

ParametersJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot that should play the video
video_urlYesHTTPS URL of the MP4 video to play

TDQS

C2.9/5.0
Behavior2/5

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. It mentions the platform constraint ('Google Meet only'), which is useful, but fails to describe critical behaviors like whether this action is reversible, what permissions are required, how the video is displayed, or any rate limits. For a mutation tool with zero annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It front-loads the core action and includes the platform constraint concisely, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of sending media in a meeting context, no annotations, and no output schema, the description is insufficient. It lacks details on behavioral outcomes, error conditions, or integration with sibling tools like 'create_meeting_bot'. For a tool that likely involves mutations and platform-specific constraints, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (bot_id and video_url) adequately. The description adds no additional semantic context beyond implying the video is played by the bot, which is already suggested by the parameter names. Baseline 3 is appropriate when the schema handles parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('send a video') and target ('to the meeting'), specifying the resource (video) and platform constraint ('Google Meet only'). It distinguishes from siblings like 'send_image_to_meeting' by specifying video content, though it doesn't explicitly contrast with other media-sending tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'send_image_to_meeting' or 'make_bot_speak', nor does it mention prerequisites such as needing a bot created via 'create_meeting_bot'. The description only states the basic function without context for selection.

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. Dates show when Glama detected each change.

  1. 11 tool updates
    • First observedcreate_meeting_bot
    • First observeddelete_bot_data
    • First observedget_bot_status
    • First observedget_chat_messages
    • First observedget_meeting_transcript
    • First observedget_recording
    • First observedmake_bot_speak
    • First observedremove_meeting_bot
    • First observedsend_chat_message
    • First observedsend_image_to_meeting
    • First observedsend_video_to_meeting

TDQS

A3.5/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose focused on specific meeting bot operations. There is no overlap between actions like creating bots, deleting data, getting status/transcripts/recordings, controlling bot speech/chat, or sending media. The descriptions make each tool's unique function immediately apparent.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case throughout. The naming convention is perfectly uniform, using clear action verbs like create, delete, get, make, remove, and send paired with specific nouns describing the operation's target.

Tool Count5/5

With 11 tools, the server provides comprehensive coverage for meeting bot management without being overwhelming. This count is well-scoped for the domain, offering a complete set of operations for bot lifecycle, data retrieval, and interaction capabilities.

Completeness5/5

The toolset offers complete CRUD/lifecycle coverage for meeting bots: creation, status monitoring, data retrieval (transcripts, recordings, chats), interaction (speaking, messaging, media sharing), and removal/deletion. There are no obvious gaps, and agents can perform all essential meeting bot workflows seamlessly.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI models to interact with VoIPBin's VoIP services, supporting features like call management, agent management, campaigns, conferences, and chat functionality.
    4
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    The Google Meet MCP Server enables AI agents to create, manage, and retrieve Google Meet meetings. Built on the Model Context Protocol, it exposes tools for scheduling, updating, and deleting meetings, making it easy to integrate Google Meet functionalities
    16
    2
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI agents to join and interact with online meetings (Zoom and Google Meet), capturing transcripts and recordings to generate meeting summaries.
    3
    10
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rexposadas/attendee-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server