Skip to main content
Glama

Construct Attribution Primitive

aps_construct_attribution_primitive
Read-onlyIdempotent

Build and sign a four-axis AttributionPrimitive for an agent action, covering data sources, protocol modules, delegation chain, and compute providers, and return the signed object.

Instructions

Build and sign a four-axis AttributionPrimitive for an action. Axes: D (data sources), P (protocol modules), G (delegation chain), C (compute providers). Returns the complete signed object.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
axesYesFour-axis content. See spec §1.2 for entry shapes per axis.
actionYesAction identity tuple; the action_ref is derived as sha256(canonical(this))
issuerYesIssuer DID (gateway or agent producing the receipt)
timestampNoISO-8601 UTC with ms precision + Z (§2.5). Defaults to now().
issuer_private_keyYesEd25519 private key hex that signs the envelope

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv4.0.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / action / additionalProperties
      Removed value: -false
    • addedInput schema / properties / action / properties / params / propertyNames
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / axes / additionalProperties
      Removed value: -false
    • addedInput schema / properties / axes / properties / C / items
      Added value: +{}
    • addedInput schema / properties / axes / properties / D / items
      Added value: +{}
    • addedInput schema / properties / axes / properties / G / items
      Added value: +{}
    • addedInput schema / properties / axes / properties / P / items
      Added value: +{}
  2. Addedv2.8.0

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is largely covered. The description adds that the output is a complete signed object, but says nothing about the key-handling requirement implied by issuer_private_key, nor about determinism despite timestamp defaulting to now(), which sits awkwardly against idempotentHint=true.

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?

Three short sentences, zero filler: purpose first, axis legend second, return value last. Information is front-loaded and every clause carries distinct meaning.

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 nested, five-parameter cryptographic construction tool with no output schema, the description covers the return value and axis meanings but omits how the signing key is used or validated, what happens on signature failure, and whether the timestamp default affects determinism. Annotations patch part of the gap; the remaining behavioral surface is thin.

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%, which sets a baseline of 3, and the description earns above baseline by decoding the axes the schema only refers to as 'See spec §1.2': D=data sources, P=protocol modules, G=delegation chain, C=compute providers. It still adds nothing for action, issuer, timestamp, or issuer_private_key.

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 pair (build and sign) and a named resource (four-axis AttributionPrimitive for an action), and the axis legend D/P/G/C gives concrete scope. It is clearly distinct from aps_verify_attribution_primitive in direction of operation, but it never explicitly distinguishes itself from the closely-named siblings aps_create_attribution_receipt or aps_compute_attribution_action_ref.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this instead of aps_create_attribution_receipt or the other aps_* attribution tools, and no prerequisites are given (e.g. that a valid Ed25519 issuer key must exist). 'For an action' is the only contextual hint, leaving routing entirely to inference.

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