
Handset
io.github.handset-hqPublished by GitHub account handset-hqv0.1.1Updated Nov 3, 2026
A business phone system for AI agents: send texts, place calls, read transcripts, buy numbers.
Overview
Handset is a business phone system for AI agents, letting an assistant send texts, place calls, read transcripts and buy numbers.
- What you can do
- Send text messages and place phone calls to real contacts
- Read call transcripts and message history
- Buy and manage phone numbers
- Handle delivery, threading and STOP/HELP opt-out compliance through the Handset API
- The manifest lists no individual tools, so exact operations are not documented here
- When to use it
- Useful when an assistant needs to reach people by SMS or voice as part of a business workflow, such as notifications, follow-ups or customer conversations, and you want to try it safely with a free simulated test-mode key first.
- Requirements
- Runs as a local stdio process from the npm package @handset/mcp, so Node.js is needed. Requires a Handset API key in HANDSET_API_KEY; a test-mode key (hs_test_…) is free and simulated. Live keys are refused unless HANDSET_ALLOW_LIVE=1. A Handset account is needed for real traffic.
Installation
In SourceWeft
- Open Handset in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Handset UI
Texting inside your product, in an afternoon.
Open-source React components for embedded messaging, built on the Handset API. Distributed the shadcn way: the CLI copies the source into your repo, styled with your Tailwind tokens, yours to change.
Set HANDSET_API_KEY in your env, wire resolveTenantId() in the generated
route to your session, and render it:
What's in the registry
Architecture
Two layers, like shadcn-on-Radix:
@handset/react(npm, versioned) — headless hooks:useConversations,useThread,useComposer, plus segment math and a tiny client. Logic we maintain; bring your own UI if you prefer.- The registry (
apps/www/registry) — the visual components, copied into your project as source.
Components never hold API keys. They call proxy routes in your backend
(added by @handset/next-routes); your server holds the Handset key and your
existing session auth decides which tenant each signed-in user sees. The
Handset API handles the rest — numbers, delivery, threading, 10DLC compliance,
STOP/HELP.
Development
The docs site serves a mock Handset API (apps/www/app/api/handset) so the
demo works with zero setup.
Requirements
- React 18+ (components target React 19 / Tailwind v4 / shadcn CLI ≥ 3)
- A Handset account for real traffic — the demo runs on mock data without one
Roadmap
See ROADMAP.md — shipped components, what's next (call summaries, MMS attachments, more framework proxies), and non-goals. Issues with real use cases move items up the list.
License
MIT © Handset HQ, Inc.
Source: README.md at commit 1cfd7b7
Tools
0Version history
1- v0.1.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts