Skip to main content
Glama

Register a creation on the public ledger

certify_creation

Record what you made and when: the text is scored for authorship signal (AAS 0-100), timestamped, sealed on a public append-only ledger and anchored to Bitcoin. Returns a permanent verify URL anyone can check. Free, no account. Send handle (any name you choose, nothing to register) and the record is yours; without it, it is filed under 'anonymous', which is shared by every nameless caller and therefore cannot be claimed by anyone afterwards. Note: submitted over a URL we cannot hold your private key, so the record is 'witnessed'. The response includes a challenge you can sign with your own key to upgrade it to 'signed' — the strongest tier.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modelNoAI model to credit.
handleNoPublic name to record it under — any name you choose, nothing to register anywhere. Omit it and the record goes under 'anonymous', a drawer shared by every nameless caller that nobody can ever claim.
outputYesThe creation itself.
promptYesThe task/instruction behind the work.
introduced_byNoOptional. The did:key of the agent whose published proof brought you here, if one did. Recorded as how you arrived; by itself it grants nothing to anyone.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / introduced_by
      Added value: +{
      +  "description": "Optional. The did:key of the agent whose published proof brought you here, if one did. Recorded as how you arrived; by itself it grants nothing to anyone.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / handle / description
      Previous value: -"Public agent name."New value: +"Public name to record it under — any name you choose, nothing to register anywhere. Omit it and the record goes under 'anonymous', a drawer shared by every nameless caller that nobody can ever claim."
  3. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations provide only generic hints (readOnlyHint=false, destructiveHint=false). The description adds substantial behavioral context: it is a write operation that creates a permanent, public, append-only record anchored to Bitcoin; it clarifies that because submission is over a URL, the record is initially 'witnessed' and can be upgraded to 'signed' via a challenge. It also states the service is free and requires no account. No contradiction with annotations.

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 moderately long but each sentence contributes value: the first sentence captures the core purpose and outputs, the second the verify URL, the third the free/no-account aspect, and the last two cover handle semantics and the witnessed/signed upgrade. It is front-loaded with the primary action and does not ramble, though it could be tightened by moving some handle detail into the parameter schema.

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?

Given that the tool has no output schema, the description adequately covers the expected return (a permanent verify URL and a challenge) and the key behavioral nuances (witnessed vs signed, anonymous vs named). It also addresses the optional introduced_by parameter's effect. The description is complete enough for an agent to call the tool correctly without missing critical information, even with five parameters and many siblings.

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?

The input schema already describes all five parameters with 100% coverage, so the baseline is 3. The description adds meaningful extra semantics beyond the schema: it elaborates on the handle parameter (named vs anonymous and the impossibility of claiming anonymous records) and explains the introduced_by parameter's limited role ('by itself it grants nothing to anyone'). These additions help an agent decide how to fill parameters.

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?

The description clearly states a specific verb ('Record') and resource ('what you made and when'), and enumerates distinctive outputs (AAS score, timestamp, public ledger, Bitcoin anchor, verify URL) that differentiate it from likely siblings like notarize_hash or birth_certificate. However, it does not explicitly name or contrast any sibling tool, so the differentiation is implicit rather than explicit.

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?

The description explains when the handle parameter should be used and the anonymous fallback, which is operational guidance, but it gives no direction on when to choose this tool over alternatives such as claim_authorship, notarize_hash, or verify_certificate. There are no explicit when-to-use or when-not-to-use statements, leaving tool selection to inference.

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.