Skip to main content
Glama
Yasmine-Works

VoIPSense Maroc MCP Server

Set GoHighLevel contact service(s)

ghl_set_services
Idempotent

Records which service a GoHighLevel contact requested, preselecting it for the agent during the call and adding a 'Service:' line to the GHL call note. Supports single contacts or batches up to 500.

Instructions

POST /v1/ghl/services (permission callcenter:write). Tells VoIPSense which service(s) a GoHighLevel contact asked for; the agent sees it preselected during the call and the GHL call note gets a 'Service: …' line. Send a single contact (phone + service/services) or up to 500 items. Returns { received, saved, services, errors }.

Input Schema

NameRequiredDescriptionDefault
itemsNoBatch of up to 500 contacts; rejected rows are listed in `errors`
phoneNoContact phone, any format
replaceNotrue: the contact keeps only these service(s) in this sub-account
serviceNoService name (case, accents and spaces ignored when matching)
servicesNo
locationIdNoGoHighLevel sub-account (once for the batch, or per item)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare it is non-read-only, idempotent, and non-destructive. The description adds key context: required permission (callcenter:write), batch limit (up to 500 items), supported send modes (single contact or batch), and return shape ({ received, saved, services, errors }). It does not cover rate limits or authentication details beyond the permission, but is sufficiently transparent.

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 dense paragraph that front-loads the endpoint, permission, and effect. Every sentence carries relevant information, though it could be slightly more scannable with structure. No wasted words.

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?

With no output schema, the description provides the return shape and batch limit. Annotations cover safety. Parameter schema coverage is 83%. The definition is complete enough for an agent to call the tool correctly, though minor details like error handling specifics or auth token format are absent.

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 83%, so the schema already documents most parameters. The description adds useful meaning by explaining the two sending modes ('single contact (phone + service/services) or up to 500 items'), but does not elaborate on the `replace` flag or per-item locationId beyond what the schema provides. Baseline 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 a specific verb+resource: it sets service(s) on a GoHighLevel contact via POST /v1/ghl/services, and explains the visible effect (preselected during call, service line in GHL note). It does not explicitly differentiate from any sibling tool, but none of the listed siblings perform this operation, so clarity is high.

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 context ('the agent sees it preselected during the call') but does not state when to use this tool versus alternatives or when not to use it. No explicit alternatives or prerequisites are named, leaving the agent to infer the call-preparation scenario.

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