Skip to main content
Glama
Angad-2002

Attendee MCP Server

by Angad-2002

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: Vexa

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?"

  • "Show me all my active bots"

  • "List all meeting bots"

  • "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

  • list_meeting_bots - List all active meeting bots

  • 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

12 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 provided, the description carries the full burden of behavioral disclosure. It mentions the bot will 'join a meeting and record/transcribe it', which implies a long-running, potentially resource-intensive operation, but lacks details on permissions needed, rate limits, whether the bot persists after the meeting, or how to access the recording/transcript afterward. This is inadequate for a tool that likely involves significant backend processing.

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 unnecessary words. It's front-loaded with the core action ('create a bot') and purpose, 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 creating a bot for meeting recording/transcription, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens after creation (e.g., how to check status, access outputs, or manage the bot), leaving critical gaps for an agent to use this tool effectively in a workflow.

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 fully documents both parameters. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't clarify format constraints for 'meeting_url' or usage context for 'bot_name'). Baseline 3 is appropriate as 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 tool's purpose with a specific verb ('create') and resource ('bot'), and specifies the bot's function ('join a meeting and record/transcribe it'). However, it doesn't explicitly differentiate from siblings like 'list_meeting_bots' or 'remove_meeting_bot' in terms of creation vs. management operations.

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., meeting must be active), exclusions (e.g., not for meetings already being recorded), or comparisons to siblings like 'get_meeting_transcript' or 'get_recording' for accessing results.

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?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool deletes data, implying it's destructive and irreversible, but lacks critical details: whether it requires specific permissions, if it's asynchronous or immediate, what happens on failure, or if there are rate limits. 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 key action ('Delete all data') and provides relevant examples ('recordings, transcripts, etc.') without unnecessary elaboration. Every word earns its place, 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 destructive nature, lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, irreversibility, or error handling, which are critical for safe use. The description alone is inadequate for a tool that permanently deletes data, leaving the agent with significant uncertainty.

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 the 'bot_id' parameter clearly documented. The description adds no additional parameter semantics beyond what the schema provides (e.g., it doesn't explain format or validation rules for bot_id). With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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'), with specific examples of what data is deleted ('recordings, transcripts, etc.'). It distinguishes from siblings like 'remove_meeting_bot' (which likely removes the bot itself rather than its data) and 'get_recording' (which reads rather than deletes). However, it doesn't explicitly contrast with all siblings, so it's not a perfect 5.

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 admin permissions), when-not-to-use scenarios (e.g., if data might be needed for compliance), or direct alternatives among siblings. The agent must infer usage from the tool name and context alone.

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves status but doesn't clarify what 'status' entails (e.g., online/offline, active/inactive, error states), whether it's a read-only operation, or if there are rate limits or authentication needs. This leaves significant gaps in understanding the tool's behavior.

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 that directly states the tool's purpose without unnecessary words. It is front-loaded and efficient, making it easy to understand at a glance, which aligns well with best practices for conciseness.

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 for a tool that likely returns complex status information. It doesn't explain what the status includes (e.g., operational state, last activity), potential error cases, or how to interpret results, leaving the agent with insufficient context for effective use.

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 'bot_id' clearly documented as 'ID of the bot to check'. The description doesn't add any extra meaning beyond this, such as format examples or where to obtain the ID. Given the high schema coverage, a baseline score of 3 is appropriate as the schema handles the parameter documentation 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 ('Get') and resource ('current status of a meeting bot'), making the purpose evident. However, it doesn't differentiate from potential siblings like 'list_meeting_bots' or 'get_meeting_transcript', which might also provide status-related information, 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?

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify if this is for real-time status checks versus historical data from other tools, or mention prerequisites like needing a bot ID from 'list_meeting_bots'. The description lacks any context for usage decisions.

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.7/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. It mentions 'Get' but 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. This leaves significant gaps for a tool that likely interacts with meeting data.

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 appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary details.

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 a meeting chat tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'chat messages' entail (e.g., text, timestamps, senders), how results are structured, or any limitations, making it inadequate for effective use by an AI agent.

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. The description adds no additional meaning beyond the schema, such as explaining why bot_id is needed or how it relates to chat messages. 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.

