{"name":"org.ottobot/contact-affordance","slug":"ottobot-contact-affordance","title":"Contact Affordance","description":"Check how to contact a business website, and whether that contact path actually works.","url":"https://mcp.market/server/ottobot-contact-affordance","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":57,"stars":7267,"forks":994,"downloads_week":null,"last_push_at":"2026-09-16T23:33:43.000Z","license":"NOASSERTION"},"uptime":{"percent":100,"checks":2,"ok":2,"last_checked_at":"2026-09-20T01:41:10.490Z","last_ok_at":"2026-09-20T01:41:10.490Z","latency_ms":49},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/modelcontextprotocol/registry","website":null,"version":"0.1.1","remotes":[{"type":"streamable-http","url":"https://contact-affordance-mcp.ottobot2025.workers.dev/mcp"}],"packages":[],"tools":[{"name":"check_contact_path","description":"Given a business website URL, report how a human is meant to make contact and whether that path is actually reachable. Returns a verdict of 'reachable' or 'inconclusive', the forms found with their resolved handler URLs, and any published phone or email. Never submits anything. Answers 'inconclusive' rather than guessing when a site is client-rendered, bot-protected or parked -- about 64% of real sites cannot be judged from outside, and a confident wrong answer is worse than an honest one.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"The business website URL, e.g. https://example.com","pattern":"^https?://","patternMessage":"url must be an absolute http(s) URL"}},"required":["url"]}}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-20T00:26:22.879Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:26:22.844Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 310ms"]},"poisoning":{"score":15,"max":15,"notes":["1 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 3 days ago"]},"identity":{"score":6,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://contact-affordance-mcp.ottobot2025.workers.dev/mcp","reachable":true,"authRequired":false,"latencyMs":310,"serverInfo":{"name":"contact-affordance","version":"0.1.1"}}],"packages":[],"repo":{"found":true,"owner":"modelcontextprotocol","repo":"registry","archived":false,"pushedAt":"2026-09-16T23:33:43Z","stars":7267,"forks":994,"openIssues":162,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/182288589?v=4","ownerCreatedAt":"2024-09-20T20:53:28Z","license":"NOASSERTION"},"icon":{"url":"https://avatars.githubusercontent.com/u/182288589?v=4&s=128","source":"github"},"presence":{"stars":7267,"forks":994,"downloadsWeek":null,"license":"NOASSERTION","lastPushAt":"2026-09-16T23:33:43.000Z","score":57}}}},"grade_history":[],"reviews":[]}