Skip to main content
Glama
zackscriven

ghl-mcp-server-v2

by zackscriven

ghl_course_get_category

Read-onlyIdempotent

Retrieve a course category by its ID and product ID for a location, returning the full category object from GoHighLevel Courses API.

Instructions

COURSES API — the {productId} path parameter is the course (product) id. Get Category Get a category by id. Requires a Location token with courses.readonly. Returns the full category object. Endpoint: GET /courses/products/{productId}/categories/{categoryId} (Version header: v3; source: v3/courses-v3.json) Requires a Sub-Account (location) token. OAuth scopes: courses.readonly

Input Schema

NameRequiredDescriptionDefault
productIdYesProduct id
categoryIdYesCategory id
locationIdYesLocation id or sub-account id is required.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.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 readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The description genuinely adds value beyond them: OAuth scope, token type, exact endpoint and version header, and confirmation that it returns the full category object.

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?

Front-loaded and mostly purposeful, but the token requirement is stated twice ("Requires a Location token..." and "Requires a Sub-Account (location) token"), and the header/version/source metadata is somewhat verbose for a simple getter.

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 simple id-based getter with 100% schema coverage and full annotation coverage, the description provides auth requirements, endpoint, and return shape, so an agent has enough to invoke it. Minor gap: no note on error behavior when the category id is invalid.

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 100%, so baseline would be 3, but the description adds real meaning by clarifying that {productId} is the course (product) id, which resolves ambiguity the schema's "Product id" text leaves open.

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?

States a specific verb+resource ("Get a category by id"), which inherently distinguishes it from the sibling ghl_course_list_categories. However, it never names a sibling explicitly (list/create/update/delete category) to make routing 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?

It gives the prerequisites (Location/sub-account token, courses.readonly scope), so an agent knows what's needed to call it. But there is no explicit when-to-use vs alternatives guidance, e.g. no pointer to ghl_course_list_categories when only browsing rather than fetching one by id.

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

Deploy Server

Other Tools