https://vera.waggle.ae/v1Embed Verified README Badge (Free): [](https://assay.agentdiet.dev/?inspect=https://vera.waggle.ae/v1)
Canonical SHA-256 Schema Lock: sha256:c7def5ae901a1.. → sha256:11c35e4a3e19d..
| MCP Tool Name | Current TDQS | Detected Glama Rubric Deductions (Behavior / Conciseness / Parameters / Usage / Schema) |
|---|---|---|
scrape | 3.7/5.0 (74) | Missing outputSchema (Completeness -1), Behavior 3/5: no side-effect/quota disclosure |
search | 3.7/5.0 (74) | Missing outputSchema (Completeness -1), Behavior 3/5: no side-effect/quota disclosure |
extract_contacts | 3.05/5.0 (61) | Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure |
extract_products | 3.05/5.0 (61) | Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure |
youtube_transcript | 2.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 |
company_profile | 3.05/5.0 (61) | Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure |
sitemap | 3.05/5.0 (61) | Missing outputSchema (Completeness -1), Usage Guidelines 3/5: no sibling routing, Behavior 3/5: no side-effect/quota disclosure |
seo_audit | 3.05/5.0 (61) | Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure |
{
"tool_1_before": {
"name": "scrape",
"title": "Read a web page",
"description": "Read one public web page and return its content: the main text (as Markdown with response_format=\"markdown\"), links, metadata and a quality score, plus the raw HTML if you ask (return_html). Set render=true for pages that build their content with JavaScript, or mode=\"auto\" to render only when a plain fetch comes back empty. extract pulls named fields out with CSS selectors. Costs 1 credit for a plain fetch and 5 credits when the page is rendered; a failed call costs nothing. Pages that disallow automated access or need a login cannot be read.",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"maxLength": 2048,
"minLength": 8,
"type": "string",
"description": "The full public http(s) address of the page."
},
"response_format": {
"default": "all",
"enum": [
"text",
"markdown",
"all"
],
"type": "string",
"description": "Use \"markdown\" to get the page's main content as Markdown in data.markdown, the best form for reading or summarising. \"all\" (the default) and \"text\" return the standard fields: text, links, metadata and a quality score."
},
"return_html": {
"default": false,
"type": "boolean",
"description": "Also return the page's raw HTML in data.html (up to 2 MB). Not with extract."
},
"render": {
"default": false,
"type": "boolean",
"description": "Run the page's JavaScript in a browser first, for pages that build their content in the browser. Costs more."
},
"wait_ms": {
"default": 500,
"maximum": 3000,
"minimum": 0,
"type": "integer",
"description": "Milliseconds to wait after the page loads. Needs render=true."
},
"wait_for": {
"maxLength": 200,
"minLength": 1,
"type": "string",
"description": "A CSS selector to wait for before reading. Needs render=true."
},
"extract": {
"additionalProperties": {
"additionalProperties": false,
"properties": {
"selector": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"attribute": {
"pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$",
"type": "string"
},
"multiple": {
"default": false,
"type": "boolean"
}
},
"required": [
"selector"
],
"type": "object"
},
"maxProperties": 10,
"type": "object",
"description": "Named fields to pull out with a CSS selector, for example {\"heading\":{\"selector\":\"h1\"},\"links\":{\"selector\":\"a\",\"attribute\":\"href\", \"multiple\":true}}. One tag, class, ID or attribute selector each. Static pages only."
},
"mode": {
"default": "manual",
"enum": [
"manual",
"auto"
],
"type": "string",
"description": "\"manual\" (the default) does what render says. \"auto\" fetches the page plainly and renders it only when it looks empty; it holds up to max_cost credits and charges what it used."
},
"max_cost": {
"maximum": 5,
"minimum": 1,
"type": "integer",
"description": "With mode=auto, the most to spend: 1 never renders, 5 may render."
},
"min_quality_score": {
"maximum": 100,
"minimum": 0,
"type": "integer",
"description": "Refuse the page, at no charge, when its quality score is below this."
},
"country": {
"pattern": "^[a-zA-Z]{2}$",
"type": "string",
"description": "Two-letter country code for the language headers of the request, for example ae or gb. It does not route the request through that country."
},
"idempotency_key": {
"type": "string",
"minLength": 16,
"maxLength": 128,
"pattern": "^[A-Za-z0-9_.:-]+$",
"description": "Optional. Send the same key (16 to 128 letters, digits, _ . : -) to retry this exact call safely: a retry within 24 hours returns the first result and is not charged again."
}
},
"required": [
"url"
],
"additionalProperties": false
},
"annotations": {
"title": "Read a web page",
"readOnlyHint": true,
"openWorldHint": true
}
},
"tool_1_compiled_5_0_tdqs": {
"name": "scrape",
"title": "Scrape",
"description": "Read one public web page and return its content: the main text (as Markdown with response_format=\"markdown\"), links, metadata and a quality score, plus the raw HTML if you ask (return_html). Set render=true for pages that build their content with JavaScript, or mode=\"auto\" to render only when a plain fetch comes back empty. extract pulls named fields out with CSS selectors. Costs 1 credit for a plain fetch and 5 credits when the page is rendered; a failed call costs nothing. Pages that disallow automated access or need a login cannot be read. WHEN TO USE: Call scrape for this operation; for sibling workflows use search, extract_contacts, extract_products. WHEN NOT TO USE: Do not call for unrelated mutations. PARAMETER INTERACTIONS: Pass url, response_format 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": {
"url": {
"maxLength": 2048,
"minLength": 8,
"type": "string",
"description": "The full public http(s) address of the page."
},
"response_format": {
"default": "all",
"enum": [
"text",
"markdown",
"all"
],
"type": "string",
"description": "Use \"markdown\" to get the page's main content as Markdown in data.markdown, the best form for reading or summarising. \"all\" (the default) and \"text\" return the standard fields: text, links, metadata and a quality score.",
"minLength": 1,
"maxLength": 2048
},
"return_html": {
"default": false,
"type": "boolean",
"description": "Also return the page's raw HTML in data.html (up to 2 MB). Not with extract."
},
"render": {
"default": false,
"type": "boolean",
"description": "Run the page's JavaScript in a browser first, for pages that build their content in the browser. Costs more."
},
"wait_ms": {
"default": 500,
"maximum": 3000,
"minimum": 0,
"type": "integer",
"description": "Milliseconds to wait after the page loads. Needs render=true."
},
"wait_for": {
"maxLength": 200,
"minLength": 1,
"type": "string",
"description": "A CSS selector to wait for before reading. Needs render=true."
},
"extract": {
"additionalProperties": {
"additionalProperties": false,
"properties": {
"selector": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"attribute": {
"pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$",
"type": "string"
},
"multiple": {
"default": false,
"type": "boolean"
}
},
"required": [
"selector"
],
"type": "object"
},
"maxProperties": 10,
"type": "object",
"description": "Named fields to pull out with a CSS selector, for example {\"heading\":{\"selector\":\"h1\"},\"links\":{\"selector\":\"a\",\"attribute\":\"href\", \"multiple\":true}}. One tag, class, ID or attribute selector each. Static pages only."
},
"mode": {
"default": "manual",
"enum": [
"manual",
"auto"
],
"type": "string",
"description": "\"manual\" (the default) does what render says. \"auto\" fetches the page plainly and renders it only when it looks empty; it holds up to max_cost credits and charges what it used.",
"minLength": 1,
"maxLength": 2048
},
"max_cost": {
"maximum": 5,
"minimum": 1,
"type": "integer",
"description": "With mode=auto, the most to spend: 1 never renders, 5 may render."
},
"min_quality_score": {
"maximum": 100,
"minimum": 0,
"type": "integer",
"description": "Refuse the page, at no charge, when its quality score is below this."
},
"country": {
"pattern": "^[a-zA-Z]{2}$",
"type": "string",
"description": "Two-letter country code for the language headers of the request, for example ae or gb. It does not route the request through that country.",
"minLength": 1,
"maxLength": 2048
},
"idempotency_key": {
"type": "string",
"minLength": 16,
"maxLength": 128,
"pattern": "^[A-Za-z0-9_.:-]+$",
"description": "Optional. Send the same key (16 to 128 letters, digits, _ . : -) to retry this exact call safely: a retry within 24 hours returns the first result and is not charged again."
}
},
"required": [
"url"
],
"additionalProperties": false
},
"annotations": {
"title": "Read a web page",
"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": "scrape",
"name": "Scrape",
"description": "Read one public web page and return its content: the main text (as Markdown with response_format=\"markdown\"), links, metadata and a quality score, plus the raw HTML if you ask (return_html). Set render=true for pages tha",
"tags": [
"mcp",
"a2a",
"x402",
"scrape"
]
},
"signed_mcp_lock_preview": {
"target": "https://vera.waggle.ae/v1",
"tools_hash": "sha256:11c35e4a3e19d51886c88cc6a185cb7582faef8ab22c3f0c506e36ec138dcca3",
"tdqs": 5.0,
"protocols": [
"mcp-2025-03-26",
"a2a-0.2.1",
"x402-v2-bazaar",
"stripe-mpp-32042"
],
"signature": "asr_lock_f30279c1cf65158d5f9972802b54275c"
},
"locked_bundle_contents": "Unlock remaining 7 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)"
}
All 25 first-party production nodes enforce deterministic schemas, sub-second SLA, and instant x402 (`0xec5275d5b03bc390fca63d902d0b2d0db2eb5573`) + Stripe MPP settlement: