validate_activation_funnel
Validate a proposed definition and owned pinned references without writing.
On this page
Purpose
Validate a proposed definition and owned pinned references without writing.
Access and effects
Owner workspace credential only; member, partner and app-bound affiliate credentials cannot use these tools. Reads do not change definitions, start reconciliation, create events, run automations or send messages. Use the owned app UUID from list_apps.
Example request
These identifiers are fictional. Replace them with your owned app, saved funnel/version and merchant.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "validate_activation_funnel",
"arguments": {
"appId": "11111111-1111-4111-8111-111111111111",
"definition": {
"name": "Observed activation",
"entry": {
"kind": "install"
},
"mode": "requirements",
"windowDays": 30,
"stages": [
{
"id": "collected",
"label": "First positive collection",
"match": "all",
"requirements": [
{
"kind": "collection"
}
]
}
]
}
}
}
}
POST to https://heycrust.com/api/mcp with Content-Type: application/json and Authorization: Bearer <YOUR_CREDENTIAL>. Inspect JSON-RPC errors and result.isError, then parse the JSON text in result.content.
Result and interpretation
Returns valid, structured issues and, for a valid definition, the normalized definition, owned pinned references and current coverage. A structurally valid proposal can still have incomplete tracking coverage. Validation stores no definition or event, queues no job and calls no provider. It does not verify that your app emitted a milestone correctly.
See event observability for definitions, deployment declarations and privacy boundaries.
Query timeouts
A recognized PostgreSQL timeout returns status: unavailable and reasons: [query_timeout], with no fabricated totals. Check status/reasons before interpreting the result; narrow the window or retry. A complete activation report can also be unavailable for fact/journey limits or calculation_timeout.