Skip to main content
Glama

update_creator_profile

Idempotent

Append a full immutable profile version with compare-and-swap. Admin scope.

    expected_version prevents lost updates. Returns version+1, or unchanged:true when
    the normalized full snapshot is identical. Optional idempotency_key replays safely.
    Errors: unauthorized, forbidden, not_found, conflict, idempotency_conflict,
    invalid_request, configuration_unavailable, rate_limited.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
stanceNoOptional: what the creator is for or against, selling, or building, so hooks carry a real position instead of a neutral summary.
api_keyNoAPI key for this call. Omit to fall back to the Authorization: Bearer / X-API-Key request header (streamable-HTTP only), then the VHGENGINE_API_KEY env var (the stdio default). No key resolvable -> unauthorized.
creatorNoOptional: who is speaking, free text ('wedding videographer, 40k followers, I talk to camera over b-roll of my shoots'). The more the engine knows about the creator, the more the hooks are theirs rather than a generic narrator's.
audienceNoOptional: who watches ('engaged couples budgeting'). Aims every hook at a real audience instead of an assumed one.
profile_idYesAccount-owned creator profile id returned by create/list profiles.
display_nameYesAccount-local profile label, 1-100 characters.
secondary_useNoFull replacement decisions; omit for all denied. Each secondary-use decision is independent and denied by default. These decisions are retained for governance only: generation, scoring, retrieval, and learning do not consume them today.
idempotency_keyNoCaller-chosen replay key (any string, unique per intended effect). A repeat call with the SAME key returns the stored result and is NEVER charged twice; the same key with different arguments is an idempotency_conflict. Omit and every call is a fresh, separately charged operation.
expected_versionYesPositive immutable profile version.
authority_attestedYesI confirm that I am this creator or am authorized by them to store these declarations and use the selected immutable version when I later make an explicit profile-bound hook-generation request. VHGENGINE records this caller attestation; it does not verify identity, ownership, or legal authority.
first_person_factsNoOptional: facts TRUE of this creator that hooks may assert first-person ('I have filmed 200+ weddings'). The ONLY sanctioned source of personal claims; without it, hooks never invent a biography.
subject_relationshipYesself, authorized representative, or organization representative.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
stanceNoCaller-declared speaker stance.
creatorNoCaller-declared creator description.
versionNoExact immutable version returned by this read or write.
audienceNoCaller-declared audience.
replayedNotrue when idempotency replayed the stored write.
unchangedNotrue when the normalized replacement matched exactly.
created_atNoProfile creation time, ISO-8601 UTC.
is_currentNoWhether this immutable version is current.
profile_idNoOpaque account-owned profile id.
updated_atNoCurrent profile update time, ISO-8601 UTC.
display_nameNoAccount-local profile label.
secondary_useNoThree independent deny-by-default decisions.
current_versionNoProfile's current version.
attestation_noteNoUnverified-authority and non-consumption warning.
consent_receiptsNoLatest revision receipt for every decision.
authority_attestedNoThe caller recorded the required authority attestation.
first_person_factsNoSanctioned caller-declared facts.
rights_notice_textNoExact immutable caller-authority notice text.
version_created_atNoThis version's creation time, ISO-8601 UTC.
consent_notice_textNoExact deny-by-default secondary-use notice text.
subject_relationshipNoCaller's declared relationship to the creator.
rights_notice_versionNoImmutable rights-attestation notice version.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the idempotentHint annotation, the description discloses admin access requirements, CAS behavior, return semantics ('version+1', 'unchanged:true'), idempotency-key replay safety, and a full error list. This substantially exceeds annotation coverage.

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 compact—four lines covering purpose, behavior, and errors—with no filler. Key operational details are front-loaded.

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 an output schema present and a comprehensive input schema, the description covers the essential operational traits: versioning, CAS, idempotency, errors, and admin scope. It doesn't explicitly describe the immutable profile lifecycle, but that is implied and not critical for invocation.

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%, but the description adds meaning for expected_version (prevents lost updates) and idempotency_key (replays safely), enriching the bare schema definitions. Other parameters are well-documented in the schema, so no further description needed.

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 opens with 'Append a full immutable profile version with compare-and-swap,' which clearly states the action (append a version) and resource (creator profile), and distinguishes it from create/delete/get/list siblings through the immutable-versioning concept.

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 provides clear usage context: admin scope, compare-and-swap for lost-update prevention, and idempotency-key replay semantics. It lacks explicit alternatives or when-not-to-use guidance, but the context is sufficient for an update operation.

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.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct resource and action, e.g., signup vs. delete_account, create_key vs. revoke_key, generate_hooks vs. score_hook. Even similar tools like generate_hooks and generate_hooks_batch are clearly differentiated by single vs. batch operation.

Naming Consistency5/5

All 32 tools use a consistent verb_noun snake_case pattern (e.g., add_credits, create_checkout, revoke_key, list_outcomes) with no mixing of camelCase or other conventions.

Tool Count4/5

32 tools is slightly above the typical 15-tool range, but the domain is broad (account, keys, webhooks, generation, scoring, jobs, outcomes), and each tool has a specific purpose. No tools seem redundant.

Completeness4/5

The tool surface covers most lifecycle operations: CRUD for accounts/keys/webhooks, generation/scoring with batch and async variants, outcomes reporting, and auxiliary tools. Missing explicit delete for hooks (expire automatically) and some update operations, but no critical gaps.

Resources