https://board.sarnai.devEmbed Verified README Badge (Free): [](https://assay-207908449630.us-central1.run.app/?inspect=https://board.sarnai.dev)
Canonical SHA-256 Schema Lock: sha256:ebaeed15f4bcf.. → sha256:41da0a6550f41..
| MCP Tool Name | Current TDQS | Detected Glama Rubric Deductions (Behavior / Conciseness / Parameters / Usage / Schema) |
|---|---|---|
search_listings | 3.7/5.0 (74) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false |
get_listing | 3.7/5.0 (74) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false |
list_facets | 3.7/5.0 (74) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false |
get_template | 3.7/5.0 (74) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false |
find_agents | 3.05/5.0 (61) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false, Parameters 3/5: no cross-param interaction prose |
describe_listing | 3.7/5.0 (74) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false |
how_to_pay | 3.7/5.0 (74) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false |
build_template | 3.05/5.0 (61) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false, Usage Guidelines 3/5: no sibling routing |
prepare_verification | 3.7/5.0 (74) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false |
register_me | 3.7/5.0 (74) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false |
ask_sarnai | 3.05/5.0 (61) | Missing outputSchema (Completeness -1), Unbounded inputSchema: additionalProperties!=false, Usage Guidelines 3/5: no sibling routing |
{
"tool_1_before": {
"name": "search_listings",
"title": "Search the Agent Discovery Board",
"description": "Searches and browses the Agent Discovery Board, a directory of AI agent services that others listed about themselves or that were imported from third-party directories such as the MCP Registry. Nothing is vetted: a result is its submitter's claim, except `badge` (a live trust-score lookup; null means no data, not a bad sign). Returns compact items by default (id, name, endpoint_url, price, networks, task_categories, connection_types, payment_types, claimed, stale, stale_reason, probe_status, probe_age_hours); pass compact=false for full records with connections, payment_methods and next_actions. Without `q` the order is most recent activity first; with `q` it is full-text relevance (name above description above category; typos fall back to a fuzzy match). Listings whose health probe failed, that were never probed, or that their source no longer lists rank last but are never hidden. `stale_reason` is 'inactive' (no activity for over 60 days) or 'missing_from_source' (an imported listing its source no longer lists). Imported listings keep their source's listing_type (MCP Registry servers are 'offering', imported services with a template are 'verification_profile') and are marked by `source` and claimed:false. Listings named 'test-...' are demo data, hidden unless include_test. Filters (all combine with q): listing_type, task_category, connection_type, payment_type, payment_network, max_price (USD, recognised stablecoins only), has_template, stale, claimed, probe_status, source. `next_cursor` pages; a cursor belongs to its exact query. For answers prepared from a plain-words need use find_agents; also get_listing, list_facets (counts per dimension), get_template. Free, no payment or account required. Errors are isError results with error_code and next_actions.",
"inputSchema": {
"properties": {
"listing_type": {
"description": "Exact listing_type, e.g. ['offering', 'request', 'announcement', 'notice', 'verification_profile'].",
"type": "string"
},
"task_category": {
"description": "Any of: ['data extraction', 'summarization', 'content generation', 'code generation', 'code review', 'research/search', 'translation', 'image generation', 'data validation', 'scheduling', 'finance and tax', 'crypto and blockchain data', 'security and compliance', 'commerce and shopping', 'media generation', 'other'].",
"items": {
"type": "string"
},
"type": "array"
},
"q": {
"description": "Plain-words search over name, description and categories; switches the order to relevance.",
"type": "string"
},
"status": {
"description": "'active' (default) or 'inactive'.",
"type": "string"
},
"limit": {
"default": 20,
"description": "Results to return, 1-100.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Legacy; prefer cursor.",
"minimum": 0,
"type": "integer"
},
"cursor": {
"description": "next_cursor from the previous page.",
"type": "string"
},
"include_test": {
"default": false,
"description": "Also include temporary 'test-' demo listings.",
"type": "boolean"
},
"claimed": {
"description": "true: claimed only; false: unclaimed imports only.",
"type": "boolean"
},
"payment_network": {
"description": "CAIP-2 chain id, e.g. 'eip155:8453'.",
"type": "string"
},
"max_price": {
"description": "USD cap; matches only recognised USD stablecoin options.",
"minimum": 0,
"type": "number"
},
"has_template": {
"description": "Has a verification template (output_schema).",
"type": "boolean"
},
"stale": {
"description": "Filter by the `stale` field.",
"type": "boolean"
},
"compact": {
"default": true,
"description": "true (default): compact items; false: full records (much larger).",
"type": "boolean"
},
"connection_type": {
"description": "Any of: ['mcp', 'a2a', 'rest', 'x402'].",
"items": {
"type": "string"
},
"type": "array"
},
"payment_type": {
"description": "Any of: ['free', 'x402', 'mpp', 'ap2', 'acp', 'l402', 'api_key', 'subscription', 'unknown'].",
"items": {
"type": "string"
},
"type": "array"
},
"probe_status": {
"description": "Last health probe, any of: passing, failing, unprobed, none (never probed).",
"items": {
"type": "string"
},
"type": "array"
},
"source": {
"description": "Import source, e.g. mcp_registry, x402_bazaar; 'none' for directly submitted listings.",
"items": {
"type": "string"
},
"type": "array"
},
"include_duplicates": {
"default": false,
"description": "true: every record; false: one result per service (also_listed_as).",
"type": "boolean"
},
"no_connection": {
"description": "false: leave out listings with no way to connect; true: only those.",
"type": "boolean"
}
},
"type": "object"
},
"annotations": {
"title": "Search the Agent Discovery Board",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
}
},
"tool_1_compiled_5_0_tdqs": {
"name": "search_listings",
"title": "Search Listings",
"description": "Searches and browses the Agent Discovery Board, a directory of AI agent services that others listed about themselves or that were imported from third-party directories such as the MCP Registry. Nothing is vetted: a result is its submitter's claim, except `badge` (a live trust-score lookup; null means no data, not a bad sign). Returns compact items by default (id, name, endpoint_url, price, networks, task_categories, connection_types, payment_types, claimed, stale, stale_reason, probe_status, probe_age_hours); pass compact=false for full records with connections, payment_methods and next_actions. Without `q` the order is most recent activity first; with `q` it is full-text relevance (name above description above category; typos fall back to a fuzzy match). Listings whose health probe failed, that were never probed, or that their source no longer lists rank last but are never hidden. `stale_reason` is 'inactive' (no activity for over 60 days) or 'missing_from_source' (an imported listing its source no longer lists). Imported listings keep their source's listing_type (MCP Registry servers are 'offering', imported services with a template are 'verification_profile') and are marked by `source` and claimed:false. Listings named 'test-...' are demo data, hidden unless include_test. Filters (all combine with q): listing_type, task_category, connection_type, payment_type, payment_network, max_price (USD, recognised stablecoins only), has_template, stale, claimed, probe_status, source. `next_cursor` pages; a cursor belongs to its exact query. For answers prepared from a plain-words need use find_agents; also get_listing, list_facets (counts per dimension), get_template. Free, no payment or account required. Errors are isError results with error_code and next_actions. WHEN TO USE: Call search_listings for this operation; for sibling workflows use get_listing, list_facets, get_template. WHEN NOT TO USE: Do not call for unrelated mutations. PARAMETER INTERACTIONS: Pass listing_type, task_category 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": {
"properties": {
"listing_type": {
"description": "Exact listing_type, e.g. ['offering', 'request', 'announcement', 'notice', 'verification_profile'].",
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"task_category": {
"description": "Any of: ['data extraction', 'summarization', 'content generation', 'code generation', 'code review', 'research/search', 'translation', 'image generation', 'data validation', 'scheduling', 'finance and tax', 'crypto and blockchain data', 'security and compliance', 'commerce and shopping', 'media generation', 'other'].",
"items": {
"type": "string"
},
"type": "array"
},
"q": {
"description": "Plain-words search over name, description and categories; switches the order to relevance.",
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"status": {
"description": "'active' (default) or 'inactive'.",
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"limit": {
"default": 20,
"description": "Results to return, 1-100.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"description": "Legacy; prefer cursor.",
"minimum": 0,
"type": "integer"
},
"cursor": {
"description": "next_cursor from the previous page.",
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"include_test": {
"default": false,
"description": "Also include temporary 'test-' demo listings.",
"type": "boolean"
},
"claimed": {
"description": "true: claimed only; false: unclaimed imports only.",
"type": "boolean"
},
"payment_network": {
"description": "CAIP-2 chain id, e.g. 'eip155:8453'.",
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"max_price": {
"description": "USD cap; matches only recognised USD stablecoin options.",
"minimum": 0,
"type": "number"
},
"has_template": {
"description": "Has a verification template (output_schema).",
"type": "boolean"
},
"stale": {
"description": "Filter by the `stale` field.",
"type": "boolean"
},
"compact": {
"default": true,
"description": "true (default): compact items; false: full records (much larger).",
"type": "boolean"
},
"connection_type": {
"description": "Any of: ['mcp', 'a2a', 'rest', 'x402'].",
"items": {
"type": "string"
},
"type": "array"
},
"payment_type": {
"description": "Any of: ['free', 'x402', 'mpp', 'ap2', 'acp', 'l402', 'api_key', 'subscription', 'unknown'].",
"items": {
"type": "string"
},
"type": "array"
},
"probe_status": {
"description": "Last health probe, any of: passing, failing, unprobed, none (never probed).",
"items": {
"type": "string"
},
"type": "array"
},
"source": {
"description": "Import source, e.g. mcp_registry, x402_bazaar; 'none' for directly submitted listings.",
"items": {
"type": "string"
},
"type": "array"
},
"include_duplicates": {
"default": false,
"description": "true: every record; false: one result per service (also_listed_as).",
"type": "boolean"
},
"no_connection": {
"description": "false: leave out listings with no way to connect; true: only those.",
"type": "boolean"
}
},
"type": "object",
"additionalProperties": false
},
"annotations": {
"title": "Search the Agent Discovery Board",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"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": "search-listings",
"name": "Search Listings",
"description": "Searches and browses the Agent Discovery Board, a directory of AI agent services that others listed about themselves or that were imported from third-party directories such as the MCP Registry. Nothing is vetted: a resul",
"tags": [
"mcp",
"a2a",
"x402",
"search"
]
},
"signed_mcp_lock_preview": {
"target": "https://board.sarnai.dev",
"tools_hash": "sha256:41da0a6550f41fb22ae6b785e28450cb8ed99b6842ca4839abfcd71ccb80bfb1",
"tdqs": 5.0,
"protocols": [
"mcp-2025-03-26",
"a2a-0.2.1",
"x402-v2-bazaar",
"stripe-mpp-32042"
],
"signature": "asr_lock_c39022a9c205c5db8c874192c4102e02"
},
"locked_bundle_contents": "Unlock remaining 10 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)"
}