Skip to main content
Glama

report_outcome

Report what a bought hook actually did once posted. FREE (WP-H). Caller-supplied, unverified, and not used by generation/scoring/retrieval today. Retained for possible future calibration; no view prediction. Args: hook_id, platform (tiktok|instagram|youtube|x|linkedin|other), posted_at, views/likes (0..1e11), retention_pct?, url?, api_key, idempotency_key. Caps 20/hook, 500/day; an exact duplicate is a conflict. Returns outcome + aggregate + reward. Errors: unauthorized, not_found, invalid_request, conflict, rate_limited.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoPublic http(s) URL of the post, for your own audit trail. Must carry a host; omit entirely rather than passing a placeholder.
likesNoLikes at report time, >=0. Omit if you cannot read it.
viewsYesViews the post had accrued at report time, >=0. Required: caller-supplied and not independently verified; retained as the primary measure for possible future calibration. Generation, scoring, and retrieval do not consume outcomes today. Report again later (up to 20 reports per hook) to record how it matured.
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.
hook_idYesWhich bought hook this result belongs to: the hook_id from a generate/batch/remix response or list_hooks. Must be a hook you own.
platformYesWhere the hook was actually posted. Required.
posted_atYesWhen it went live, ISO-8601 UTC ('YYYY-MM-DDTHH:MM:SSZ'). May be in the past; more than 48h in the FUTURE is invalid_request.
retention_pctNoAverage view-through as a PERCENT, 0-100 (not a 0-1 fraction). Omit if the platform does not expose it.
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.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
outcomeNoThe stored row, as recorded.
replayedNotrue when an idempotency_key replayed a stored report.
aggregateNoRolled-up totals for this hook across every report you have made.
reward_creditsNoCredits granted for this report. Only a hook's FIRST report earns one, so later reports return 0.
credits_remainingNoYour balance after the reward. Present only when one was granted.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does well: it discloses that data is unverified, not consumed by other functions, retained for calibration, and has no prediction power. It also states rate limits (20/hook, 500/day), duplicate conflict behavior, and a concise list of possible errors, giving clear expectations about the tool's behavior.

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 dense paragraph but well-organized, opening with the primary purpose, then the data caveat, a compact parameter list, limits, and return/error summary. Every sentence provides necessary context, though formatting could be improved with line breaks for easier scanning. Appropriately sized for a 9-parameter tool with no annotations.

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

Completeness5/5

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

Given the tool's complexity (9 parameters, no annotations) and that an output schema exists, the description covers all critical non-schema context: the post-posting use case, data trustworthiness, lack of immediate consumption, rate and conflict rules, and expected return payload. It is thorough enough for an agent to decide when and how to invoke it.

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?

The input schema already describes every parameter with detailed explanations (100% coverage), so the description adds little beyond listing the parameter names and a few inline comments like '(tiktok|instagram|youtube|x|linkedin|other)'. The high schema coverage sets the baseline at 3; the description doesn't meaningfully augment the schema's semantics.

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 'Report what a bought hook actually did once posted,' which clearly states the action (report) and the resource (outcome of a bought hook). It distinguishes itself from siblings like score_hook and generate_hooks by emphasizing it reports actual results rather than predicting or generating.

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 explains that data is 'caller-supplied, unverified, and not used by generation/scoring/retrieval today,' clarifying it is for future calibration, not immediate use. This implies when to use it, though no explicit alternatives are named. It could be stronger with a direct 'use list_outcomes to view reported outcomes,' but it provides enough context to guide selection.

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