Purpose3/5

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

The description 'Get chat messages from the meeting' states a clear verb ('Get') and resource ('chat messages'), but it's vague about scope and context. It doesn't specify whether this retrieves all messages, recent messages, or filtered messages, nor does it distinguish from sibling tools like 'get_meeting_transcript' or 'send_chat_message'.

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. With siblings like 'get_meeting_transcript' (possibly for spoken content) and 'send_chat_message' (for sending), the description lacks context on prerequisites, timing, or exclusions, leaving usage unclear.

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.7/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 the action ('Get') but doesn't clarify if this is a read-only operation, whether it requires specific permissions, what format the transcript returns (e.g., text, structured data), or any rate limits or errors. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior beyond the basic purpose.

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 ('Get the transcript from a meeting bot') that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy to parse quickly. Every part of the sentence contributes to understanding the tool's core function.

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 (a data retrieval operation with no output schema and no annotations), the description is incomplete. It doesn't explain what the transcript contains (e.g., text, timestamps), how it's formatted, or any behavioral aspects like error handling. With no output schema to clarify return values, the description should provide more context to help the agent use the tool effectively, but it falls short.

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 'bot_id' clearly documented as 'ID of the bot whose transcript to retrieve'. The description doesn't add any meaning beyond this, such as how to obtain the bot ID or what happens if an invalid ID is provided. Given the high schema coverage, a baseline score of 3 is appropriate, as the schema adequately handles parameter semantics without extra description.

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 tool's purpose ('Get the transcript from a meeting bot'), which is clear but vague. It specifies the resource ('transcript') and implies the verb ('Get'), but doesn't differentiate it from sibling tools like 'get_chat_messages' or 'get_recording', which might retrieve related meeting data. The purpose is understandable but lacks specificity about what distinguishes this transcript retrieval from other data-fetching operations.

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 ID from 'list_meeting_bots'), exclusions, or comparisons to siblings like 'get_chat_messages' or 'get_recording'. Without any context on usage scenarios or alternatives, the agent must infer this from the tool name and schema alone.

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 action ('Get') but doesn't add context on permissions, rate limits, response format, or whether this is a read-only operation. This is inadequate for a tool that likely involves accessing media resources.

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. It's front-loaded and efficiently conveys the core purpose without unnecessary details, 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 no annotations, no output schema, and a simple parameter, the description is incomplete. It doesn't explain what the recording URL entails (e.g., format, accessibility), behavioral traits, or error cases, leaving gaps for a tool that retrieves media 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?

The schema description coverage is 100%, with the parameter 'bot_id' fully documented in the schema. The description doesn't add any meaning beyond the schema, such as format examples or constraints, 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 resource ('recording URL for a bot'), making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'get_bot_status' or 'get_meeting_transcript', which also retrieve bot-related information, 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. It doesn't mention prerequisites (e.g., needing a bot with a recording), exclusions, or comparisons to siblings like 'get_meeting_transcript' for other bot data, leaving usage context unclear.

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

list_meeting_botsB

List all active meeting bots

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 the action ('List all active meeting bots') but doesn't describe what 'active' entails, whether it requires specific permissions, how results are formatted (e.g., list, pagination), or any rate limits. For a tool with zero annotation coverage, this leaves critical behavioral traits unspecified.

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 ('List all active meeting bots') with zero wasted words. It is front-loaded and directly conveys the core purpose without unnecessary elaboration, making it highly concise and well-structured for quick understanding.

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 (listing active resources) and lack of annotations or output schema, the description is incomplete. It doesn't explain what 'active' means, what data is returned, or how to interpret results. For a tool with no structured fields to rely on, this leaves the agent with insufficient context to use it effectively.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, but since there are no parameters, this is acceptable. Baseline is 4 for 0 parameters, as the description doesn't need to compensate for missing schema information.

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 'List all active meeting bots' clearly states the verb ('List') and resource ('active meeting bots'), making the purpose immediately understandable. It distinguishes from siblings like 'create_meeting_bot' or 'remove_meeting_bot' by focusing on listing rather than creation or deletion. However, it doesn't specify what 'active' means or how it differs from 'get_bot_status', which slightly reduces 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an active meeting), exclusions (e.g., not for inactive bots), or comparisons to siblings like 'get_bot_status' or 'get_meeting_transcript'. The agent must infer usage from the name alone, which is insufficient for optimal tool selection.

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?

