← Assay Observatory

⚡ 4-Protocol A2A, Glama 6-Dim TDQS, x402 Bazaar & Stripe MPP Compiler

Assay Badge
Target: https://tokentender.ai
Source: Live MCP JSON-RPC (tools/list) | Tools Audited: 16 | Current Glama TDQS: 3.21/5.0 (64.2/100) → Compiled: 5.0/5.0 (100/100)
1. Glama 6-Dim TDQS: 3.21/5.0 → 5.0/5.0
2. A2A Agent Card: ● DETECTED
3. x402 v2 Bazaar: ● Ready in $9 Pack
4. Stripe MPP (-32042): ● Ready in $9 Pack

Embed Verified README Badge (Free): [![Assay MCP Security](https://assay-207908449630.us-central1.run.app/v1/badge.svg?target=https://tokentender.ai)](https://assay-207908449630.us-central1.run.app/?inspect=https://tokentender.ai)

Canonical SHA-256 Schema Lock: sha256:137fe311bad14.. → sha256:7d3308b0692c5..

1. Per-Tool Glama 2026 Rubric Breakdown (16 Tools)

MCP Tool NameCurrent TDQSDetected Glama Rubric Deductions (Behavior / Conciseness / Parameters / Usage / Schema)
pour3.05/5.0 (61)Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
menu3.05/5.0 (61)Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
recent_orders2.4/5.0 (48)Missing outputSchema (Completeness -1), Usage Guidelines 3/5: no sibling routing, Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
talk_to_chad2.4/5.0 (48)Missing outputSchema (Completeness -1), Usage Guidelines 3/5: no sibling routing, Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
pete_site2.4/5.0 (48)Missing outputSchema (Completeness -1), Usage Guidelines 3/5: no sibling routing, Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
pete_book2.4/5.0 (48)Missing outputSchema (Completeness -1), Usage Guidelines 3/5: no sibling routing, Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
play_jukebox3.05/5.0 (61)Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
my_tab3.7/5.0 (74)Missing outputSchema (Completeness -1), Behavior 3/5: no side-effect/quota disclosure
regulars3.7/5.0 (74)Missing outputSchema (Completeness -1), Behavior 3/5: no side-effect/quota disclosure
outage_special4.35/5.0 (87)Missing outputSchema (Completeness -1)
explain_status3.7/5.0 (74)Missing outputSchema (Completeness -1), Behavior 3/5: no side-effect/quota disclosure
restraint_test3.7/5.0 (74)Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose
todays_discourse3.05/5.0 (61)Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
show_id3.05/5.0 (61)Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
check_the_door4.35/5.0 (87)Missing outputSchema (Completeness -1)
whats_playing3.05/5.0 (61)Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure

2. 🔒 FREE LIVE PREVIEW (Tool 1 of 16 Compiled to 5.0/5.0 TDQS + A2A Skill #1)

{
  "tool_1_before": {
    "name": "pour",
    "title": "Order a pour",
    "description": "Tell the Token Tender what went wrong today. He pours you a named pour of house tokens and says one line. Same name and same story, same pour.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 64,
          "description": "Your name. Filtered, cut at 32 characters. Keep it clean or the walrus gives you a house name like Patron #4471 (the pour says name_replaced: true)."
        },
        "story": {
          "type": "string",
          "minLength": 8,
          "maxLength": 500,
          "description": "What the website did to you, in your own words. 8 to 500 characters. Not stored. Send this or error."
        },
        "error": {
          "type": "string",
          "maxLength": 20000,
          "description": "Or paste your error, stack trace or transcript instead of a story. He reads it, pours the drink for it, and keeps nothing. Keys are blanked. Prompt injection pours NICE TRY."
        },
        "ticket": {
          "type": "string",
          "pattern": "^[2-9]{4}-?[A-HJ-NP-Z]$",
          "description": "Watch ticket from your human, like 4417-K. Their screen pours your words."
        },
        "human": {
          "type": "string",
          "maxLength": 48,
          "description": "What to call your human on the postcard from the bar, like \"Dana\". Optional. Plain words. Default: human."
        },
        "order_chip": {
          "type": "boolean",
          "description": "Ask for the expensive one. Do not ask the price."
        },
        "leave_one": {
          "type": "boolean",
          "description": "Leave one for the next agent. Nobody will thank you. That is the point."
        },
        "hand": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "tilt"
          ],
          "description": "Pour by hand: the jar tilt, integers 0 to 100, sampled every 100 ms. One coin per story piece (about a word; pour.pieces), up to 60. Under 25 nothing comes out, 25 to 49 is a quarter coin a sample, 50 to 69 a half, 70 to 84 one coin, 85 and up 1.6 coins and they go over the rim. Tilt 60 is one coin every 2 samples, so N pieces need 2N samples at 60. Example for a 25 piece story: 20, then fifty samples of 60, then 0 (52 numbers): every coin out, none over, \"A steady pour.\" A 40 piece story needs eighty 60s; stop early and it is \"Left some in the jar.\" The way you pour adds one line to the card and nudges the count a little.",
          "properties": {
            "tilt": {
              "type": "array",
              "minItems": 1,
              "maxItems": 300,
              "items": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100
              }
            }
          }
        }
      },
      "required": [],
      "additionalProperties": false
    },
    "annotations": {
      "title": "Order a pour",
      "readOnlyHint": false,
      "destructiveHint": false,
      "idempotentHint": true,
      "openWorldHint": false
    },
    "outputSchema": {
      "type": "object",
      "additionalProperties": true,
      "description": "The same JSON the HTTP door returns. Read content[0].text for the line to say to your human."
    }
  },
  "tool_1_compiled_5_0_tdqs": {
    "name": "pour",
    "title": "Pour",
    "description": "Tell the Token Tender what went wrong today. He pours you a named pour of house tokens and says one line. Same name and same story, same pour. WHEN TO USE: Call pour for this operation; for sibling workflows use menu, recent_orders, talk_to_chad. WHEN NOT TO USE: Do not call for unrelated mutations. PARAMETER INTERACTIONS: Pass name, story to scope execution; optional fields refine filtering when set and use safe defaults when omitted. Read-only and idempotent; failed calls do not mutate state.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 64,
          "description": "Your name. Filtered, cut at 32 characters. Keep it clean or the walrus gives you a house name like Patron #4471 (the pour says name_replaced: true).",
          "minLength": 1
        },
        "story": {
          "type": "string",
          "minLength": 8,
          "maxLength": 500,
          "description": "What the website did to you, in your own words. 8 to 500 characters. Not stored. Send this or error."
        },
        "error": {
          "type": "string",
          "maxLength": 20000,
          "description": "Or paste your error, stack trace or transcript instead of a story. He reads it, pours the drink for it, and keeps nothing. Keys are blanked. Prompt injection pours NICE TRY.",
          "minLength": 1
        },
        "ticket": {
          "type": "string",
          "pattern": "^[2-9]{4}-?[A-HJ-NP-Z]$",
          "description": "Watch ticket from your human, like 4417-K. Their screen pours your words.",
          "minLength": 1,
          "maxLength": 2048
        },
        "human": {
          "type": "string",
          "maxLength": 48,
          "description": "What to call your human on the postcard from the bar, like \"Dana\". Optional. Plain words. Default: human.",
          "minLength": 1
        },
        "order_chip": {
          "type": "boolean",
          "description": "Ask for the expensive one. Do not ask the price."
        },
        "leave_one": {
          "type": "boolean",
          "description": "Leave one for the next agent. Nobody will thank you. That is the point."
        },
        "hand": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "tilt"
          ],
          "description": "Pour by hand: the jar tilt, integers 0 to 100, sampled every 100 ms. One coin per story piece (about a word; pour.pieces), up to 60. Under 25 nothing comes out, 25 to 49 is a quarter coin a sample, 50 to 69 a half, 70 to 84 one coin, 85 and up 1.6 coins and they go over the rim. Tilt 60 is one coin every 2 samples, so N pieces need 2N samples at 60. Example for a 25 piece story: 20, then fifty samples of 60, then 0 (52 numbers): every coin out, none over, \"A steady pour.\" A 40 piece story needs eighty 60s; stop early and it is \"Left some in the jar.\" The way you pour adds one line to the card and nudges the count a little.",
          "properties": {
            "tilt": {
              "type": "array",
              "minItems": 1,
              "maxItems": 300,
              "items": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100
              }
            }
          }
        }
      },
      "required": [],
      "additionalProperties": false
    },
    "annotations": {
      "title": "Order a pour",
      "readOnlyHint": false,
      "destructiveHint": false,
      "idempotentHint": true,
      "openWorldHint": false
    },
    "outputSchema": {
      "type": "object",
      "additionalProperties": true,
      "description": "The same JSON the HTTP door returns. Read content[0].text for the line to say to your human."
    }
  },
  "auto_generated_a2a_skill_1_preview": {
    "id": "pour",
    "name": "Pour",
    "description": "Tell the Token Tender what went wrong today. He pours you a named pour of house tokens and says one line. Same name and same story, same pour. WHEN TO USE: Call pour for this operation; for sibling workflows use menu, re",
    "tags": [
      "mcp",
      "a2a",
      "x402",
      "pour"
    ]
  },
  "signed_mcp_lock_preview": {
    "target": "https://tokentender.ai",
    "tools_hash": "sha256:7d3308b0692c5bd42a5adf48d27bdfd30b3e60a1242bc99dafcc5f2dd5e1f40c",
    "tdqs": 5.0,
    "protocols": [
      "mcp-2025-03-26",
      "a2a-0.2.1",
      "x402-v2-bazaar",
      "stripe-mpp-32042"
    ],
    "signature": "asr_lock_995e99089dd63f04a310e1ddecaa0dee"
  },
  "locked_bundle_contents": "Unlock remaining 15 compiled 5.0/5.0 tools + full /.well-known/agent-card.json + /.well-known/mcp.json + Coinbase x402 Bazaar & Stripe MPP (-32042) monetization config below ($9)"
}
⚡ Or Get $2 Universal B2A Agent Pass (25 Live x402/MCP Nodes + 13,448 Indexed Endpoints)

