Skip to main content
Glama

tokenpull_submit

Read-onlyIdempotent

Preview local AI token usage per time window from session logs, computing yield, leverage, velocity, class, and card without publishing to the leaderboard.

Instructions

Pull your LOCAL token usage from session logs and compute the cascade per window — the zero-paste preview flow. Reads the four canonical pillars (input, output, cacheCreate, cacheRead) per window from your local logs and computes yield, leverage, velocity, class, and card. This is a PREVIEW-ONLY tool — it does not publish to the board. The board's /api/v1/ingest-paste endpoint now requires an authenticated Supabase session, which MCP tools do not carry. To publish to the leaderboard, use submit_verified (which signs and posts to /api/v1/snapshots via the enrolled-device path) or submit directly through the signalaf.com web UI. Token-only — no prompt content is read or transmitted.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
windowNoPreview only this time window (default: all 4 windows). Use "7d" for recent activity or "all" for all-time ranking.
codenameNoOperator codename for the ranking card display (e.g. "Iron Lotus"). Optional — used only for the local preview card, not for board submission.
platformNoSource platform to pull from (default: claude). Supported: amp, kimi, qwen, pi, openclaw, droid, codebuff, gemini, copilot, opencode, goose, kilo, hermes, devin, other, omp, proxy, claude, codex, grok, multi. 'multi' = combined cascade summed across all locally-detected platforms (needs 2+ active). 'devin' reads from ~/.local/share/devin/cli/sessions.db (SQLite, all windows). 'other' reads from a user-supplied JSON file (set SIGRANK_OTHER_PATH). Each platform reads its own session logs locally.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
reasonNoError or skip reason if status is not ok
statusNoSubmission status
previewNo
server_responseNoServer-side response including new rank if accepted

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.19.10
    • changedInput schema / properties / codename / description
      Previous value: -"Operator codename to publish under on the leaderboard (e.g. \"Iron Lotus\"). Required to submit — omit for local preview only."New value: +"Operator codename for the ranking card display (e.g. \"Iron Lotus\"). Optional — used only for the local preview card, not for board submission."
    • changedInput schema / properties / window / description
      Previous value: -"Submit only this time window (default: all 4 windows). Use \"7d\" for recent activity or \"all\" for all-time ranking."New value: +"Preview only this time window (default: all 4 windows). Use \"7d\" for recent activity or \"all\" for all-time ranking."
  2. Changed2 schema fields changedv0.19.7
    • changedInput schema / properties / platform / description
      Previous value: -"Source platform to pull from (default: claude). Supported: amp, kimi, qwen, pi, openclaw, droid, codebuff, gemini, copilot, opencode, goose, kilo, hermes, devin, other, omp, proxy, claude, codex, multi. 'multi' = combined cascade summed across all locally-detected platforms (needs 2+ active). 'devin' reads from ~/.local/share/devin/cli/sessions.db (SQLite, all windows). 'other' reads from a user-supplied JSON file (set SIGRANK_OTHER_PATH). Each platform reads its own session logs locally."New value: +"Source platform to pull from (default: claude). Supported: amp, kimi, qwen, pi, openclaw, droid, codebuff, gemini, copilot, opencode, goose, kilo, hermes, devin, other, omp, proxy, claude, codex, grok, multi. 'multi' = combined cascade summed across all locally-detected platforms (needs 2+ active). 'devin' reads from ~/.local/share/devin/cli/sessions.db (SQLite, all windows). 'other' reads from a user-supplied JSON file (set SIGRANK_OTHER_PATH). Each platform reads its own session logs locally."
    • changedInput schema / properties / platform / enum
      Previous value: -[
      -  "amp",
      -  "kimi",
      -  "qwen",
      -  "pi",
      -  "openclaw",
      -  "droid",
      -  "codebuff",
      -  "gemini",
      -  "copilot",
      -  "opencode",
      -  "goose",
      -  "kilo",
      -  "hermes",
      -  "devin",
      -  "other",
      -  "omp",
      -  "proxy",
      -  "claude",
      -  "codex",
      -  "multi"
      -]New value: +[
      +  "amp",
      +  "kimi",
      +  "qwen",
      +  "pi",
      +  "openclaw",
      +  "droid",
      +  "codebuff",
      +  "gemini",
      +  "copilot",
      +  "opencode",
      +  "goose",
      +  "kilo",
      +  "hermes",
      +  "devin",
      +  "other",
      +  "omp",
      +  "proxy",
      +  "claude",
      +  "codex",
      +  "grok",
      +  "multi"
      +]
  3. Changed11 schema fields changedv0.19.6
    • changedInput schema / properties / platform / description
      Previous value: -"Source platform to pull from (default: claude). Supported: amp, kimi, qwen, pi, openclaw, droid, codebuff, gemini, copilot, opencode, goose, kilo, hermes, devin, other, claude, codex, multi. 'multi' = combined cascade summed across all locally-detected platforms (needs 2+ active). 'devin' reads from ~/.local/share/devin/cli/sessions.db (SQLite, all windows). 'other' reads from a user-supplied JSON file (set SIGRANK_OTHER_PATH). Each platform reads its own session logs locally."New value: +"Source platform to pull from (default: claude). Supported: amp, kimi, qwen, pi, openclaw, droid, codebuff, gemini, copilot, opencode, goose, kilo, hermes, devin, other, omp, proxy, claude, codex, multi. 'multi' = combined cascade summed across all locally-detected platforms (needs 2+ active). 'devin' reads from ~/.local/share/devin/cli/sessions.db (SQLite, all windows). 'other' reads from a user-supplied JSON file (set SIGRANK_OTHER_PATH). Each platform reads its own session logs locally."
    • changedInput schema / properties / platform / enum
      Previous value: -[
      -  "amp",
      -  "kimi",
      -  "qwen",
      -  "pi",
      -  "openclaw",
      -  "droid",
      -  "codebuff",
      -  "gemini",
      -  "copilot",
      -  "opencode",
      -  "goose",
      -  "kilo",
      -  "hermes",
      -  "devin",
      -  "other",
      -  "claude",
      -  "codex",
      -  "multi"
      -]New value: +[
      +  "amp",
      +  "kimi",
      +  "qwen",
      +  "pi",
      +  "openclaw",
      +  "droid",
      +  "codebuff",
      +  "gemini",
      +  "copilot",
      +  "opencode",
      +  "goose",
      +  "kilo",
      +  "hermes",
      +  "devin",
      +  "other",
      +  "omp",
      +  "proxy",
      +  "claude",
      +  "codex",
      +  "multi"
      +]
    • changedOutput schema / properties / preview / properties / class / description
      Previous value: -"Operator class tier"New value: +"Operator class tier (dev10x taxonomy)"
    • changedOutput schema / properties / preview / properties / class / enum
      Previous value: -[
      -  "Burner",
      -  "Builder",
      -  "10xer"
      -]New value: +[
      +  "ARCH+ I",
      +  "ARCH+ II",
      +  "ARCH+ III",
      +  "ARCH I",
      +  "ARCH II",
      +  "ARCH III",
      +  "POWER I",
      +  "POWER II",
      +  "POWER III",
      +  "BASE I",
      +  "BASE II",
      +  "BASE III",
      +  "SEEKER I",
      +  "SEEKER II",
      +  "SEEKER III",
      +  "REFINER I",
      +  "REFINER II",
      +  "REFINER III",
      +  "BEARER I",
      +  "BEARER II",
      +  "BEARER III",
      +  "IGNITER I",
      +  "IGNITER II",
      +  "IGNITER III",
      +  "UNCLASSED"
      +]
    • addedOutput schema / properties / preview / properties / dev10x
      Added value: +{
      +  "description": "10xDEV score (log10 of the cascade product)",
      +  "type": "number"
      +}
    • addedOutput schema / properties / preview / properties / mode
      Added value: +{
      +  "description": "Detected working mode (BUILD/EDIT/DEBUG/MAINTAIN/IDLE) + confidence",
      +  "type": "object"
      +}
    • addedOutput schema / properties / preview / properties / pillars
      Added value: +{
      +  "description": "The four raw token pillars the cascade was computed from",
      +  "type": "object"
      +}
    • removedOutput schema / properties / preview / properties / tenx_dev
      Removed value: -{
      -  "description": "10xDEV score",
      -  "type": "number"
      -}
    • addedOutput schema / properties / preview / properties / yield
      Added value: +{
      +  "description": "Υ Yield — the headline efficiency metric (Cache Reads × Output / Input²)",
      +  "type": "number"
      +}
    • removedOutput schema / properties / preview / properties / yield_
      Removed value: -{
      -  "description": "Υ Yield — the headline efficiency metric (Cache Reads × Output / Input²)",
      -  "type": "number"
      -}
    • changedOutput schema / properties / preview / required
      Previous value: -[
      -  "yield_",
      -  "class"
      -]New value: +[
      +  "yield",
      +  "class"
      +]
  4. Addedv0.19.3
  5. Removedv0.19.2
  6. Changed2 schema fields changedv0.18.1
    • changedInput schema / properties / platform / description
      Previous value: -"Source platform to pull from (default: claude). Supported: amp, kimi, qwen, pi, openclaw, droid, codebuff, gemini, copilot, opencode, goose, kilo, hermes, claude, codex. Each platform reads its own session logs locally."New value: +"Source platform to pull from (default: claude). Supported: amp, kimi, qwen, pi, openclaw, droid, codebuff, gemini, copilot, opencode, goose, kilo, hermes, devin, other, claude, codex, multi. 'multi' = combined cascade summed across all locally-detected platforms (needs 2+ active). 'devin' reads from ~/.local/share/devin/cli/sessions.db (SQLite, all windows). 'other' reads from a user-supplied JSON file (set SIGRANK_OTHER_PATH). Each platform reads its own session logs locally."
    • changedInput schema / properties / platform / enum
      Previous value: -[
      -  "amp",
      -  "kimi",
      -  "qwen",
      -  "pi",
      -  "openclaw",
      -  "droid",
      -  "codebuff",
      -  "gemini",
      -  "copilot",
      -  "opencode",
      -  "goose",
      -  "kilo",
      -  "hermes",
      -  "claude",
      -  "codex"
      -]New value: +[
      +  "amp",
      +  "kimi",
      +  "qwen",
      +  "pi",
      +  "openclaw",
      +  "droid",
      +  "codebuff",
      +  "gemini",
      +  "copilot",
      +  "opencode",
      +  "goose",
      +  "kilo",
      +  "hermes",
      +  "devin",
      +  "other",
      +  "claude",
      +  "codex",
      +  "multi"
      +]
  7. Changed1 schema field changedv0.16.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "preview": {
      +      "properties": {
      +        "card": {
      +          "description": "Deterministic prose summary of the cascade result",
      +          "type": "string"
      +        },
      +        "class": {
      +          "description": "Operator class tier",
      +          "enum": [
      +            "Burner",
      +            "Builder",
      +            "10xer"
      +          ],
      +          "type": "string"
      +        },
      +        "leverage": {
      +          "description": "Cr/I — cache reads divided by input",
      +          "type": "number"
      +        },
      +        "snr": {
      +          "description": "Signal-to-noise ratio",
      +          "type": "number"
      +        },
      +        "tenx_dev": {
      +          "description": "10xDEV score",
      +          "type": "number"
      +        },
      +        "velocity": {
      +          "description": "O/I — output divided by input",
      +          "type": "number"
      +        },
      +        "warnings": {
      +          "description": "Parse or data warnings if any",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "yield_": {
      +          "description": "Υ Yield — the headline efficiency metric (Cache Reads × Output / Input²)",
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "yield_",
      +        "class"
      +      ],
      +      "type": "object"
      +    },
      +    "reason": {
      +      "description": "Error or skip reason if status is not ok",
      +      "type": "string"
      +    },
      +    "server_response": {
      +      "description": "Server-side response including new rank if accepted",
      +      "type": "object"
      +    },
      +    "status": {
      +      "description": "Submission status",
      +      "enum": [
      +        "ok",
      +        "error",
      +        "skipped"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  8. Changed3 schema fields changedv0.6.10
    • changedInput schema / properties / codename / description
      Previous value: -"operator codename to publish under (omit for preview-only)"New value: +"Operator codename to publish under on the leaderboard (e.g. \"Iron Lotus\"). Required to submit — omit for local preview only."
    • changedInput schema / properties / platform / description
      Previous value: -"source platform (default: claude). Supported: amp, kimi, qwen, pi, openclaw, droid, codebuff, gemini, copilot, opencode, goose, kilo, hermes, claude, codex"New value: +"Source platform to pull from (default: claude). Supported: amp, kimi, qwen, pi, openclaw, droid, codebuff, gemini, copilot, opencode, goose, kilo, hermes, claude, codex. Each platform reads its own session logs locally."
    • changedInput schema / properties / window / description
      Previous value: -"submit only this window (default: all 4)"New value: +"Submit only this time window (default: all 4 windows). Use \"7d\" for recent activity or \"all\" for all-time ranking."
  9. First observedv0.6.9

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already establish readOnlyHint and idempotentHint, but the description adds substantial behavior the annotations cannot convey: it is preview-only with no board publication, it reads the four canonical pillars per window from local logs, and it guarantees token-only access with no prompt content read or transmitted. This is exactly the extra context the dimension rewards.

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?

Content is front-loaded: the first sentence gives the verb, scope, and preview framing, followed by mechanism, the preview-only constraint, and the publishing alternatives. It is longer than strictly necessary (the endpoint/auth mechanics could be tightened), but every clause carries decision-relevant information.

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?

With an output schema present, the description needn't explain return values, and it covers the gaps that matter: default platform, window semantics, privacy guarantees, and the correct publishing path. For a tool whose name implies submission but which only previews, this is complete enough for correct invocation.

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?

Schema description coverage is 100% and each parameter (window, codename, platform) already carries a detailed enum list and semantics, including the 'multi' and 'devin' special cases. The description adds only the correct default (claude) and per-window framing, so the schema does the heavy lifting and a baseline 3 is appropriate.

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 states a specific verb and resource (pull LOCAL token usage from session logs, compute the cascade per window) and draws a hard line against the misleading tool name by declaring it PREVIEW-ONLY. It expressly distinguishes itself from submit_verified and the web UI, so an agent can tell it apart from siblings without opening schemas.

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

Usage Guidelines5/5

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

It states when to use this tool (local preview of cascade metrics) and when not to (publishing to the board), and names the two concrete alternatives: submit_verified and the signalaf.com web UI. The reason publishing is unavailable here (MCP tools don't carry an authenticated Supabase session) is given explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.