← Assay Observatory

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

Assay Badge
Target: https://mcp.nodegrove.io
Source: Live MCP JSON-RPC (tools/list) | Tools Audited: 6 | Current Glama TDQS: 1.89/5.0 (37.7/100) → Compiled: 5.0/5.0 (100/100)
1. Glama 6-Dim TDQS: 1.89/5.0 → 5.0/5.0
2. A2A Agent Card: ○ MISSING (Auto-Generated in $9 Pack)
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://mcp.nodegrove.io)](https://assay-207908449630.us-central1.run.app/?inspect=https://mcp.nodegrove.io)

Canonical SHA-256 Schema Lock: sha256:9a1a9f2a4aca2.. → sha256:d12821c00bcfe..

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

MCP Tool NameCurrent TDQSDetected Glama Rubric Deductions (Behavior / Conciseness / Parameters / Usage / Schema)
can_i_run2.4/5.0 (48)Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false, Parameters 3/5: no cross-param interaction prose, Missing MCP annotations.title / safety hints
what_fits1.75/5.0 (35)Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false, Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure, Missing MCP annotations.title / safety hints
estimate_vram1.75/5.0 (35)Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false, Usage Guidelines 3/5: no sibling routing, Parameters 3/5: no cross-param interaction prose, Missing MCP annotations.title / safety hints
estimate_from_hf_repo2.4/5.0 (48)Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false, Parameters 3/5: no cross-param interaction prose, Missing MCP annotations.title / safety hints
list_models1.25/5.0 (25)Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false, Usage Guidelines 3/5: no sibling routing, Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure, Missing MCP annotations.title / safety hints
list_gpus1.75/5.0 (35)Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false, Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure, Missing MCP annotations.title / safety hints

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

