{"protocolVersion":"2024-11-05","serverInfo":{"name":"webhooklab","version":"1.0.0"},"capabilities":{"tools":{"listChanged":false},"resources":{"listChanged":false},"prompts":{"listChanged":false}},"instructions":"WebhookLab MCP Server - Create endpoints, send events, verify signatures, validate contracts.","tools":[{"name":"create_webhook_endpoint","description":"Create a new webhook endpoint to receive test events. Returns the endpoint ID and URL for sending webhooks.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Human-readable name for the endpoint"},"url":{"type":"string","description":"The URL where webhooks will be delivered"},"events":{"type":"array","description":"List of event types to subscribe to","items":{"type":"string"}},"signingAlgorithm":{"type":"string","description":"HMAC algorithm for signing","enum":["sha256","sha512"],"default":"sha256"}},"required":["name","url","events"]}},{"name":"list_webhook_endpoints","description":"List all configured webhook endpoints for the current tenant.","inputSchema":{"type":"object","properties":{"active":{"type":"boolean","description":"Filter by active/inactive status"},"limit":{"type":"number","description":"Maximum number of endpoints to return","default":50}}}},{"name":"emit_test_event","description":"Send a test webhook event to configured endpoints. Use this to test webhook handlers.","inputSchema":{"type":"object","properties":{"eventType":{"type":"string","description":"The event type (e.g., 'user.created')"},"payload":{"type":"object","description":"The JSON payload to send"},"endpointId":{"type":"string","description":"Specific endpoint ID (optional)"}},"required":["eventType","payload"]}},{"name":"replay_event","description":"Replay a previously sent webhook event for testing retry logic.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","description":"The ID of the event to replay"},"endpointId":{"type":"string","description":"Target endpoint for replay"}},"required":["eventId"]}},{"name":"generate_signature","description":"Generate an HMAC signature for a webhook payload.","inputSchema":{"type":"object","properties":{"payload":{"type":"object","description":"The JSON payload to sign"},"secret":{"type":"string","description":"The signing secret"},"algorithm":{"type":"string","description":"HMAC algorithm","enum":["sha256","sha512"],"default":"sha256"}},"required":["payload"]}},{"name":"verify_signature","description":"Verify an HMAC signature against a payload.","inputSchema":{"type":"object","properties":{"signature":{"type":"string","description":"The signature to verify"},"payload":{"type":"object","description":"The payload that was signed"},"secret":{"type":"string","description":"The signing secret"},"tolerance":{"type":"number","description":"Max age in seconds","default":300}},"required":["signature","payload"]}},{"name":"create_contract","description":"Define a webhook contract with schema validation rules.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Contract name"},"eventType":{"type":"string","description":"Event type this contract applies to"},"schema":{"type":"object","description":"JSON Schema for payload validation"}},"required":["name","eventType","schema"]}},{"name":"validate_payload","description":"Validate a payload against a contract.","inputSchema":{"type":"object","properties":{"contractId":{"type":"string","description":"Contract ID to validate against"},"payload":{"type":"object","description":"Payload to validate"}},"required":["contractId","payload"]}},{"name":"list_deliveries","description":"List webhook delivery attempts with filtering.","inputSchema":{"type":"object","properties":{"eventId":{"type":"string","description":"Filter by event ID"},"endpointId":{"type":"string","description":"Filter by endpoint ID"},"status":{"type":"string","description":"Filter by status","enum":["success","failure","pending"]},"limit":{"type":"number","description":"Maximum results","default":100}}}},{"name":"generate_test_payload","description":"Generate a realistic test payload for a given event type.","inputSchema":{"type":"object","properties":{"eventType":{"type":"string","description":"Event type to generate payload for"},"template":{"type":"string","description":"Template style","enum":["stripe","github","shopify","generic"]}},"required":["eventType"]}},{"name":"get_service_status","description":"Get current service health and feature availability.","inputSchema":{"type":"object","properties":{}}}],"resources":[{"uri":"webhooklab://service/manifest","name":"service_manifest","description":"Complete service manifest with capabilities, endpoints, and configuration","mimeType":"application/json"},{"uri":"webhooklab://api/openapi","name":"openapi_spec","description":"OpenAPI 3.1 specification for all REST API endpoints","mimeType":"application/json"},{"uri":"webhooklab://templates/payloads","name":"payload_templates","description":"Pre-built webhook payload templates for common providers (Stripe, GitHub, Shopify)","mimeType":"application/json"},{"uri":"webhooklab://schemas/events","name":"event_schemas","description":"JSON Schema definitions for all supported event types","mimeType":"application/json"},{"uri":"webhooklab://docs/signatures","name":"signature_docs","description":"Documentation for HMAC signature generation and verification","mimeType":"text/markdown"},{"uri":"webhooklab://docs/contracts","name":"contract_docs","description":"Guide to defining and using webhook contracts for validation","mimeType":"text/markdown"},{"uri":"webhooklab://examples/integrations","name":"integration_examples","description":"Code examples for integrating WebhookLab with various languages and frameworks","mimeType":"application/json"}],"prompts":[{"name":"build_test_webhook","description":"Generate a realistic webhook test event for a specific use case","arguments":[{"name":"eventType","description":"The type of event to simulate (e.g., payment.completed)","required":true},{"name":"provider","description":"The webhook provider style (stripe, github, shopify, custom)","required":false},{"name":"scenario","description":"Describe the scenario to simulate","required":false}]},{"name":"diagnose_failure","description":"Analyze a webhook delivery failure and suggest fixes","arguments":[{"name":"deliveryId","description":"The delivery ID to analyze","required":true},{"name":"errorMessage","description":"The error message received","required":false}]},{"name":"create_contract_from_sample","description":"Generate a webhook contract schema from a sample payload","arguments":[{"name":"samplePayload","description":"A sample JSON payload to analyze","required":true},{"name":"eventType","description":"The event type this contract is for","required":true},{"name":"strictMode","description":"Whether to require all fields as mandatory","required":false}]},{"name":"explain_signature","description":"Explain how webhook signature verification works","arguments":[{"name":"algorithm","description":"The HMAC algorithm (sha256, sha512)","required":false},{"name":"includeCode","description":"Include code examples in the explanation","required":false}]},{"name":"generate_integration_code","description":"Generate code for receiving and validating webhooks","arguments":[{"name":"language","description":"Target programming language","required":true},{"name":"framework","description":"Framework to use (express, nextjs, flask, etc.)","required":false},{"name":"eventTypes","description":"List of event types to handle","required":false}]},{"name":"plan_webhook_test_suite","description":"Create a comprehensive test plan for webhook implementations","arguments":[{"name":"endpointUrl","description":"The webhook endpoint to test","required":true},{"name":"eventTypes","description":"Event types to include in testing","required":true},{"name":"testScenarios","description":"Specific scenarios to test (failures, retries, etc.)","required":false}]}]}