{"serverId":"mcp-registry/com.emergentphysicslab/waveguard","tools":[{"name":"waveguard_compare","fixed":{"name":"waveguard_compare","description":"Compare two data items for structural similarity using physics-based fingerprints. Returns cosine similarity (0–1) and Euclidean distance. Use for duplicate detection, behavioral matching, drift analysis, or checking if two tokens/wallets/contracts are structurally similar.\n\nCosine similarity > 0.95 = very similar. < 0.80 = structurally different.","inputSchema":{"type":"object","required":["data_a","data_b"],"properties":{"data_a":{"description":"First data item to compare.","type":"string"},"data_b":{"description":"Second data item to compare (same type as data_a).","type":"string"},"encoder_type":{"enum":["json","numeric","text","timeseries","tabular"],"type":"string","description":"Data encoder. Omit to auto-detect."}}},"annotations":{"title":"Compare Data Similarity","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: data_a, data_b. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":208,"tokensAfter":217},{"name":"waveguard_counterfactual","fixed":{"name":"waveguard_counterfactual","description":"Run baseline plus counterfactual variants and measure verdict/score sensitivity.","inputSchema":{"type":"object","required":["training","base_test","counterfactual_tests"],"properties":{"training":{"type":"array","minItems":2,"description":"2+ baseline normal samples used to build the reference profile."},"base_test":{"description":"Baseline candidate sample to evaluate before counterfactual perturbations.","type":"string"},"field_level":{"enum":[0,1],"type":"integer","description":"0 = real scalar field (faster), 1 = complex field (richer phase dynamics)."},"sensitivity":{"type":"number","description":"Anomaly sensitivity multiplier (default: 1.0). Higher values flag more aggressively."},"encoder_type":{"type":"string","description":"Optional encoder override. Omit to auto-detect from input structure."},"counterfactual_tests":{"type":"array","minItems":1,"description":"1+ perturbed variants of base_test for sensitivity analysis."}}},"annotations":{"title":"Counterfactual Analysis","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: base_test. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":273,"tokensAfter":278},{"name":"waveguard_fingerprint","fixed":{"name":"waveguard_fingerprint","description":"Get a physics embedding of any data item (52-dim at Level 0, 62-dim at Level 1 with phase statistics). The fingerprint captures structural properties via wave-equation dynamics — useful for similarity search, clustering, baseline comparison, and drift detection. Works on JSON objects, token metrics, wallet activity, trading data, or any structured data.\n\nReturns a deterministic vector with labeled dimensions (chi statistics, energy distribution, gradient patterns, and phase coherence at Level 1)","inputSchema":{"type":"object","required":["data"],"properties":{"data":{"description":"Any data item to fingerprint: JSON object, numeric array, string, or structured record.","type":"string"},"field_level":{"enum":[0,1],"type":"integer","description":"0 = real scalar 52-dim (default), 1 = complex field 62-dim."},"encoder_type":{"enum":["json","numeric","text","timeseries","tabular","complex_numeric"],"type":"string","description":"Data encoder. Omit to auto-detect."}}},"annotations":{"title":"Physics Fingerprint","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: data. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":281,"tokensAfter":286},{"name":"waveguard_mechanism_probe","fixed":{"name":"waveguard_mechanism_probe","description":"Run targeted interventions and rank effect sizes.","inputSchema":{"type":"object","required":["training","base_test","intervention_tests"],"properties":{"training":{"type":"array","minItems":2,"description":"2+ baseline normal samples used to construct the reference profile."},"base_test":{"description":"Baseline candidate sample before interventions.","type":"string"},"field_level":{"enum":[0,1],"type":"integer","description":"0 = real scalar field, 1 = complex field."},"sensitivity":{"type":"number","description":"Anomaly sensitivity multiplier (default: 1.0)."},"encoder_type":{"type":"string","description":"Optional encoder override. Omit to auto-detect."},"intervention_tests":{"type":"array","minItems":1,"description":"1+ intervention variants used to estimate effect sizes."},"intervention_labels":{"type":"array","items":{"type":"string"},"description":"Optional labels for intervention variants (same order as intervention_tests)."}}},"annotations":{"title":"Mechanism Probe","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: base_test. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":275,"tokensAfter":279}],"toolsChanged":4,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}