textbee
textbee · textbee/textbee
Một MCP server biến điện thoại Android của bạn thành cổng SMS, cho phép agent gửi và nhận tin nhắn văn bản thông qua API.
Open-source SMS gateway. Turn your Android phone into an SMS API: send and receive SMS from your apps over REST and webhooks. Self-hostable, with a free hosted plan.
Xem trước
Bạn có thể làm gì với nó
- Xây dựng AI agent gửi thông báo SMS cho các cảnh báo hệ thống.
- Nhận và xử lý các tin nhắn SMS đến trong quy trình làm việc của AI.
- Gửi cập nhật SMS hàng loạt cho danh sách liên hệ từ agent lập trình của bạn.
Đã chạy thử thật · 3 tool
Chúng tôi đã khởi động MCP server này trong máy ảo cách ly, và nó cung cấp các tool sau:
send_smsSend an SMS through the user's own textbee account and Android phone. Recipients must be in international E.164 format such as +15550100123. The sending phone is chosen automatically: the account defa
get_messagesRead the SMS messages on the user's textbee account, covering every device, no device id needed. direction defaults to "received": checking for a reply or a one-time code is the usual case. Pass direc
list_devicesList the Android phones registered to this textbee account: id, name, enabled state, which one is the default sender, when each last checked in, and message counts. Call this when a send fails with a
npx -y @textbee/mcp · 19/10/2026
Kiểm tra an toàn
Không thấy dấu hiệu rủi ro trong các file đã quét.
Quét tự động các file trong repo. Luôn xem lại code trước khi chạy.
Trích từ README
textbee: open-source Android SMS gateway
Turn an Android phone into an SMS API. Send and receive text messages from your apps, scripts, and AI agents over REST, webhooks, and MCP. No Twilio account, no rented number, no per-message fees. Self-host it or use the free hosted plan.
Website · Docs · API reference · Download the app · Discord · Self-host
What is textbee?
textbee is a free, open-source SMS gateway that uses an Android phone and its SIM card to send and receive SMS. Your code talks to a REST API, the API pushes each message to the phone, and the phone sends it over the carrier network. Incoming messages flow back to you through the API, the web dashboard, or webhooks.
It is a drop-in Twilio alternative for OTP codes, alerts, reminders, and two-way SMS, at the cost of your carrier plan. Over 40,000 developers and businesses use it, and the whole stack is in this repository: the NestJS API, the Next.js dashboard, and the Kotlin Android app. textbee is built and maintained by Nuver Labs, a small software studio.
Table of contents
- Why textbee?
- Features
- Quick start
- Send an SMS
- Receive SMS
- Webhooks
- Use with AI agents (MCP)
- SDKs and integrations
- Use cases
- Screenshots
- Stay up to date
- Self-hosting
- Architecture
- FAQ
- Contributing
- Community and support
- Who builds textbee
- Security
- License
Why textbee?
| textbee | Twilio and similar SMS APIs | |
|---|---|---|
| Cost per SMS | Your carrier plan, often free or unlimited | Per-message fee plus a monthly number fee |
| Sender number | Your own SIM. Recipients see a real local number | Rented number, often flagged as unknown |
| Setup | About 2 minutes: install the app, scan a QR code | Account approval, compliance forms, number registration |
| Receive SMS | Yes, on the same SIM | Yes, on the rented number |
| Self-hostable | Yes, full control over your data | No |
| Open source | Yes, MIT | No |
| Works with AI agents | Yes, official MCP server | Third-party only |
Features
Send
- Send SMS from a REST API, the web dashboard, or the JavaScript SDK
- Bulk SMS with a CSV upload, paced to stay within carrier limits
- Scheduled messages up to 72 hours ahead
- Multi-device and multi-SIM: pick the phone and the SIM per message
- Delivery status for every message:
pending,dispatched,sent,delivered,failed
Receive
- Receive SMS on the phone and read them from the API or dashboard
- Account-level message history: one call covers every device
- SMS filters on the phone: forward only the messages you need, with allow or block rules on sender and text
Integrate
- Webhooks for received messages and delivery reports, signed with HMAC-SHA256
- Official MCP server for Claude, Cursor, and other AI agents
- Guides for n8n, Zapier, Make, Home Assistant, Node-RED, Google Sheets, Slack, Shopify, WooCommerce, and GoHighLevel
Operate
- API keys with per-key revocation
- Web dashboard for devices, usage, history, and webhooks
- Self-host with Docker Compose, or use the hosted service at textbee.dev
Quick start
You need an Android phone (Android 7.0 or newer) with a SIM card. The app is distributed as an APK from textbee.dev/download, not through the Play Store.
- Create an account at textbee.dev.
- Install the Android app from textbee.dev/download and grant it the SMS permissions.
- In the dashboard, click Add device and scan the QR code with the app. This creates an API key and registers the phone.
- Send your first message from the dashboard, or from your code as shown below.
That is the whole setup. The getting started guide covers each step with screenshots.
If textbee saves you money or time, star the repo. It helps other developers find it.
Send an SMS
One request. Messages go out through your default device, or the enabled device with the most recent heartbeat. Pass deviceId to pick a phone, simSubscriptionId to pick a SIM, or scheduledAt to send later.
curl -X POST "https://api.textbee.dev/api/v1/gateway/send-sms" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recipients": ["+12025550123"],
"message": "Your verification code is 481920. It expires in 10 minutes."
}'
JavaScript / TypeScript (official SDK)
npm install @textbee/sdk
import { Textbee } from '@textbee/sdk'
const textbee = new Textbee({ apiKey: process.env.TEXTBEE_API_KEY })
await textbee.sendSms({
recipients: ['+12025550123'],
message: 'Your verification code is 481920. It expires in 10 minutes.',
})
Zero dependencies, typed, runs on Node 18+, Bun, Deno, Cloudflare Workers, and Vercel Edge. See textbee/textbee-js.
Node.js (fetch, no SDK)
await fetch('https://api.textbee.dev/api/v1/gateway/send-sms', {
method: 'POST',
headers: {
'x-api-key': process.env.TEXTBEE_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
recipients: ['+12025550123'],
message: 'Your verification code is