{"serverId":"mcp-registry/com.layercall/trust-api","tools":[{"name":"lookup_phone","fixed":{"name":"lookup_phone","description":"Validate a phone number worldwide against its national numbering plan. Returns E.164, country, line type (mobile/fixed/VoIP/toll-free/premium) and a risk score. Works globally, not US-only.","inputSchema":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string","description":"Number in international form (+14155552671) or national form with country set"},"country":{"type":"string","description":"ISO 3166-1 alpha-2, required only for national-format numbers"},"strictness":{"type":"integer","maximum":3,"minimum":0}}},"annotations":{"readOnlyHint":true},"title":"Validate a phone number"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":161,"tokensAfter":161},{"name":"score_ip","fixed":{"name":"score_ip","description":"Risk-score an IPv4 or IPv6 address. Detects commercial VPNs (naming the provider where its own published list confirms it), proxies, Tor exit nodes and datacenter hosting, and returns geolocation, ASN and a 0-100 risk score with an allow/review/block verdict.","inputSchema":{"type":"object","required":["ip"],"properties":{"ip":{"type":"string","description":"IPv4 or IPv6 address, e.g. 8.8.8.8"},"strictness":{"type":"integer","maximum":3,"minimum":0,"description":"0 lenient, 1 balanced (default), 2 strict, 3 paranoid. Moves the verdict thresholds only; the score is unchanged."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Score an IP address"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":173,"tokensAfter":173},{"name":"verify_email","fixed":{"name":"verify_email","description":"Check an email for syntax, MX records, disposable/throwaway providers, role accounts (info@, admin@), homograph lookalikes and domain age. Returns a 0-100 risk score and an allow/review/block verdict.","inputSchema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Full email address"},"strictness":{"type":"integer","maximum":3,"minimum":0}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Verify an email address"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119}],"toolsChanged":3,"tokensSaved":0,"todo":[{"tool":"lookup_phone","params":["strictness"]},{"tool":"score_user","params":["ip","email","phone","strictness"]},{"tool":"verify_email","params":["strictness"]}],"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."}