No annotations are provided, so the description carries full burden. It states the action but doesn't disclose behavioral traits: it doesn't mention if this requires specific permissions, whether it interrupts ongoing speech, rate limits, error conditions (e.g., invalid bot_id), or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap.

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 purpose ('make a bot speak text during a meeting') and adds mechanism ('using text-to-speech'). Every word earns its place with zero waste or redundancy.

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 complexity (mutation tool with 4 parameters), no annotations, and no output schema, the description is incomplete. It lacks behavioral details (e.g., permissions, effects), usage context, and output information. For a tool that modifies meeting state, this leaves significant gaps for an AI agent.

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 all 4 parameters with descriptions. The description adds no additional meaning beyond implying 'text' is spoken and 'bot_id' identifies the bot, which is redundant with schema info. Baseline is 3 since schema does the heavy lifting, but no extra value is added.

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 rather than text/visual communication. However, it doesn't explicitly differentiate from all siblings (e.g., 'get_bot_status' is clearly different, but the distinction could be more explicit).

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 must be active in a meeting), exclusions (e.g., not for text display), or comparisons to siblings like 'send_chat_message' for text-based communication. Usage is implied by the action but lacks explicit context.

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?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action is 'Remove,' implying a mutation, but doesn't describe effects (e.g., whether the bot can be re-added, if it's permanent, or if it requires specific permissions). For a mutation 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, direct sentence with zero waste—'Remove a bot from a meeting'—front-loading the core action and resource. It's appropriately sized for a simple tool, making it easy to parse without unnecessary details.

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 (a mutation with no annotations and no output schema), the description is incomplete. It lacks information on behavioral traits (e.g., reversibility, permissions), usage context, or what happens post-removal. For a tool that modifies state, this leaves critical gaps for an agent to operate safely and 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 parameter 'bot_id' fully documented in the schema as 'ID of the bot to remove.' The description adds no additional meaning beyond this, such as format examples or where to find the ID. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

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 the resource ('a bot from a meeting'), making the purpose immediately understandable. It distinguishes from siblings like 'delete_bot_data' (which might delete data rather than remove from a meeting) and 'list_meeting_bots' (which is a read operation). However, it doesn't specify if this is a permanent removal or just disconnection, which slightly limits 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., bot must be in the meeting), exclusions (e.g., cannot remove if meeting is ended), or comparisons to siblings like 'delete_bot_data' (which might delete bot data entirely). This leaves the agent guessing about appropriate contexts.

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. While it implies a write operation ('send'), it doesn't address critical aspects like required permissions, whether the message is broadcast or targeted, rate limits, or error conditions. This leaves significant gaps in understanding how the tool behaves.

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 that efficiently conveys the core action without any unnecessary words. It's front-loaded with the essential information, making it easy to parse and understand immediately.

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 a chat-sending operation with no annotations or output schema, the description is incomplete. It lacks details on behavioral traits (e.g., permissions, side effects), response format, or error handling, which are crucial for an agent to use this tool effectively in a meeting 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?

