Skip to main content
Glama
zackscriven

ghl-mcp-server-v2

by zackscriven

ghl_course_update_category

Idempotent

Updates a course category by product and category ID, allowing changes to title, visibility, drip settings, sequence, and other category fields.

Instructions

COURSES API — the {productId} path parameter is the course (product) id. Update Category Update a category. Requires a Location token with courses.write. Accepts the same category columns as create. All fields optional. Endpoint: PUT /courses/products/{productId}/categories/{categoryId} (Version header: v3; source: v3/courses-v3.json) Requires a Sub-Account (location) token. OAuth scopes: courses.write

Input Schema

NameRequiredDescriptionDefault
bodyYesRequest body (schema carried verbatim from the official OpenAPI spec).
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.5/5.0
Behavior3/5

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

The description adds material beyond the annotations: location-token requirement, courses.write scope, and the exact endpoint with version header — genuine context for a write call. However, the single most consequential behavior for a PUT-style update is left unresolved: whether omitting a field preserves or clears it. "All fields optional" combined with idempotentHint=true could mean either partial patch or full replacement, and an agent could silently wipe title/visibility/lockedBy. That ambiguity caps the score despite the good auth disclosure.

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 critical path-path-parameter clarification and the auth requirement come first, and the whole thing is six short lines. Minor padding from the API banner and source/version metadata, but nothing that obscures the call.

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 4-required-parameter mutation with a 12-property nested body and no output schema, the description covers auth, endpoint, and column sourcing adequately. What it omits is the semantics an agent must know to call it safely — update vs. replace behavior for omitted fields and what the call returns — which the absent output schema leaves unaddressed by anything else.

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 the baseline is 3, but the description earns above baseline by clarifying that productId is the course id — the schema only says "Product id" — and by pointing to the create schema as the canonical list of category columns. It doesn't touch body field semantics, but those are documented in-schema.

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 and resource ("Update a category") and disambiguates the confusingly named productId path parameter as "the course (product) id." The endpoint line pins down exactly which object is mutated, so an agent can tell this apart from ghl_course_create_category / ghl_course_get_category without opening the schema, though the prose never names those siblings explicitly.

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?

"Accepts the same category columns as create. All fields optional" implies an update-in-place and hints that callers may send a subset of fields, but there is no explicit when-to-use vs. create/sequence/get comparison, no statement of preconditions (does the category need to exist?), and no guidance on choosing between this and ghl_course_sequence_categories for ordering. Usage is inferable but not directed.

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