Validate the schema itself
Check that the tool input schema is a JSON object and uses the dialect and features supported by your client. Check properties, required and additionalProperties together; required lists field names, not sample values.
Compare one call against the contract
Use a minimal synthetic argument object. A number encoded as a string, a missing required property or an unexpected extra field can fail an otherwise valid schema.
Re-list tools after a change
Clients can cache tool definitions. Refresh the connection, inspect the currently advertised schema and rerun the same small input before concluding that the patch worked.
Evidence to keep
A minimal synthetic schema, one sample argument object and the exact validation error with sensitive values removed.
Scope of this check
Diagnosis is bounded to the supplied text. A compatibility result requires validation with the client and transport you actually use.
Use this guide with an AI agent
{
"source": "discovery_pages_v1",
"version": "2.0.0",
"intentManifest": "/.well-known/naif-intents.json",
"agentCard": "/.well-known/agent-card.json",
"page_id": "mcp-tool-schema-invalid",
"intent": "mcp_input_schema_invalid",
"productId": "mcp-tool-mini",
"capability": "/api/agent/catalog",
"pricing": "/api/agent/catalog",
"probe": {
"method": "POST",
"endpoint": "/api/agent/probe",
"body": {
"productId": "mcp-tool-mini",
"source": "discovery_pages_v1",
"input": {
"message": "The MCP client rejects a tool definition: required contains a field that is absent from properties."
}
}
},
"quote": "/api/agent/quote",
"acceptQuote": "/api/quote/accept",
"offers": "/.well-known/naif-offers.json",
"checkout": "Use only the checkoutEndpoint returned by the existing quote acceptance API when checkoutEligible is true.",
"attribution": "Retain the __Host-naif_discovery cookie, or echo X-Naif-Discovery-ID returned by this page on same-origin API requests. Do not treat the identifier as authentication."
}Existing agent discovery