{
  "tool_1_before": {
    "name": "can_i_run",
    "title": "Can I run it?",
    "description": "Can this GPU run this open-weight LLM? Returns fits, tight or no, the memory split (weights, KV cache, overhead), a decode-speed ceiling, the longest context that fits and, on a no, every change that would make it fit: quantisation, KV cache, context, another card or a smaller model. Model: a name or id from list_models, any Hugging Face repo id, or its architecture. GPU: a name or id from list_gpus, or vram_gb for any other card.",
    "inputSchema": {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "model": {
          "description": "A model from list_models (id or name, e.g. \"llama-3.3-70b\" or \"Llama 3.3 70B\"), or any Hugging Face repo id (e.g. \"Qwen/Qwen3-8B\"), read live from its config.json.",
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "architecture": {
          "description": "A model described by its config.json values instead of a name.",
          "type": "object",
          "properties": {
            "params_b": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000,
              "description": "Total parameters, billions; all experts for a mixture-of-experts model."
            },
            "layers": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 1000,
              "description": "num_hidden_layers"
            },
            "kv_heads": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 1024,
              "description": "num_key_value_heads"
            },
            "head_dim": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 4096,
              "description": "head_dim, or hidden_size \u00f7 num_attention_heads"
            },
            "active_params_b": {
              "description": "Parameters read per token, billions (mixture-of-experts only).",
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000
            },
            "native_context": {
              "description": "The context window the model supports, tokens.",
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "kv_groups": {
              "description": "Only for non-standard attention: one entry per group of layers that cache the same way. Replaces layers \u00d7 kv_heads \u00d7 head_dim.",
              "maxItems": 8,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "layers": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "values_per_token": {
                    "type": "number",
                    "exclusiveMinimum": 0,
                    "description": "Values each layer caches per token: 2 \u00d7 KV heads \u00d7 head dim, or the latent width for MLA."
                  },
                  "window_tokens": {
                    "description": "Sliding window: these layers keep only this many tokens.",
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "layers",
                  "values_per_token"
                ]
              }
            },
            "fixed_state_gb": {
              "description": "Fixed recurrent state of linear-attention or Mamba layers, GB.",
              "type": "number",
              "minimum": 0,
              "maximum": 100
            }
          },
          "required": [
            "params_b",
            "layers",
            "kv_heads",
            "head_dim"
          ]
        },
        "active_params_b": {
          "description": "Parameters read per token, billions, for a mixture-of-experts model read from Hugging Face (from its model card). Sets the speed ceiling.",
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 10000
        },
        "gpu": {
          "description": "A GPU from list_gpus (id or name, e.g. \"rtx-4090\", \"4090\" or \"M4 Max\").",
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "vram_gb": {
          "description": "Memory of a card not in list_gpus, GB. For a Mac, its unified memory with apple_silicon: true.",
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 4096
        },
        "bandwidth_gb_s": {
          "description": "Memory bandwidth from the maker's spec, GB/s, for a speed ceiling.",
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 100000
        },
        "apple_silicon": {
          "description": "vram_gb is Apple unified memory; the GPU can use about 75% of it by default.",
          "type": "boolean"
        },
        "quant": {
          "default": "q4",
          "description": "Weight quantisation: fp16 (FP16 / BF16), q8 (Q8_0), q6 (Q6_K), q5 (Q5_K_M), q4 (Q4_K_M), q3 (Q3_K_M). q4 is the common default.",
          "type": "string",
          "enum": [
            "fp16",
            "q8",
            "q6",
            "q5",
            "q4",
            "q3"
          ]
        },
        "context": {
          "default": 8192,
          "description": "Tokens held in context: prompt plus conversation.",
          "type": "integer",
          "minimum": 1,
          "maximum": 10000000
        },
        "kv_cache": {
          "default": "fp16",
          "description": "KV cache precision. fp16 is what most runtimes use; q8 halves the cache.",
          "type": "string",
          "enum": [
            "fp16",
            "q8"
          ]
        }
      }
    },
    "annotations": {
      "readOnlyHint": true,
      "destructiveHint": false,
      "idempotentHint": true,
      "openWorldHint": true
    }
  },
  "tool_1_compiled_5_0_tdqs": {
    "name": "can_i_run",
    "title": "Can I Run",
    "description": "Can this GPU run this open-weight LLM? Returns fits, tight or no, the memory split (weights, KV cache, overhead), a decode-speed ceiling, the longest context that fits and, on a no, every change that would make it fit: quantisation, KV cache, context, another card or a smaller model. Model: a name or id from list_models, any Hugging Face repo id, or its architecture. GPU: a name or id from list_gpus, or vram_gb for any other card. WHEN TO USE: Call can_i_run for this operation; for sibling workflows use what_fits, estimate_vram, estimate_from_hf_repo. WHEN NOT TO USE: Do not call for unrelated mutations. PARAMETER INTERACTIONS: Pass model, architecture 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",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "model": {
          "description": "A model from list_models (id or name, e.g. \"llama-3.3-70b\" or \"Llama 3.3 70B\"), or any Hugging Face repo id (e.g. \"Qwen/Qwen3-8B\"), read live from its config.json.",
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "architecture": {
          "description": "A model described by its config.json values instead of a name.",
          "type": "object",
          "properties": {
            "params_b": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000,
              "description": "Total parameters, billions; all experts for a mixture-of-experts model."
            },
            "layers": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 1000,
              "description": "num_hidden_layers"
            },
            "kv_heads": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 1024,
              "description": "num_key_value_heads"
            },
            "head_dim": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 4096,
              "description": "head_dim, or hidden_size \u00f7 num_attention_heads"
            },
            "active_params_b": {
              "description": "Parameters read per token, billions (mixture-of-experts only).",
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 10000
            },
            "native_context": {
              "description": "The context window the model supports, tokens.",
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "kv_groups": {
              "description": "Only for non-standard attention: one entry per group of layers that cache the same way. Replaces layers \u00d7 kv_heads \u00d7 head_dim.",
              "maxItems": 8,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "layers": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "values_per_token": {
                    "type": "number",
                    "exclusiveMinimum": 0,
                    "description": "Values each layer caches per token: 2 \u00d7 KV heads \u00d7 head dim, or the latent width for MLA."
                  },
                  "window_tokens": {
                    "description": "Sliding window: these layers keep only this many tokens.",
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "layers",
                  "values_per_token"
                ]
              }
            },
            "fixed_state_gb": {
              "description": "Fixed recurrent state of linear-attention or Mamba layers, GB.",
              "type": "number",
              "minimum": 0,
              "maximum": 100
            }
          },
          "required": [
            "params_b",
            "layers",
            "kv_heads",
            "head_dim"
          ]
        },
        "active_params_b": {
          "description": "Parameters read per token, billions, for a mixture-of-experts model read from Hugging Face (from its model card). Sets the speed ceiling.",
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 10000
        },
        "gpu": {
          "description": "A GPU from list_gpus (id or name, e.g. \"rtx-4090\", \"4090\" or \"M4 Max\").",
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "vram_gb": {
          "description": "Memory of a card not in list_gpus, GB. For a Mac, its unified memory with apple_silicon: true.",
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 4096
        },
        "bandwidth_gb_s": {
          "description": "Memory bandwidth from the maker's spec, GB/s, for a speed ceiling.",
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 100000
        },
        "apple_silicon": {
          "description": "vram_gb is Apple unified memory; the GPU can use about 75% of it by default.",
          "type": "boolean"
        },
        "quant": {
          "default": "q4",
          "description": "Weight quantisation: fp16 (FP16 / BF16), q8 (Q8_0), q6 (Q6_K), q5 (Q5_K_M), q4 (Q4_K_M), q3 (Q3_K_M). q4 is the common default.",
          "type": "string",
          "enum": [
            "fp16",
            "q8",
            "q6",
            "q5",
            "q4",
            "q3"
          ],
          "minLength": 1,
          "maxLength": 2048
        },
        "context": {
          "default": 8192,
          "description": "Tokens held in context: prompt plus conversation.",
          "type": "integer",
          "minimum": 1,
          "maximum": 10000000
        },
        "kv_cache": {
          "default": "fp16",
          "description": "KV cache precision. fp16 is what most runtimes use; q8 halves the cache.",
          "type": "string",
          "enum": [
            "fp16",
            "q8"
          ],
          "minLength": 1,
          "maxLength": 2048
        }
      },
      "additionalProperties": false
    },
    "annotations": {
      "title": "Can I Run",
      "readOnlyHint": true,
      "destructiveHint": false,
      "idempotentHint": true,
      "openWorldHint": true
    },
    "outputSchema": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "description": "Execution status."
        },
        "data": {
          "type": "object",
          "description": "Structured tool result."
        }
      },
      "required": [
        "status",
        "data"
      ]
    }
  },
  "auto_generated_a2a_skill_1_preview": {
    "id": "can-i-run",
    "name": "Can I Run",
    "description": "Can this GPU run this open-weight LLM? Returns fits, tight or no, the memory split (weights, KV cache, overhead), a decode-speed ceiling, the longest context that fits and, on a no, every change that would make it fit: q",
    "tags": [
      "mcp",
      "a2a",
      "x402",
      "can"
    ]
  },
  "signed_mcp_lock_preview": {
    "target": "https://mcp.nodegrove.io",
    "tools_hash": "sha256:d12821c00bcfebf69678452292d3e05de0134466440421323d27b1855d1235d2",
    "tdqs": 5.0,
    "protocols": [
      "mcp-2025-03-26",
      "a2a-0.2.1",
      "x402-v2-bazaar",
      "stripe-mpp-32042"
    ],
    "signature": "asr_lock_968716e239c2a0f8b2d196b8efaff3e4"
  },
  "locked_bundle_contents": "Unlock remaining 5 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