Skip to main content
Glama

ShearQuery — Barber & Beauty Industry Data

Email a contact from my GoHighLevel

ghl_send_email

For an AGENCY with GoHighLevel connected: send one email from its own GoHighLevel (its own sending address and domain) to one contact — by contact_id (from ghl_find_contacts), or by email address (added as a contact if new). Write the body as plain text; blank lines become paragraphs. Read the exact message back to the agency and get its OK before calling: this sends a real message to a real person from the agency's own GoHighLevel and can't be unsent. Never message a contact marked Do Not Disturb, and only message people who have agreed to hear from the agency. One person per call; up to 100 messages a day.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYesPlain text, exactly as approved by the agency.
nameNoTheir name, used only if a new contact has to be created.
emailNoIf there's no contact id: their email address.
subjectYes
contact_idNoThe GoHighLevel contact id. Preferred.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only flag readOnlyHint=false, openWorldHint=true, idempotentHint=false; the description adds far more: the message cannot be unsent, it goes out from the agency's own domain, new email addresses auto-create a contact, blank lines become paragraphs, and a 100-message-per-day rate limit. These are real operational constraints an agent cannot infer from structured fields.

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 dense paragraph, but every sentence carries a distinct constraint (routing method, body format, approval workflow, consent rules, rate cap) and the most decision-relevant information — what it sends, to whom, from where — is front-loaded. No filler or restatement of the tool name.

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

Completeness4/5

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

For a non-idempotent, outward-facing mutation tool with no output schema, the description covers safety, consent, identity resolution and limits thoroughly. The only gap is that it never indicates what the call returns on success (confirmation, message id, failure mode), which an agent would otherwise have to discover empirically.

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?

Schema coverage is 80%, so the baseline is 3, and the description genuinely adds above that: contact_id is flagged as preferred, email is the fallback path and will create a new contact if unknown, and name only applies during that creation. It complements rather than repeats the schema, though it doesn't clarify the subject/body formatting beyond the paragraph rule.

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?

States a concrete verb+resource with scope: 'send one email from its own GoHighLevel ... to one contact'. It also distinguishes itself from siblings by naming the contact_id source (ghl_find_contacts) and implicitly contrasting with the channel-specific ghl_send_sms. An agent can identify exactly what this does and what it does not.

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

Usage Guidelines5/5

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

Explicit conditions for use are given: agency accounts with GoHighLevel connected, one person per call, contact_id preferred or email address as fallback. It names the prerequisite sibling (ghl_find_contacts), the when-not rules (never message Do Not Disturb contacts, only consenting recipients), and a required pre-call workflow (read the message back and get approval).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.