{"name":"io.github.handset-hq/handset","slug":"handset-hq-handset","title":null,"description":"A business phone system for AI agents: send texts, place calls, read transcripts, buy numbers.","url":"https://mcp.market/server/handset-hq-handset","rating":null,"grade":"B","score":75,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":24,"stars":1,"forks":0,"downloads_week":42,"last_push_at":"2026-08-26T23:59:09.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/handset-hq/handset-ui","website":"https://docs.handset.dev/ai.html","version":"0.1.1","remotes":[],"packages":[{"registryType":"npm","identifier":"@handset/mcp","version":"0.1.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Handset API key. Use a test-mode key (hs_test_…) — simulated carrier, free. Live keys are refused unless HANDSET_ALLOW_LIVE=1.","isRequired":true,"isSecret":true,"name":"HANDSET_API_KEY"},{"description":"Set to 1 to permit a live-mode key (the agent can then text and call real people at real cost).","name":"HANDSET_ALLOW_LIVE"}]}],"tools":[{"name":"buy_number","description":"BILLABLE in live mode (monthly rental): purchase a phone number for a tenant. In test mode numbers are free and simulated. Confirm with the user before buying on a live key.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_tenant","description":"Create a tenant (one customer business). Returns the tenant with its tnt_\\u2026 id.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_call","description":"Retrieve a call: status, duration, AI summary (arrives ~15s after a transcribed call ends), and the event timeline (gathers, keypresses, streams).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_thread","description":"Read one conversation's messages, oldest first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_transcript","description":"Read a call's transcript so far \\u2014 callable mid-call for live transcription.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_usage","description":"This month's usage by kind (segments, minutes, transcription, streams\\u2026). Test-mode usage is metered but never billed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_calls","description":"List calls with status and duration, newest first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_conversations","description":"List message threads, newest activity first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_numbers","description":"List the account's phone numbers, optionally for one tenant.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tenants","description":"List tenants on this Handset account. A tenant is one of your customers' businesses \\u2014 it owns numbers, conversations, and opt-out lists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_voicemails","description":"List voicemails with transcripts and time-limited audio URLs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"make_call","description":"OUTWARD-FACING: place a click-to-call \\u2014 dials connect_to (the agent's phone) first, then to (the customer), and bridges them; both see the tenant number. Live mode rings real phones and bills per minute \\u2014 confirm with the user first. Test mode simulates the whole lifecycle. Set transcribe for live transcript + AI summary.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_numbers","description":"Search purchasable phone numbers by area code. Free and instant in test mode.","write_action":false,"price_micros":0,"input_schema":null},{"name":"send_message","description":"OUTWARD-FACING: send an SMS (or MMS with media_urls) from a tenant number. In live mode this texts a real person and bills per segment \\u2014 confirm with the user first. Test mode is simulated and free. Replies thread by conversation_id.","write_action":true,"price_micros":0,"input_schema":null},{"name":"start_transcription","description":"Turn on live transcription for an in-progress call (either direction). Idempotent. Billed per transcribed minute; an AI summary generates after hangup.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":75,"grade":"B","scanned_at":"2026-11-03T06:59:31.086Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-03T06:59:31.051Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 68 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@handset/mcp","version":"0.1.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-08-18T19:50:34.456Z","repositoryUrl":"git+https://github.com/handset-hq/handset-ui.git","weeklyDownloads":42}],"repo":{"found":true,"owner":"handset-hq","repo":"handset-ui","archived":false,"pushedAt":"2026-08-26T23:59:09Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/316643119?v=4","ownerCreatedAt":"2026-08-13T15:47:55Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/316643119?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":1,"forks":0,"downloadsWeek":42,"license":"MIT","lastPushAt":"2026-08-26T23:59:09.000Z","score":24}}}},"grade_history":[],"reviews":[]}