{"schemaVersion":"platphorm-capabilities.v1","site":{"siteKey":"webhooklab","serviceName":"webhooklab","displayName":"PlatPhorm Webhook Lab","baseUrl":"https://webhooks.platphormnews.com","environment":"production","version":"1.0.0"},"summary":{"status":"degraded","capabilityCount":14,"workingCount":14,"degradedCount":0,"missingCount":0,"protectedCount":6,"publicSafeCount":10,"mcpToolCount":58,"mcpResourceCount":22,"mcpPromptCount":12},"routes":[{"routeType":"home","expectedUrl":"/","canonicalUrl":"https://webhooks.platphormnews.com/","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"lab","expectedUrl":"/lab","canonicalUrl":"https://webhooks.platphormnews.com/lab","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"dashboard","expectedUrl":"/dashboard","canonicalUrl":"https://webhooks.platphormnews.com/dashboard","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"docs","expectedUrl":"/docs","canonicalUrl":"https://webhooks.platphormnews.com/docs","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"explore","expectedUrl":"/explore","canonicalUrl":"https://webhooks.platphormnews.com/explore","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"changelog","expectedUrl":"/changelog","canonicalUrl":"https://webhooks.platphormnews.com/changelog","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"status","expectedUrl":"/status","canonicalUrl":"https://webhooks.platphormnews.com/status","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"capabilities","expectedUrl":"/capabilities","canonicalUrl":"https://webhooks.platphormnews.com/capabilities","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"endpoints","expectedUrl":"/endpoints","canonicalUrl":"https://webhooks.platphormnews.com/endpoints","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"events","expectedUrl":"/events","canonicalUrl":"https://webhooks.platphormnews.com/events","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"deliveries","expectedUrl":"/deliveries","canonicalUrl":"https://webhooks.platphormnews.com/deliveries","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"replays","expectedUrl":"/replays","canonicalUrl":"https://webhooks.platphormnews.com/replays","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"contracts","expectedUrl":"/contracts","canonicalUrl":"https://webhooks.platphormnews.com/contracts","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"signatures","expectedUrl":"/signatures","canonicalUrl":"https://webhooks.platphormnews.com/signatures","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"templates","expectedUrl":"/templates","canonicalUrl":"https://webhooks.platphormnews.com/templates","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"integrations","expectedUrl":"/integrations","canonicalUrl":"https://webhooks.platphormnews.com/integrations","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"integrations-spec","expectedUrl":"/integrations/spec","canonicalUrl":"https://webhooks.platphormnews.com/integrations/spec","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"integrations-evals","expectedUrl":"/integrations/evals","canonicalUrl":"https://webhooks.platphormnews.com/integrations/evals","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"integrations-sandbox","expectedUrl":"/integrations/sandbox","canonicalUrl":"https://webhooks.platphormnews.com/integrations/sandbox","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"integrations-agentui","expectedUrl":"/integrations/agentui","canonicalUrl":"https://webhooks.platphormnews.com/integrations/agentui","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"integrations-monitor","expectedUrl":"/integrations/monitor","canonicalUrl":"https://webhooks.platphormnews.com/integrations/monitor","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"clients-cli","expectedUrl":"/clients/cli","canonicalUrl":"https://webhooks.platphormnews.com/clients/cli","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"faq","expectedUrl":"/faq","canonicalUrl":"https://webhooks.platphormnews.com/faq","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"api-docs","expectedUrl":"/api/docs","canonicalUrl":"https://webhooks.platphormnews.com/api/docs","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"openapi-yaml","expectedUrl":"/openapi.yaml","canonicalUrl":"https://webhooks.platphormnews.com/openapi.yaml","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"openapi-json","expectedUrl":"/openapi.json","canonicalUrl":"https://webhooks.platphormnews.com/openapi.json","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"llms-txt","expectedUrl":"/llms.txt","canonicalUrl":"https://webhooks.platphormnews.com/llms.txt","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"llms-full-txt","expectedUrl":"/llms-full.txt","canonicalUrl":"https://webhooks.platphormnews.com/llms-full.txt","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"llms-index-json","expectedUrl":"/llms-index.json","canonicalUrl":"https://webhooks.platphormnews.com/llms-index.json","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"robots-txt","expectedUrl":"/robots.txt","canonicalUrl":"https://webhooks.platphormnews.com/robots.txt","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"well-known-mcp-json","expectedUrl":"/.well-known/mcp.json","canonicalUrl":"https://webhooks.platphormnews.com/.well-known/mcp.json","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"well-known-agents-json","expectedUrl":"/.well-known/agents.json","canonicalUrl":"https://webhooks.platphormnews.com/.well-known/agents.json","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"well-known-agent-policy-json","expectedUrl":"/.well-known/agent-policy.json","canonicalUrl":"https://webhooks.platphormnews.com/.well-known/agent-policy.json","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"well-known-ai-policy-json","expectedUrl":"/.well-known/ai-policy.json","canonicalUrl":"https://webhooks.platphormnews.com/.well-known/ai-policy.json","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"well-known-trust-json","expectedUrl":"/.well-known/trust.json","canonicalUrl":"https://webhooks.platphormnews.com/.well-known/trust.json","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"well-known-security-txt","expectedUrl":"/.well-known/security.txt","canonicalUrl":"https://webhooks.platphormnews.com/.well-known/security.txt","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"apiCapabilities","expectedUrl":"/api/capabilities","canonicalUrl":"https://webhooks.platphormnews.com/api/capabilities","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"openapi","expectedUrl":"/api/openapi.json","canonicalUrl":"https://webhooks.platphormnews.com/api/openapi.json","status":"working","source":"openapi","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"mcp","expectedUrl":"/api/mcp","canonicalUrl":"https://webhooks.platphormnews.com/api/mcp","status":"working","source":"mcp","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"agent","expectedUrl":"/api/v1/agent","canonicalUrl":"https://webhooks.platphormnews.com/api/v1/agent","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"health","expectedUrl":"/api/health","canonicalUrl":"https://webhooks.platphormnews.com/api/health","status":"working","source":"health","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"v1Health","expectedUrl":"/api/v1/health","canonicalUrl":"https://webhooks.platphormnews.com/api/v1/health","status":"working","source":"health","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"eventsApi","expectedUrl":"/api/v1/events","canonicalUrl":"https://webhooks.platphormnews.com/api/v1/events","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"endpointsApi","expectedUrl":"/api/v1/endpoints","canonicalUrl":"https://webhooks.platphormnews.com/api/v1/endpoints","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"deliveriesApi","expectedUrl":"/api/v1/deliveries","canonicalUrl":"https://webhooks.platphormnews.com/api/v1/deliveries","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"contractsApi","expectedUrl":"/api/v1/contracts","canonicalUrl":"https://webhooks.platphormnews.com/api/v1/contracts","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"templatesApi","expectedUrl":"/api/v1/templates","canonicalUrl":"https://webhooks.platphormnews.com/api/v1/templates","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"integrationsApi","expectedUrl":"/api/v1/integrations","canonicalUrl":"https://webhooks.platphormnews.com/api/v1/integrations","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"deliveryJobsApi","expectedUrl":"/api/v1/delivery-jobs","canonicalUrl":"https://webhooks.platphormnews.com/api/v1/delivery-jobs","status":"working","source":"route","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"feed","expectedUrl":"/feed.xml","canonicalUrl":"https://webhooks.platphormnews.com/feed.xml","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"rss","expectedUrl":"/rss.xml","canonicalUrl":"https://webhooks.platphormnews.com/rss.xml","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"sitemapIndex","expectedUrl":"/sitemap-index.xml","canonicalUrl":"https://webhooks.platphormnews.com/sitemap-index.xml","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"},{"routeType":"sitemapMain","expectedUrl":"/sitemap-main.xml","canonicalUrl":"https://webhooks.platphormnews.com/sitemap-main.xml","status":"working","source":"generated","publicSafe":true,"protected":false,"testCommand":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace"}],"capabilities":[{"id":"webhook-simulation","name":"Webhook Simulation","description":"Generate webhook event payloads and run public-safe local simulations without persistent delivery.","kind":"workflow","status":"working","publicSafe":true,"protected":false,"humanUrl":"/lab","apiUrl":"/api/v1/agent","mcpTool":"generate_test_payload","docsUrl":"/docs","testCommand":"npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --json --trace"},{"id":"signature-generation","name":"Signature Generation","description":"Generate HMAC signatures for test webhook payloads without persisting raw secrets.","kind":"workflow","status":"working","publicSafe":true,"protected":false,"humanUrl":"/simulator","apiUrl":"/api/v1/signatures/generate","mcpTool":"generate_signature","docsUrl":"/docs","testCommand":"npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --json --trace"},{"id":"signature-verification","name":"Signature Verification","description":"Verify webhook signatures against payloads and timestamp tolerance without persisting raw secrets.","kind":"workflow","status":"working","publicSafe":true,"protected":false,"humanUrl":"/simulator","apiUrl":"/api/v1/signatures/verify","mcpTool":"verify_signature","docsUrl":"/docs","testCommand":"npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --json --trace"},{"id":"endpoint-registration","name":"Endpoint Registration","description":"Register webhook receiver endpoints with SSRF-safe URL validation.","kind":"api","status":"working","publicSafe":false,"protected":true,"humanUrl":"/dashboard/endpoints","apiUrl":"/api/v1/endpoints","mcpTool":"register_webhook_endpoint","docsUrl":"/docs","testCommand":"PLATPHORM_API_KEY=... npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --protected --json --trace"},{"id":"event-creation-listing","name":"Event Creation and Listing","description":"Create persistent webhook events with protected dispatch; public reads are redacted.","kind":"webhook","status":"working","publicSafe":true,"protected":true,"humanUrl":"/dashboard/events","apiUrl":"/api/v1/events","mcpTool":"create_webhook_event","docsUrl":"/docs","testCommand":"PLATPHORM_API_KEY=... npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --protected --json --trace"},{"id":"delivery-tracking","name":"Delivery Tracking","description":"Inspect webhook delivery and attempt state with public-safe redaction.","kind":"data","status":"working","publicSafe":true,"protected":false,"humanUrl":"/dashboard/replays","apiUrl":"/api/v1/deliveries","mcpTool":"list_deliveries","docsUrl":"/docs","testCommand":"npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --json --trace"},{"id":"delivery-replay","name":"Delivery Replay","description":"Replay webhook deliveries with protected authorization and explicit operator confirmation.","kind":"workflow","status":"working","publicSafe":false,"protected":true,"humanUrl":"/dashboard/replays","apiUrl":"/api/v1/deliveries/{id}/replay","mcpTool":"replay_webhook","docsUrl":"/docs","testCommand":"PLATPHORM_API_KEY=... npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --protected --json --trace"},{"id":"contract-creation","name":"Contract Creation","description":"Create and manage persistent webhook contracts.","kind":"workflow","status":"working","publicSafe":false,"protected":true,"humanUrl":"/dashboard/contracts","apiUrl":"/api/v1/contracts","mcpTool":"create_contract","docsUrl":"/docs","testCommand":"PLATPHORM_API_KEY=... npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --protected --json --trace"},{"id":"payload-validation","name":"Payload Validation","description":"Validate webhook payloads against known contracts or demo schemas.","kind":"workflow","status":"working","publicSafe":true,"protected":false,"humanUrl":"/dashboard/contracts","apiUrl":"/api/v1/contracts/{id}/validate","mcpTool":"validate_payload","docsUrl":"/docs","testCommand":"npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --json --trace"},{"id":"vercel-webhook-receiver","name":"Vercel Webhook Receiver","description":"Receive Vercel webhook events and verify configured Vercel signatures.","kind":"webhook","status":"working","publicSafe":false,"protected":true,"humanUrl":"/docs","apiUrl":"/api/webhooks","mcpTool":"receive_test_webhook","docsUrl":"/docs","testCommand":"PLATPHORM_API_KEY=... npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --protected --json --trace"},{"id":"mcp-integration","name":"MCP Integration","description":"Expose webhook tools, resources, and prompts through JSON-RPC MCP.","kind":"mcp","status":"working","publicSafe":true,"protected":false,"humanUrl":"/capabilities","apiUrl":"/api/mcp","mcpTool":null,"docsUrl":"/docs","testCommand":"npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --json --trace"},{"id":"agent-endpoint","name":"Agent Endpoint","description":"Expose safe agent actions with protected mutations gated by PLATPHORM_API_KEY.","kind":"agent","status":"working","publicSafe":true,"protected":true,"humanUrl":"/capabilities","apiUrl":"/api/v1/agent","mcpTool":null,"docsUrl":"/docs","testCommand":"PLATPHORM_API_KEY=... npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --protected --json --trace"},{"id":"docs-openapi","name":"Docs and OpenAPI","description":"Publish human API docs and parseable OpenAPI metadata for public and protected routes.","kind":"docs","status":"working","publicSafe":true,"protected":false,"humanUrl":"/docs","apiUrl":"/api/docs","mcpTool":null,"docsUrl":"/docs","testCommand":"npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --json --trace"},{"id":"discovery-files","name":"llms, Sitemap, Robots, Feed","description":"Expose public-safe discovery files for agents and crawlers.","kind":"docs","status":"working","publicSafe":true,"protected":false,"humanUrl":"/capabilities","apiUrl":"/llms-index.json","mcpTool":null,"docsUrl":"/docs","testCommand":"npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --json --trace"}],"mcp":{"endpoint":"/api/mcp","status":"working","toolCount":58,"resourceCount":22,"promptCount":12,"publicSafeTools":["get_webhooklab_info","list_webhook_events","get_webhook_event","list_webhook_endpoints","get_webhook_endpoint","get_delivery","list_delivery_attempts","generate_signature","verify_signature","explain_signature_failure","list_contracts","get_contract","validate_payload","generate_negative_payload","get_route_compliance","get_discovery_compliance","generate_webhook_test_plan","generate_webhook_remediation","get_integration_status","get_agent_policy","list_agent_platforms","get_agent_platform","evaluate_agent_access","get_robots_policy","get_ai_policy","get_trust_policy","get_discovery_manifest","get_public_access_summary","get_health","get_info","list_deliveries","generate_test_payload","get_service_status"],"protectedTools":["create_webhook_event","register_webhook_endpoint","update_webhook_endpoint","delete_webhook_endpoint","send_webhook","replay_webhook","cancel_delivery","create_contract","update_contract","delete_contract","run_contract_test","receive_test_webhook","sync_mcp_servers","send_contract_to_spec","create_evals_suite","generate_sandbox_receiver_test","publish_monitor_status","update_agent_policy","refresh_agent_platform_registry","create_docs_report","create_sheet_report","create_deck_summary","create_webhook_endpoint","emit_test_event","replay_event"]},"webhooks":{"receiverEndpoint":"/api/v1/receive/{endpointSlug}","vercelEndpoint":"/api/webhooks","signatureAlgorithms":["sha256","sha512"],"ssrfProtection":true,"secretPersistence":false,"deliveryReplayProtected":true},"degradedFeatures":[{"id":"webhooklab-report-integrations-degraded","title":"Docs, Sheets, and Deck report publishing integrations","classification":"degraded_backend","severity":"medium","expectedBehavior":"Protected report tools should create durable docs, sheets, or deck artifacts after PLATPHORM_API_KEY confirmation.","actualBehavior":"The MCP handlers currently return explicit degraded responses for docs, sheets, and deck publishing integrations.","reproductionCommand":"npx @platphormnews/platphormctl mcp tools https://webhooks.platphormnews.com/api/mcp --json --trace","validationCommand":"PLATPHORM_API_KEY=... npx @platphormnews/platphormctl mcp call https://webhooks.platphormnews.com/api/mcp create_docs_report --protected --input '{\"title\":\"WebhookLab report\"}' --json --trace","ownerHint":"webhooklab"}],"agent":{"commands":[{"label":"Inspect site","command":"npx @platphormnews/platphormctl site inspect https://webhooks.platphormnews.com --json --trace","requiresProtected":false},{"label":"Verify routes","command":"npx @platphormnews/platphormctl site routes https://webhooks.platphormnews.com --json --trace","requiresProtected":false},{"label":"Validate OpenAPI","command":"npx @platphormnews/platphormctl site openapi https://webhooks.platphormnews.com --json --trace","requiresProtected":false},{"label":"Inspect llms discovery","command":"npx @platphormnews/platphormctl site llms https://webhooks.platphormnews.com --json --trace","requiresProtected":false},{"label":"Validate sitemap","command":"npx @platphormnews/platphormctl site sitemap https://webhooks.platphormnews.com --json --trace","requiresProtected":false},{"label":"Initialize MCP","command":"npx @platphormnews/platphormctl mcp initialize https://webhooks.platphormnews.com/api/mcp --json --trace","requiresProtected":false},{"label":"List MCP tools","command":"npx @platphormnews/platphormctl mcp tools https://webhooks.platphormnews.com/api/mcp --json --trace","requiresProtected":false},{"label":"Network validation","command":"npx @platphormnews/platphormctl --include webhooks.platphormnews.com network validate --best-effort --evidence --json --trace","requiresProtected":false},{"label":"Generate degraded docs","command":"npx @platphormnews/platphormctl docs degraded generate --from-route-map <route-map.json> --json --trace","requiresProtected":false},{"label":"Protected validation","command":"PLATPHORM_API_KEY=... npx @platphormnews/platphormctl --include webhooks.platphormnews.com network validate --protected --best-effort --evidence --json --trace","requiresProtected":true}]}}