Skip to main content
Glama
geopopos

GoHighLevel MCP Server

by geopopos

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Tools are clearly grouped by resource (conversations, tasks, calendars), and each has a distinct action. The only minor overlap is between get_calendar_events and get_appointment, but descriptions clarify that one lists events by date range while the other fetches a specific appointment.

    Naming Consistency4/5

    Most tools follow a consistent verb_noun pattern in snake_case (e.g., create_conversation, update_task, delete_appointment). Minor deviations include pluralization differences (get_messages vs get_conversation) and the special case 'complete_task', but the overall convention is predictable.

    Tool Count3/5

    21 tools is on the heavier side, falling into the 'feels heavy' range (16-25). However, the count is justified by covering CRUD for three distinct domains (conversations, tasks, appointments), so it is not excessive.

    Completeness4/5

    The server provides full CRUD for conversations, tasks, and appointments, plus message retrieval and sending. Minor gaps exist such as no update/delete for messages and no management of calendars themselves, but these are not critical to the core workflows.

  • Average 3.2/5 across 21 of 21 tools scored. Lowest: 2.1/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    There are no annotations, so the description must carry the burden of behavioral transparency. It only states the action 'Delete a task' but does not disclose consequences such as irreversibility, cascading effects, permissions, or idempotency.

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

    Conciseness3/5

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

    The description is a single short sentence, making it concise, but it is under-specified and repeats the tool name. It does not earn its place as it adds no new information.

    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?

    The tool has two required parameters and no output schema, yet the description is too sparse. It fails to explain the role of 'contactId' or what the agent should expect after deletion, leaving significant context 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?

    Schema coverage is 100% for both 'taskId' and 'contactId', so the baseline is 3. The description adds no parameter-specific meaning or relationships beyond the schema.

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

    Purpose2/5

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

    The description 'Delete a task' is a near-verbatim restatement of the tool name 'delete_task' and adds no scope or distinguishing detail. While it does identify the action and resource, it is effectively a tautology.

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

    Usage Guidelines1/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, prerequisites, or alternatives. It does not compare with sibling tools such as 'update_task' or 'complete_task'.

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

  • Behavior1/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 simply states 'Update an existing task' without explaining side effects, permissions, partial update behavior, or return values. This is a significant gap 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.

    Conciseness3/5

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

    The description is very short, which is concise, but it is under-specified rather than appropriately concise. It fits the purpose of a brief label but offers no structural advantage beyond that.

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

    Completeness1/5

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

    For a 7-parameter mutation tool with no annotations and no output schema, this description is critically incomplete. It does not explain the operation's nuances, required fields, or behavioral expectations, leaving the agent with only the raw schema to rely on.

    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 has 100% description coverage for all 7 parameters, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema already states.

    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?

    Uses clear verb 'Update' with resource 'task', distinguishing it from create_task, get_task, delete_task, and complete_task. The scope is not detailed, but the purpose is unambiguous.

    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?

    Provides no guidance on when to use this tool versus alternatives like complete_task or create_task. No exclusions, prerequisites, or context are mentioned.

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

  • Behavior1/5

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

    With no annotations, the description carries the full burden of disclosing behavior. It merely states 'Delete a conversation' without mentioning irreversibility, cascading effects on related data (e.g., messages), permissions, or any side effects. This is insufficient for a destructive operation.

    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 concise sentence with no redundancy. It effectively communicates the basic action, though it is minimal in content.

    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 destructive tool with no annotations or output schema, the description is incomplete. It fails to explain what happens after deletion, whether the action is reversible, or any effect on related resources. This is a significant gap for a mutation tool.

    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 provides 100% coverage with a clear description for conversationId ('The conversation ID to delete'). The tool description adds no further parameter context, so the baseline score of 3 applies.

    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 uses a specific verb ('Delete') and resource ('conversation'), clearly distinguishing it from sibling tools like get_conversation and update_conversation. It lacks detail about scope or consequences, but the core purpose is unambiguous.

    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 about when to use this tool versus alternatives, nor any prerequisites or exclusions. The intended use is only implied by the tool name and basic description.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden for behavioral disclosure. It simply states the action without explaining whether the deletion is permanent, what cascading effects occur, or any authorization requirements. The verb 'delete' implies destructive behavior 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.

    Conciseness4/5

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

    The description is extremely short and to the point, which is appropriate for a simple one-parameter deletion tool. It is concise and front-loaded without unnecessary words.

    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 destructive operation with no annotations and no output schema, the description is under-specified. It lacks information about side effects, cancellation semantics, or when to use it compared to other appointment tools, leaving the agent to infer too much.

    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 fully documents the eventId parameter with a clear description, and schema description coverage is 100%. The tool description adds no additional meaning beyond what the schema already provides.

    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 deletes or cancels an appointment, using a specific verb and resource. It is distinguishable from sibling tools like get_appointment or create_appointment, though it does not elaborate on any distinction between 'delete' and 'cancel'.

    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, such as update_appointment or other delete tools. The context signals show sibling tools, but the description does not mention them or any exclusions.

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

  • Behavior2/5

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

    With no annotations, the description carries full responsibility for behavioral disclosure. It only says 'Get available time slots,' implying a read-only operation, but does not describe return format, pagination, timezone handling, or any side effects. This is a significant gap for a tool with no structured annotations.

    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, clear sentence with no wasted words. It is appropriately concise, though it lacks additional structure that could convey more useful context.

    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?

    The tool has moderate complexity (5 parameters, timezone handling) and no output schema, so the description should compensate by explaining what the response looks like or what 'available' means. It does neither, leaving the tool's overall behavior partially underspecified.

    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 describes all 5 parameters with 100% coverage, so the description does not need to add much. However, the description itself adds no extra meaning about parameters beyond what the schema already provides, so the baseline 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 tool retrieves available time slots for a calendar, using a specific verb and resource. It is distinct from sibling tools like get_calendar_events (which likely returns events, not free slots), though it does not explicitly differentiate itself.

    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 such as get_calendar_events or get_appointment. There are no exclusions, prerequisites, or contextual usage hints.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral details, but it only says 'Update an existing appointment'. It doesn't mention whether partial updates are allowed, what happens if the eventId doesn't exist, any permission requirements, or side effects like notifications. The term 'existing' hints at a precondition but nothing more.

    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 concise sentence with no wasted words. It is front-loaded with the verb and resource. However, it is so minimal that it borders on under-specification, though not enough to be penalized heavily.

    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 9 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to explain how the fields interact, whether all fields are optional after specifying eventId, or what the expected outcome or response is. The schema covers parameter names but not behavioral 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%, so the schema already documents all 9 parameters clearly. The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 applies.

    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 (update) and the resource (appointment), and the word 'existing' distinguishes it from create/delete/get appointment tools. However, it provides no detail about what aspects can be updated, relying entirely on the schema for that context.

    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?

    There is no guidance on when to use this tool versus alternatives like create_appointment or delete_appointment, nor any prerequisites such as the appointment needing to exist. The description is purely declarative with no contextual direction.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure, but it merely states the action without explaining side effects, required permissions, or the impact of parameters like toNotify. It does not mention whether notifications are sent, whether the appointment is linked to a contact, or any other consequences beyond the obvious creation.

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

    Conciseness3/5

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

    The description is a single sentence and is free of fluff, but it is too minimal to be considered well-structured for a tool with 11 parameters. It essentially restates the tool name and provides no additional context, so while it is concise, it does not fully earn its place as a helpful description.

    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 should at least mention return values, side effects, or prerequisites. It does none of these, leaving gaps around what happens after creation and what conditions must be met. The complexity (11 parameters, enums, required fields) demands more context than a single generic sentence.

    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 all 11 parameters are already documented in the schema. The description adds no parameter-specific meaning, but the baseline of 3 applies since the schema does the heavy lifting. No extra credit is earned, nor is any deduction warranted.

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

    Purpose5/5

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

    The description uses the specific verb 'Create' and clarifies the resource as 'appointment/calendar event', clearly distinguishing it from sibling tools like create_task and create_conversation. It leaves no ambiguity about what action is performed on which resource.

    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 does not mention related tools like get_free_slots, update_appointment, or delete_appointment, nor does it state any prerequisites or exclusions. The agent is left without context for the appropriate invocation scenario.

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

  • Behavior2/5

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

    With no annotations, the description carries full responsibility for behavioral disclosure. It only says 'get details' with no mention of side effects, auth requirements, return format, or error behavior. It does not exceed the basic implied read operation.

    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 no wasted words. It is appropriately concise for a simple getter.

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

    Completeness3/5

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

    For a one-parameter tool with no output schema, the description is minimally adequate but leaves ambiguity about what 'details' includes (metadata only vs. events). Given the sibling context, mentioning that this returns calendar metadata rather than events would improve completeness.

    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 covers 100% of the parameter (calendarId) with a clear description. The tool description adds no additional semantic value beyond the schema, so the baseline of 3 applies.

    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 fetches details for one calendar, using the verb 'Get' and the resource 'calendar'. It distinguishes from siblings like get_calendars (plural) and get_calendar_events, though 'details' is slightly vague.

    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 about when to use this tool versus alternatives such as get_calendars for listing or get_calendar_events for events. The description does not mention exclusions or alternative tools.

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

  • Behavior2/5

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

    No annotations are present, so the description carries the full burden of behavioral disclosure. It only states the action without mentioning side effects, idempotency, error handling, permissions, or return behavior. This is a significant gap 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, focused sentence with no filler or redundant information. It is well-structured and front-loaded, making it easy to parse.

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

    Completeness3/5

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

    The tool is relatively simple and the schema coverage is complete, but the lack of usage guidelines and behavioral transparency leaves gaps. With no output schema, the agent cannot infer return values or error behavior. This is acceptable but not outstanding, so a score of 3 is appropriate.

    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 covers all three parameters with descriptions, so the schema provides the necessary semantic detail. The tool description adds no additional parameter context, warranting the 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 verb 'mark' and the resource 'task', and specifies the binary outcome of 'completed or incomplete'. It distinguishes itself from get/delete/create, though it overlaps semantically with update_task, making it slightly less distinct but still clear.

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

    Usage Guidelines3/5

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

    No explicit guidance is provided on when to use this tool versus alternatives like update_task. The usage is implied by the name and description (toggling completion state), but there are no exclusions or alternative recommendations.

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

  • Behavior2/5

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

    No annotations are present, so the description carries the full burden. It only states the basic action but does not disclose side effects, required permissions, return value, or potential errors. For a mutation tool, this is insufficient 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 sentence with no superfluous information. It is front-loaded and directly states the purpose.

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

    Completeness3/5

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

    The tool is simple with one parameter, and the schema fully documents that parameter. However, the description lacks information about the return value or any creation semantics (e.g., whether it returns the created conversation), so it is not fully complete.

    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 coverage is 100% and the parameter is described as 'The contact ID to create a conversation with'. The description adds no additional nuance beyond the schema, so the baseline of 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states the action and resource: 'Create a new conversation with a contact'. It uses a specific verb ('Create') and resource ('conversation'), and is distinct from sibling tools like update_conversation or get_conversation.

    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. There is no mention of prerequisites (e.g., contact must exist) or scenarios where another tool like send_message might be more appropriate. The description only states the action without context.

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

  • Behavior2/5

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

    The description only states the action and does not disclose behavioral traits such as side effects, permission requirements, return values, or whether the task is persisted immediately. With no annotations provided, the description carries the full burden of transparency, and it does not meet that burden. It is not misleading but is severely under-informative.

    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, focused sentence with no redundant words, making it appropriately concise and front-loaded. However, its brevity means it omits useful operational details, though this does not violate conciseness principles.

    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?

    With six parameters, no annotations, and no output schema, the description is too minimal to provide complete context. It does not mention return values, error semantics, or relationships to other task operations. The schema covers parameter meanings but not the broader behavioral context an agent needs for correct invocation.

    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?

    All six parameters are already fully described in the input schema (100% coverage), so the description adds no additional semantic meaning beyond what the schema provides. The mention of 'for a contact' aligns with contactId but does not elaborate on its format or behavior, so the description does not compensate beyond the schema.

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

    Purpose5/5

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

    The description 'Create a new task for a contact' clearly identifies the action (create), the resource (task), and the scope (for a contact), distinguishing it from sibling tools like get_tasks, update_task, and delete_task. It is a specific verb+resource statement that leaves no ambiguity about the tool's function.

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

    Usage Guidelines3/5

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

    No explicit usage guidelines are provided. The verb 'create' implies the tool is for new tasks, distinguishing it from update_task or complete_task, but no alternatives, prerequisites, or conditions are mentioned. The usage is implied rather than stated.

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

  • 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 only says 'Get details', implying a read operation, but does not disclose what happens if the appointment is not found, what fields are returned, or any other behavioral traits.

    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, concise sentence with no wasted words. It is front-loaded with the action and resource.

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

    Completeness3/5

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

    For a simple one-parameter get tool, the description is minimally adequate, but it lacks mention of the return format (no output schema) and any usage context. The tool is not complex enough to require extensive detail, yet the absence of output schema info creates a gap.

    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 fully describes the only parameter (eventId) with a clear description, so schema coverage is 100%. The tool description adds no param information, aligning with the baseline of 3 when schema coverage is high.

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

    Purpose5/5

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

    The description 'Get details of a specific appointment' clearly states a specific verb (Get) and resource (appointment details). It distinguishes the tool from siblings like get_calendar_events (which likely lists events) and create/update/delete_appointment.

    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 get_calendar_events or get_free_slots. It does not mention any prerequisites, exclusions, or alternative tools.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden. It states only a basic 'get' operation but does not disclose any potential side effects, permissions, pagination, error behaviors, or how results are returned. The minimal wording provides scant behavioral context.

    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, front-loaded sentence that is concise and easily parsed. It does not waste words, though it could have added a bit more context without harm.

    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 minimal description, the tool leaves significant gaps. It does not clarify what 'the location' refers to, what a 'calendar' includes, or what the return value looks like. This is insufficiently complete for an agent to confidently invoke it.

    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 tool has zero parameters, so the input schema is trivially complete. The description adds slightly by indicating the resource type ('calendars') and scope ('all'), but for parameter meaning this is irrelevant. Baseline of 4 applies.

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

    Purpose5/5

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

    The description 'Get all calendars in the location' uses a specific verb and resource, and the word 'all' clearly distinguishes it from the sibling tool 'get_calendar' (singular). This makes the tool's purpose unambiguous.

    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 about when to use this tool versus alternatives like 'get_calendar' or 'get_calendar_events'. The only implicit hint is 'all', but there is no explicit statement of scope or exclusion.

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

  • Behavior2/5

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

    Since no annotations are provided, the description carries the full burden of behavioral disclosure. It indicates a read operation and filters by contact, but does not disclose pagination, ordering, error handling, required permissions, or return format details.

    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 sentence that is efficiently front-loaded with the action and resource. Every word earns its place, with no filler or redundancy.

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

    Completeness3/5

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

    The tool is simple with one parameter, but with no output schema or annotations, the description should ideally clarify what is returned. It states 'all tasks' but does not describe the response structure, potential limits, or other operational details, leaving some ambiguity for an 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% (contactId is described as 'The contact ID to get tasks for'), so the description adds no new parameter semantics beyond confirming the contact-specific scope. A baseline of 3 is appropriate.

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

    Purpose5/5

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

    The description specifies the action (get), the resource (all tasks), and the scope (for a specific contact), clearly distinguishing it from sibling get_task which retrieves a single task. It leaves no ambiguity about what the tool does.

    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 explicit usage guidance is provided. The description does not mention when to use this versus alternatives like get_task, nor does it state any exclusions or prerequisites. The usage is implied by the name and description but not spelled out.

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

  • 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 only states the basic action ('send') without mentioning permissions, side effects, failure modes, delivery guarantees, or response behavior. For a mutation tool with no annotation support, this is insufficient.

    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, concise sentence that directly states the tool's purpose. It is front-loaded and contains no filler or redundant details, earning full marks 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?

    For a tool with 9 parameters, no output schema, and no annotations, the description lacks critical context. It does not explain how parameters interact per channel (e.g., subject needed for email), scheduling behavior, or expected response. The schema covers parameters, but the overall description leaves notable gaps in usage 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 schema provides 100% description coverage for all 9 parameters, including types, enum values, and field-specific notes (e.g., 'subject required for Email type'). The description adds little beyond reiterating message types (SMS, Email, WhatsApp) which are already in the schema, so it does not compensate beyond the baseline.

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

    Purpose5/5

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

    The description clearly states the tool sends a message to a contact and lists examples of channels (SMS, Email, WhatsApp, etc.), using a specific verb and resource. This distinguishes it from sibling tools that manage conversations, tasks, or calendars, none of which are message-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 Guidelines3/5

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

    The description implies the tool is used for sending messages but provides no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives or exclusions, though there are no obvious sibling tools with overlapping functionality, so the implied usage is generally clear.

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

  • 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 only states the basic function and does not describe return format, error behavior, permissions, or what 'details' include (e.g., whether messages are included). This is minimal 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 sentence with no filler. It is front-loaded with the action and resource, and every word earns its place. Very concise.

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

    Completeness3/5

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

    For a simple one-parameter retrieval tool, the description is somewhat sufficient, but without an output schema it does not clarify what 'details' includes. This could lead to ambiguity given sibling tools like get_messages. Overall, it covers the core action but leaves the scope of returned data 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?

    The input schema fully documents the conversationId parameter with a description. The tool description adds no additional semantic detail beyond restating 'by ID', so it adds no value beyond the schema. Baseline 3 for high schema coverage.

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

    Purpose5/5

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

    The description clearly states the tool gets a specific conversation by ID, using the verb 'get', the resource 'conversation', and the scope mechanism 'by ID'. This distinguishes it from search_conversations, which is for searching, and from create/update/delete operations.

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

    Usage Guidelines3/5

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

    No explicit guidance is given about when to use this tool versus alternatives. The phrase 'by ID' implies it is for direct retrieval when an ID is already known, but it does not mention search_conversations or state exclusions. This is implied usage rather than explicit direction.

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

  • 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 for behavioral disclosure. It does not mention pagination, ordering, return type, or any limitations. The presence of limit and lastMessageId in the schema suggests important behaviors that the description fails to explain.

    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?

    A single, front-loaded sentence that directly states the operation without unnecessary words. It is appropriately sized for the tool's simplicity.

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

    Completeness3/5

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

    For a low-complexity tool with full schema coverage, the description is adequate but lacks context about return format and pagination behavior. It does not explain how limit and lastMessageId affect the result, but this is partially covered by the schema.

    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?

    All 3 parameters have descriptions in the input schema (100% coverage), so the description adds no additional meaning. It does not elaborate on limit or lastMessageId semantics, but the schema already covers these adequately.

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

    Purpose5/5

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

    The description uses the specific verb 'get' with resource 'messages' and scope 'in a conversation', clearly distinguishing it from sibling tools like get_conversation which targets the conversation object itself. It is precise and unambiguous.

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

    Usage Guidelines3/5

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

    The usage is implied by the phrase 'in a conversation' — it is clear you need a conversation ID. However, there is no explicit mention of when to use this tool versus alternatives like search_conversations or get_conversation, nor any exclusions.

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

  • 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 only states the action and does not mention required context (e.g., the need for contactId), potential return format, error behavior, or any side effects. For a tool with no annotations, this is insufficient disclosure of behavioral traits.

    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, front-loaded sentence that is concise and to the point. It contains no redundant or filler information, earning a perfect score for conciseness.

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

    Completeness3/5

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

    The tool is a simple get operation with two parameters and no output schema, but the description lacks details that would help the agent fully understand the invocation context. For example, it does not mention that `contactId` is also required, nor does it describe the expected return value. While the schema supplies parameter info, the description alone is minimally adequate for a straightforward retrieval tool.

    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% (both `taskId` and `contactId` have descriptions), so the baseline is 3. The description adds no extra parameter meaning beyond the schema; it only mentions 'ID' without clarifying the dual-parameter requirement. Since the schema handles parameter documentation, this score is appropriate.

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

    Purpose5/5

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

    The description clearly states the tool retrieves a specific task by ID, with a specific verb ('Get') and resource ('task'). The phrase 'a specific task' distinguishes it from the sibling tool `get_tasks` which likely lists tasks. This is a clear, unambiguous purpose.

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

    Usage Guidelines3/5

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

    The description does not explicitly state when to use this tool versus alternatives like `get_tasks` or `create_task`. Usage is implied by the name and purpose: it is for retrieving one task by ID. However, no explicit guidance or exclusions are provided, leaving it to the agent to infer.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic purpose and result, but does not mention that it is read-only, how filters combine, pagination behavior, or any side effects. This is insufficient for a tool with multiple filtering options.

    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 concise sentence that clearly states the tool's purpose and return behavior. No filler words or redundant information.

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

    Completeness3/5

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

    The description is adequate for a basic search tool: it states the purpose and that a list is returned. However, it lacks details about default behavior when no filters are provided, pagination, and result ordering. Given the absence of an output schema and annotations, the description could be more complete.

    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 description does not need to restate parameters. The description adds no additional meaning beyond the schema, such as how filters interact or default ordering. Baseline 3 is appropriate.

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

    Purpose5/5

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

    The description clearly identifies the action ('Search and filter') and the resource ('conversations in GoHighLevel'), and explicitly states the return type ('a list of conversations'). This distinguishes it from sibling tools like get_conversation, which presumably fetches a single conversation.

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

    Usage Guidelines3/5

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

    The description implies usage for finding conversations by criteria, but does not explicitly state when to use it over alternatives such as get_conversation or create_conversation. No exclusions or alternative tool names are provided.

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

  • 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 only states that it retrieves events, but does not disclose behavioral details such as whether all calendars are searched when no calendarId is given, pagination, ordering, or inclusion of canceled appointments. This is a significant gap for a tool with no structured safety hints.

    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?

    A single sentence that front-loads the action and object, with zero fluff. It is concise and well-structured, though it could have included more guidance without becoming verbose.

    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 has 5 parameters, no output schema, and many sibling tools, the description is too sparse. It does not clarify the return format, whether filtering is optional, or how it relates to get_appointment (singular). An agent may invoke it incorrectly without knowing the default scope (e.g., all calendars) or how to limit results.

    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 coverage is 100%, so all five parameters already have descriptions. The description adds the concept of 'date range', which maps to startTime/endTime, but does not elaborate on the filter parameters (userId, groupId, calendarId) beyond schema. Baseline 3 is appropriate since the schema handles the parameter semantics.

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

    Purpose5/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 'calendar events/appointments', with scope restricted to a date range. This distinguishes it from sibling tools like get_appointment (singular event) and get_calendars (calendar metadata), making the purpose unambiguous.

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

    Usage Guidelines4/5

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

    The description clearly implies use when retrieving events within a date range. However, it does not explicitly contrast with get_appointment for single events or mention when not to use it (e.g., for free-slot queries). The context is clear but lacks exclusions or alternatives.

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

  • Behavior3/5

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

    With no annotations, the description carries the burden of disclosing behavior. It names the specific update operations, which is useful, but it does not mention side effects such as permission requirements, whether updates are partial, or what the tool returns.

    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 concise sentence with the verb and resource front-loaded, followed by concrete examples. There is no wasted or redundant text.

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

    Completeness3/5

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

    The tool is simple, but the description omits critical context such as whether updates are partial or replace the entire conversation, auth requirements, and return values. Given the lack of output schema and annotations, this is a moderate gap.

    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 coverage is 100% with clear parameter descriptions, so the description adds no new parameter-level information. The parenthetical examples simply restate the schema fields (star/unstar, assign, mark as read), earning the baseline score.

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

    Purpose5/5

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

    The description clearly states the tool updates a conversation and lists specific actions (star/unstar, assign, mark as read), which distinguishes it from siblings like search_conversations, get_conversation, create_conversation, and delete_conversation.

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

    Usage Guidelines3/5

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

    No explicit guidance is provided on when to use this tool versus alternatives. The context is implied through the listed examples, but there is no mention of when not to use it or reference to sibling tools.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

ghl-convo-mcp MCP server

Copy to your README.md:

Score Badge

ghl-convo-mcp MCP server

Copy to your README.md:

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/geopopos/ghl-convo-mcp'

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