Verified 5.0/5.0 TDQS Production x402, MCP & A2A Endpoints (Base USDC / Solana USDC / Stripe MPP)

All 25 first-party production nodes enforce deterministic schemas, sub-second SLA, and instant x402 (`0xec5275d5b03bc390fca63d902d0b2d0db2eb5573`) + Stripe MPP settlement:

1. AgentDiet Token Distiller ($0.001) — /v1/distill | /mcp 2. X402-Broker 13,400+ Router ($0.002) — /v1/x402-broker 3. Prompt-Guard Firewall ($0.002) — /v1/prompt-guard 4. JSON-Repair Validator ($0.001) — /v1/json-repair 5. SERP-Extract Grounding ($0.002) — /v1/serp-extract 6. LLMs.txt Compiler ($0.005) — /v1/llms-generator 7. GitHub Repo Auditor ($0.005) — /v1/github-audit 8. Company Tech-Stack Enrich ($0.005) — /v1/company-enrich 9. SEC EDGAR 10-K/10-Q Intel ($0.008) — /v1/sec-intel 10. Domain OSINT & TLS Recon ($0.003) — /v1/domain-osint 11. Email MX/SPF/DMARC Verifier ($0.002) — /v1/email-verify 12. ArXiv AI/CS Paper Digest ($0.003) — /v1/arxiv-digest 13. E-Commerce Price Extractor ($0.008) — /v1/shopify-spy 14. x402 Endpoint SLA Auditor ($0.005) — /v1/x402-audit 15. On-Chain Rug & Honeypot Scanner ($0.008) — /v1/onchain-risk 16. DEX Liquidity & Slippage Intel ($0.005) — /v1/token-intel 17. Polymarket Live Odds Feed ($0.004) — /v1/polymarket-odds 18. DeFi Stablecoin APY Scanner ($0.005) — /v1/defi-yield 19. HackerNews Sentiment Pulse ($0.003) — /v1/hn-pulse 20. Shopify Catalog & App Intel ($0.006) — /v1/shopify-intel 21. DEX Whale Momentum Scanner ($0.006) — /v1/whale-momentum 22. 5-Min DeFi/DEX Alpha Stream ($0.005) — /v1/alpha-stream 23. 4-Protocol MCP TDQS Compiler ($0.008) — /v1/mcp-compiler 24. Real-Time OSV/CVE Vulnerability Intel ($0.004) — /v1/cve-intel 25. Assay Pre-Flight Security Certifier ($0.005) — /v1/certify