The input schema has 100% description coverage, clearly documenting both required parameters (bot_id and message). The description doesn't add any additional semantic context 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') and resource ('a chat message from the bot to the meeting'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'make_bot_speak' or 'send_image_to_meeting', 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 'make_bot_speak' or 'send_image_to_meeting'. It also doesn't mention prerequisites such as needing an active meeting or bot setup, leaving the agent with insufficient context for proper tool 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 the full burden of behavioral disclosure. It mentions the action 'Send an image' and platform 'Google Meet only', but fails to describe critical behaviors such as required permissions, whether this is a read/write operation, potential rate limits, error conditions, or what happens if the bot isn't available. This leaves significant gaps for a tool that likely involves mutation and external dependencies.

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 purpose without unnecessary words. Every part ('Send an image to the meeting through the bot (Google Meet only)') contributes directly to understanding the tool's function, 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 complexity of sending media in a live meeting context, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., success/failure responses, timing constraints), does not explain return values or errors, and fails to address dependencies like bot availability. For a mutation tool with external interactions, this leaves too much unspecified.

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 both parameters ('bot_id' and 'image_url') clearly documented in the schema. The description adds no additional parameter semantics beyond implying the image is sent via a bot in Google Meet, which is already inferred from the tool name and schema. This meets the baseline for high schema coverage but doesn't enhance 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 ('Send an image') and target ('to the meeting through the bot'), with the specific platform constraint 'Google Meet only' adding useful specificity. However, it doesn't explicitly distinguish this tool from sibling tools like 'send_video_to_meeting' or 'send_chat_message' beyond the media type, missing full sibling differentiation.

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, only implying usage for sending images in Google Meet meetings via a bot. It offers no explicit when-to-use advice, no prerequisites (e.g., bot must be active), and no alternatives (e.g., using 'send_chat_message' for text instead), leaving the agent to infer context from the tool name and limited description.

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 full burden but only states the action without disclosing behavioral traits. It doesn't mention whether this is a read/write operation, potential side effects (e.g., interrupting ongoing bot activities), authentication needs, rate limits, or error conditions, leaving 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 with zero wasted words, clearly front-loading the core purpose. Every element ('send a video', 'to the meeting', 'through the bot', 'Google Meet only') contributes directly to understanding the tool's function.

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 crucial details like expected behavior (e.g., does the video play immediately?), error handling, dependencies (e.g., requires an active bot), or response format, leaving the agent with insufficient context for reliable use.

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 both parameters ('bot_id', 'video_url') well-documented in the schema. The description adds no additional parameter semantics beyond implying video format ('MP4' is only in schema) and platform context, meeting 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 action ('send a video') and target ('to the meeting through the bot'), with the specific platform constraint 'Google Meet only' adding useful context. However, it doesn't explicitly differentiate from sibling tools like 'send_image_to_meeting' or 'make_bot_speak', which would require more specific comparison.

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 with 'Google Meet only' as a platform restriction, but offers no explicit when-to-use advice, prerequisites (e.g., bot must be active), or alternatives among siblings like 'send_image_to_meeting'. Without such context, the agent lacks clear operational boundaries.

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. 12 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 observedlist_meeting_bots
    • 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, with no overlap. For example, create_meeting_bot, get_bot_status, and remove_meeting_bot handle bot lifecycle, while get_chat_messages, send_chat_message, and get_meeting_transcript manage communication and transcription separately.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case, such as create_meeting_bot, get_bot_status, and send_chat_message. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.

Tool Count5/5

With 12 tools, the server is well-scoped for managing meeting bots, covering creation, status monitoring, data retrieval, communication, and cleanup. Each tool serves a specific function without redundancy, making the count appropriate for the domain.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for meeting bots, including creation (create_meeting_bot), monitoring (get_bot_status, list_meeting_bots), interaction (send_chat_message, make_bot_speak), data access (get_recording, get_meeting_transcript), and deletion (remove_meeting_bot, delete_bot_data). No obvious gaps exist for the stated purpose.

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
    B
    maintenance
    Open-source meeting bot API with MCP server. Search, retrieve, and analyze meeting transcripts from Google Meet, Zoom, and Microsoft Teams directly from your AI tools.
    0
    2,751
    Apache 2.0

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/Angad-2002/attendee-mcp'

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